Skip to content

feat: auto-inject conversation id into Orchestrator/Maestro tool calls#878

Open
maxduu wants to merge 1 commit into
mainfrom
feat-pass-uipath-reserved-convo-id
Open

feat: auto-inject conversation id into Orchestrator/Maestro tool calls#878
maxduu wants to merge 1 commit into
mainfrom
feat-pass-uipath-reserved-convo-id

Conversation

@maxduu
Copy link
Copy Markdown
Contributor

@maxduu maxduu commented May 27, 2026

Summary

Process-type tools whose input schemas declare a UIPATH_RESERVED_CONVERSATIONID top-level argument now receive the current conversation id automatically. The runtime value always overrides any caller-supplied value; when no conversation id is available, the injection silently no-ops.

The conversation id is read from os.environ["UIPATH_CONVERSATION_ID"], which is populated by UiPathRuntimeContext.with_defaults() (see UiPath/uipath-runtime-python#114). Resolution covers fpsProperties.conversationalService.conversationId from uipath.json. This PR depends on that runtime change to land first.

Test plan

  • tests/agent/tools/test_process_tool.py::TestProcessToolConversationIdInjection — 4 new tests:
    • injects when schema declares the field
    • runtime value overrides caller-supplied value
    • silently omits when conversation id missing
    • skips injection when schema doesn't declare the field
  • Existing 21 process_tool tests still pass
  • End-to-end smoke: run a conversational agent with a Maestro flow tool whose input schema declares UIPATH_RESERVED_CONVERSATIONID; confirm Orchestrator receives the conversation id in input_arguments

@sonarqubecloud
Copy link
Copy Markdown

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants