Skip to content

Conversation

@mike-deem-uipath
Copy link
Contributor

@mike-deem-uipath mike-deem-uipath commented Jan 27, 2026

Development Package

  • Add this package as a dependency in your pyproject.toml:
[project]
dependencies = [
  # Exact version:
  "uipath-langchain==0.5.18.dev1004852408",

  # Any version from PR
  "uipath-langchain>=0.5.18.dev1004850000,<0.5.18.dev1004860000"
]

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true

[tool.uv.sources]
uipath-langchain = { index = "testpypi" }

self.tool_call_to_ai_message: dict[str, str] = {}
self.current_message: AIMessageChunk
self.seen_message_ids: set[str] = set()
self.pending_message_tool_call_count: dict[str, int] = {}
Copy link
Member

@cristipufu cristipufu Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this won't survive suspend/resume (interruptable tool calls, create_process_tool, create_escalation_tool, deep rag etc)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't that also true for tool_call_to_ai_message? If that map is empty after an interrupt, then none of the tool results would be associated with the correct message id (the existing code is creating a new guid for these, but CAS wouldn't know what to do with it and would produce an error event).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly. That's why we were suggesting to loosen up the CAS contracts

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It isn't just CAS, it's a breaking change for the contract with all the clients. It also makes the protocol more complicated. You can no longer depend on start/end events to scope event handlers, and that makes implementing clients harder.

I'm pretty sure all the state we need is in the graph's state and can be recovered on resume. But I'm not sure exactly how interrupts work with streaming in langgraph. Figuring it out now.

@mike-deem-uipath mike-deem-uipath force-pushed the fix/conv-agent-tools branch 4 times, most recently from 105406c to 88e1b0f Compare February 2, 2026 23:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants