Skip to content

feat(agent): [2/5] conversationMode on the conversational agent tool settings [PRODEV-1742] - #1955

Draft
ionmincu wants to merge 2 commits into
mainfrom
feat/prodev-1742-conversation-mode
Draft

ionmincu wants to merge 2 commits into
mainfrom
feat/prodev-1742-conversation-mode

Conversation

@ionmincu

@ionmincu ionmincu commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

PR stack (PRODEV-1742 conversation mode), merge in this order

  1. [1/5] UiPath/Agents: schema settings.conversationMode (single | multiple, absent = single). https://github.com/UiPath/Agents/pull/6761
  2. [2/5] UiPath/uipath-python: settings model field. feat(agent): [2/5] conversationMode on the conversational agent tool settings [PRODEV-1742] #1955
  3. [3/5] UiPath/uipath-langchain-python: single-mode tool + history-based continuation. feat(a2a): [3/5] single-conversation mode for the conversational agent tool [PRODEV-1742] uipath-langchain-python#1175
  4. [4/5] UiPath/uipath-agents-python: pin bump. https://github.com/UiPath/uipath-agents-python/pull/826
  5. [5/5] UiPath/flow-workbench: "Allow multiple conversations" toggle (default off = single). Needs the [1/5] schema release. https://github.com/UiPath/flow-workbench/pull/5390

Summary

  • Adds AgentConversationalAgentToolSettings(AgentToolSettings) and uses it as the settings type of AgentConversationalAgentToolResourceConfig.
  • conversationMode: "single" | "multiple", optional. Absent or null parses to None; the runtime ([3/5]) treats None as "single". An unknown string (for example a mode a later release adds) is read as None with a warning, like an unknown tool type, so it does not stop the whole AgentDefinition from loading. A non-string value is still a validation error.
  • runInBackground: optional bool. It already exists in the released storage schema but wasn't modelled in Python.
  • AgentToolSettings keeps extra="allow", so old records and unknown settings still parse and round-trip.
  • Bumps uipath to 2.14.44 (the uv.lock entry for the editable package is updated too).

Test plan

  • uv run pytest tests/agent --no-cov (new TestConversationalAgentToolSettings: both modes, absent, null, unknown strings read as None with a warning (direct and through AgentDefinition, which still loads), non-strings rejected, no warning for known values, runInBackground, base settings and extras preserved, record without a settings key, alias round-trip). The new tests failed before the change (ImportError, then the unknown-string cases).
  • ruff check, ruff format --check, mypy src tests, scripts/lint_httpx_client.py

🤖 Generated with Claude Code

…settings [PRODEV-1742]

Add AgentConversationalAgentToolSettings with conversation_mode
("single" | "multiple", absent = None, treated as single by the runtime)
and run_in_background, and use it for the conversational agent tool.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A strict Literal made a conversationMode this version does not know fail the whole
AgentDefinition, unlike the lenient handling of unknown tool types, and a future third mode would
stop a new runtime from loading the agent. An unknown string now reads as None (with a warning,
and None means single); null stays None, and a non-string is still a validation error.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:uipath-integrations test:uipath-langchain Triggers tests in the uipath-langchain-python repository test:uipath-runtime

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant