uipath-langchain 0.0.88__tar.gz → 0.0.89__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of uipath-langchain might be problematic. Click here for more details.

Files changed (149) hide show
  1. uipath_langchain-0.0.89/.github/workflows/commitlint.yml +28 -0
  2. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/PKG-INFO +2 -2
  3. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/interrupt_models.md +5 -1
  4. uipath_langchain-0.0.89/docs/sample_images/coder-agent-package-overview.png +0 -0
  5. uipath_langchain-0.0.89/docs/sample_images/coder-agent-process-configuration.png +0 -0
  6. uipath_langchain-0.0.89/docs/sample_images/planner-agent-package-overview.png +0 -0
  7. uipath_langchain-0.0.89/docs/sample_images/planner-agent-process-configuration.png +0 -0
  8. uipath_langchain-0.0.89/docs/sample_images/researcher-agent-package-overview.png +0 -0
  9. uipath_langchain-0.0.89/docs/sample_images/researcher-agent-process-configuration.png +0 -0
  10. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/pyproject.toml +2 -2
  11. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/pyproject.toml +1 -1
  12. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/uv.lock +7 -7
  13. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/pyproject.toml +1 -1
  14. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/uv.lock +4 -4
  15. uipath_langchain-0.0.89/samples/multi-agent-planner-researcher-coder-distributed/README.md +251 -0
  16. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/pyproject.toml +2 -2
  17. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/planner.py +1 -1
  18. uipath_langchain-0.0.89/samples/multi-agent-planner-researcher-coder-distributed/uipath.json +2793 -0
  19. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/uv.lock +7 -7
  20. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/pyproject.toml +1 -1
  21. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/uv.lock +7 -7
  22. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/pyproject.toml +1 -1
  23. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/uv.lock +8 -7
  24. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/pyproject.toml +1 -1
  25. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/uv.lock +7 -7
  26. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/pyproject.toml +1 -1
  27. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/uv.lock +8 -7
  28. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/README.md +3 -2
  29. uipath_langchain-0.0.89/samples/ticket-classification/agent.mermaid +21 -0
  30. uipath_langchain-0.0.89/samples/ticket-classification/escalation_app_solution/generic-escalation-app-solution-1.0.0.zip +0 -0
  31. uipath_langchain-0.0.89/samples/ticket-classification/main.py +180 -0
  32. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/pyproject.toml +1 -1
  33. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/uipath.json +11 -6
  34. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/uv.lock +7 -7
  35. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/pyproject.toml +1 -1
  36. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/uv.lock +7 -7
  37. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_output.py +4 -4
  38. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_runtime.py +6 -0
  39. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/uv.lock +5 -5
  40. uipath_langchain-0.0.88/.github/workflows/commitlint.yml +0 -12
  41. uipath_langchain-0.0.88/.github/workflows/manual_cd.yml +0 -33
  42. uipath_langchain-0.0.88/samples/multi-agent-planner-researcher-coder-distributed/README.md +0 -165
  43. uipath_langchain-0.0.88/samples/ticket-classification/agent.mermaid +0 -16
  44. uipath_langchain-0.0.88/samples/ticket-classification/main.py +0 -142
  45. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.cursorrules +0 -0
  46. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.editorconfig +0 -0
  47. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.gitattributes +0 -0
  48. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/build.yml +0 -0
  49. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/cd.yml +0 -0
  50. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/ci.yml +0 -0
  51. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/lint.yml +0 -0
  52. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/test.yml +0 -0
  53. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.gitignore +0 -0
  54. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.pre-commit-config.yaml +0 -0
  55. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.python-version +0 -0
  56. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.vscode/extensions.json +0 -0
  57. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.vscode/settings.json +0 -0
  58. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/CONTRIBUTING.md +0 -0
  59. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/LICENSE +0 -0
  60. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/README.md +0 -0
  61. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/chat_models.md +0 -0
  62. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/context_grounding_chain.md +0 -0
  63. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/context_grounding_retriever.md +0 -0
  64. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/.env.example +0 -0
  65. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/agent.mermaid +0 -0
  66. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/graph.py +0 -0
  67. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/langgraph.json +0 -0
  68. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/uipath.json +0 -0
  69. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/database.py +0 -0
  70. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/main.py +0 -0
  71. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/models.py +0 -0
  72. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/schemas.py +0 -0
  73. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/templates/index.html +0 -0
  74. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/.env.example +0 -0
  75. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/coder.mermaid +0 -0
  76. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/langgraph.json +0 -0
  77. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/planner.mermaid +0 -0
  78. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/researcher.mermaid +0 -0
  79. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/coder.py +0 -0
  80. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/researcher.py +0 -0
  81. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/.env.example +0 -0
  82. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/README.md +0 -0
  83. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -0
  84. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/graph.py +0 -0
  85. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/langgraph.json +0 -0
  86. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/uipath.json +0 -0
  87. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/.env.example +0 -0
  88. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/README.md +0 -0
  89. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/main.py +0 -0
  90. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/.env.example +0 -0
  91. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/README.md +0 -0
  92. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/agent.mermaid +0 -0
  93. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/langgraph.json +0 -0
  94. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
  95. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
  96. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
  97. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/uipath.json +0 -0
  98. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/.env.example +0 -0
  99. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/README.md +0 -0
  100. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/agent.mermaid +0 -0
  101. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/langgraph.json +0 -0
  102. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/main.py +0 -0
  103. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/uipath.json +0 -0
  104. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/.env.example +0 -0
  105. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/langgraph.json +0 -0
  106. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/.env.example +0 -0
  107. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/README.md +0 -0
  108. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/agent.mermaid +0 -0
  109. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/langgraph.json +0 -0
  110. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/main.py +0 -0
  111. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/mcps/estate_mcp.py +0 -0
  112. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/mcps/travel_mcp.py +0 -0
  113. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/uipath.json +0 -0
  114. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/__init__.py +0 -0
  115. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/__init__.py +0 -0
  116. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_context.py +0 -0
  117. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_escalation.py +0 -0
  118. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_exception.py +0 -0
  119. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_input.py +0 -0
  120. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_utils/_graph.py +0 -0
  121. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/cli_init.py +0 -0
  122. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/cli_run.py +0 -0
  123. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/__init__.py +0 -0
  124. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/_request_mixin.py +0 -0
  125. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/_settings.py +0 -0
  126. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/_sleep_policy.py +0 -0
  127. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/__init__.py +0 -0
  128. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/models.py +0 -0
  129. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/utils/__init__.py +0 -0
  130. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/utils/_chat_types.py +0 -0
  131. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/embeddings/__init__.py +0 -0
  132. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/embeddings/embeddings.py +0 -0
  133. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/middlewares.py +0 -0
  134. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/retrievers/__init__.py +0 -0
  135. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/retrievers/context_grounding_retriever.py +0 -0
  136. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/AsyncUiPathTracer.py +0 -0
  137. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/UiPathTracer.py +0 -0
  138. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/__init__.py +0 -0
  139. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/_events.py +0 -0
  140. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/_instrument_traceable.py +0 -0
  141. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/_utils.py +0 -0
  142. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/__init__.py +0 -0
  143. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/_request_mixin.py +0 -0
  144. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/_settings.py +0 -0
  145. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/_sleep_policy.py +0 -0
  146. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/vectorstores/context_grounding_vectorstore.py +0 -0
  147. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/tests/conftest.py +0 -0
  148. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/tests/test_dummy.py +0 -0
  149. {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/tests/test_langchain_client.py +0 -0
@@ -0,0 +1,28 @@
1
+ name: Commit Lint
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+
8
+ jobs:
9
+ commit-lint:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v2
14
+ with:
15
+ fetch-depth: 0
16
+
17
+ - name: Lint commits
18
+ uses: wagoid/commitlint-github-action@v3
19
+
20
+ - name: Block fixup commits
21
+ if: ${{ github.event_name != 'merge_group' }}
22
+ uses: 13rac1/block-fixup-merge-action@v2.0.0
23
+
24
+ - name: Block Merge Commits
25
+ if: ${{ github.event_name != 'merge_group' }}
26
+ uses: Morishiri/block-merge-commits-action@v1.0.1
27
+ with:
28
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath-langchain
3
- Version: 0.0.88
3
+ Version: 0.0.89
4
4
  Summary: UiPath Langchain
5
5
  Project-URL: Homepage, https://uipath.com
6
6
  Project-URL: Repository, https://github.com/UiPath/uipath-langchain-python
@@ -25,7 +25,7 @@ Requires-Dist: pydantic-settings>=2.6.0
25
25
  Requires-Dist: python-dotenv>=1.0.1
26
26
  Requires-Dist: requests>=2.23.3
27
27
  Requires-Dist: types-requests>=2.32.0.20241016
28
- Requires-Dist: uipath<2.1.0,>=2.0.4
28
+ Requires-Dist: uipath<2.1.0,>=2.0.7
29
29
  Provides-Extra: langchain
30
30
  Description-Content-Type: text/markdown
31
31
 
@@ -9,7 +9,9 @@ UiPath platform and the Langchain coded agents.
9
9
 
10
10
  ### 1. InvokeProcess
11
11
 
12
- The `InvokeProcess` model is utilized to invoke a process within UiPath cloud platform. Upon completion of the invoked process, the current agent will automatically resume execution.
12
+ The `InvokeProcess` model is utilized to invoke a process within the UiPath cloud platform.
13
+ This process can be of various types, including API workflows, Agents or RPA automation.
14
+ Upon completion of the invoked process, the current agent will automatically resume execution.
13
15
 
14
16
  #### Attributes:
15
17
  - **name** (str): The name of the process to invoke.
@@ -20,6 +22,8 @@ The `InvokeProcess` model is utilized to invoke a process within UiPath cloud pl
20
22
  process_output = interrupt(InvokeProcess(name="MyProcess", input_arguments={"arg1": "value1"}))
21
23
  ```
22
24
 
25
+ For a practical implementation of the `InvokeProcess` model, refer to the sample usage in the [planner.py](../../samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/planner.py#L184) file. This example demonstrates how to invoke a process with dynamic input arguments, showcasing the integration of the interrupt functionality within a multi-agent system or a system where an agent integrates with RPA processes and API workflows.
26
+
23
27
  ---
24
28
 
25
29
  ### 2. WaitJob
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "uipath-langchain"
3
- version = "0.0.88"
3
+ version = "0.0.89"
4
4
  description = "UiPath Langchain"
5
5
  readme = { file = "README.md", content-type = "text/markdown" }
6
6
  requires-python = ">=3.10"
7
7
  dependencies = [
8
- "uipath>=2.0.4, <2.1.0",
8
+ "uipath>=2.0.7, <2.1.0",
9
9
  "langgraph>=0.2.70",
10
10
  "langchain-core>=0.3.34",
11
11
  "langgraph-checkpoint-sqlite>=2.0.3",
@@ -11,7 +11,7 @@ dependencies = [
11
11
  "langchain-community>=0.3.9",
12
12
  "langchain-anthropic>=0.3.8",
13
13
  "tavily-python>=0.5.0",
14
- "uipath-langchain==0.0.87"
14
+ "uipath-langchain==0.0.88"
15
15
  ]
16
16
 
17
17
  [project.optional-dependencies]
@@ -355,7 +355,7 @@ requires-dist = [
355
355
  { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.11.1" },
356
356
  { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.6.1" },
357
357
  { name = "tavily-python", specifier = ">=0.5.0" },
358
- { name = "uipath-langchain", specifier = "==0.0.87" },
358
+ { name = "uipath-langchain", specifier = "==0.0.88" },
359
359
  ]
360
360
  provides-extras = ["dev"]
361
361
 
@@ -1815,7 +1815,7 @@ wheels = [
1815
1815
 
1816
1816
  [[package]]
1817
1817
  name = "uipath"
1818
- version = "2.0.1"
1818
+ version = "2.0.4"
1819
1819
  source = { registry = "https://pypi.org/simple" }
1820
1820
  dependencies = [
1821
1821
  { name = "click" },
@@ -1828,14 +1828,14 @@ dependencies = [
1828
1828
  { name = "tomli" },
1829
1829
  { name = "types-requests" },
1830
1830
  ]
1831
- sdist = { url = "https://files.pythonhosted.org/packages/1b/74/3d0e8c9c133492af75cc47d64b76e9ef9b108b4d709ea98e039aec0ff289/uipath-2.0.1.tar.gz", hash = "sha256:869637a976cca6058c4ee0b2ed79a85d4a9eb19a3306bee5e24a6dd49979c550", size = 206254 }
1831
+ sdist = { url = "https://files.pythonhosted.org/packages/6c/0d/4ae746ca61ec42ca6ab449692bacfbb34e013a97224e6f175715b448ab9b/uipath-2.0.4.tar.gz", hash = "sha256:9ac7abbc2e1f53207e11cb1235e99efc6cf7c265595e0f1ac981512a443e70bc", size = 207150 }
1832
1832
  wheels = [
1833
- { url = "https://files.pythonhosted.org/packages/80/a6/c45c040b5a2ab86da0e4312b20208a5df68100d04be7f2e69c17f18ccc04/uipath-2.0.1-py3-none-any.whl", hash = "sha256:992a34bef5aef8c9a98fa188d1cff165e8271b9de93e25d3ed0b18d0f16c65c4", size = 84375 },
1833
+ { url = "https://files.pythonhosted.org/packages/0f/d9/e4c2d3ba7d87e59937ca5980f4bc2b7d06c68578df33a9a0d4eb99764d44/uipath-2.0.4-py3-none-any.whl", hash = "sha256:698680eb2f8fd885dbc9e13856028cdd10cfac525698375022ff484629f3f778", size = 85424 },
1834
1834
  ]
1835
1835
 
1836
1836
  [[package]]
1837
1837
  name = "uipath-langchain"
1838
- version = "0.0.87"
1838
+ version = "0.0.88"
1839
1839
  source = { registry = "https://pypi.org/simple" }
1840
1840
  dependencies = [
1841
1841
  { name = "httpx" },
@@ -1852,9 +1852,9 @@ dependencies = [
1852
1852
  { name = "types-requests" },
1853
1853
  { name = "uipath" },
1854
1854
  ]
1855
- sdist = { url = "https://files.pythonhosted.org/packages/4a/f0/f9ac644bcb818efd2b1e35e50eeb8d20980177aabf1d359dda4e5a6c77a5/uipath_langchain-0.0.87.tar.gz", hash = "sha256:07f61284e0c734fddb7dfbdc020e16d439a319adb306a453fa8d55aebcc78cab", size = 1309008 }
1855
+ sdist = { url = "https://files.pythonhosted.org/packages/80/0e/e05ecfc5a5b6b7f277dca18e61724c1a923ae4c9af39f71f2c8dce52343d/uipath_langchain-0.0.88.tar.gz", hash = "sha256:f06cc80c9499ae4309275119a9abf5d74c881aaef6731c6efb5b525a1291ef33", size = 1188502 }
1856
1856
  wheels = [
1857
- { url = "https://files.pythonhosted.org/packages/98/1a/4e34819ac42413b8a4650dcb05c698da7114909584c0205d66b4fe4a4424/uipath_langchain-0.0.87-py3-none-any.whl", hash = "sha256:92dd352c985ed580a9a93bcede2232205c9700bcec7ec62b1835ae372d184084", size = 50642 },
1857
+ { url = "https://files.pythonhosted.org/packages/3a/7a/68ec6fcb4698af7f27c30a2107c349fb6115b84373dba38413346e8c5a57/uipath_langchain-0.0.88-py3-none-any.whl", hash = "sha256:78c92bebbd4a3651adcf914d3563a551222bef86f54cb3eb270d93a39ede7d28", size = 50641 },
1858
1858
  ]
1859
1859
 
1860
1860
  [[package]]
@@ -11,6 +11,6 @@ dependencies = [
11
11
  "jinja2>=3.1.6",
12
12
  "httpx>=0.28.1",
13
13
  "python-multipart>=0.0.20",
14
- "uipath==2.0.1"
14
+ "uipath==2.0.4"
15
15
  ]
16
16
  requires-python = ">=3.10"
@@ -235,7 +235,7 @@ requires-dist = [
235
235
  { name = "jinja2", specifier = ">=3.1.6" },
236
236
  { name = "python-multipart", specifier = ">=0.0.20" },
237
237
  { name = "sqlalchemy", specifier = ">=2.0.38" },
238
- { name = "uipath", specifier = "==2.0.1" },
238
+ { name = "uipath", specifier = "==2.0.4" },
239
239
  { name = "uvicorn", specifier = ">=0.34.0" },
240
240
  ]
241
241
 
@@ -686,7 +686,7 @@ wheels = [
686
686
 
687
687
  [[package]]
688
688
  name = "uipath"
689
- version = "2.0.1"
689
+ version = "2.0.4"
690
690
  source = { registry = "https://pypi.org/simple" }
691
691
  dependencies = [
692
692
  { name = "click" },
@@ -699,9 +699,9 @@ dependencies = [
699
699
  { name = "tomli" },
700
700
  { name = "types-requests" },
701
701
  ]
702
- sdist = { url = "https://files.pythonhosted.org/packages/1b/74/3d0e8c9c133492af75cc47d64b76e9ef9b108b4d709ea98e039aec0ff289/uipath-2.0.1.tar.gz", hash = "sha256:869637a976cca6058c4ee0b2ed79a85d4a9eb19a3306bee5e24a6dd49979c550", size = 206254 }
702
+ sdist = { url = "https://files.pythonhosted.org/packages/6c/0d/4ae746ca61ec42ca6ab449692bacfbb34e013a97224e6f175715b448ab9b/uipath-2.0.4.tar.gz", hash = "sha256:9ac7abbc2e1f53207e11cb1235e99efc6cf7c265595e0f1ac981512a443e70bc", size = 207150 }
703
703
  wheels = [
704
- { url = "https://files.pythonhosted.org/packages/80/a6/c45c040b5a2ab86da0e4312b20208a5df68100d04be7f2e69c17f18ccc04/uipath-2.0.1-py3-none-any.whl", hash = "sha256:992a34bef5aef8c9a98fa188d1cff165e8271b9de93e25d3ed0b18d0f16c65c4", size = 84375 },
704
+ { url = "https://files.pythonhosted.org/packages/0f/d9/e4c2d3ba7d87e59937ca5980f4bc2b7d06c68578df33a9a0d4eb99764d44/uipath-2.0.4-py3-none-any.whl", hash = "sha256:698680eb2f8fd885dbc9e13856028cdd10cfac525698375022ff484629f3f778", size = 85424 },
705
705
  ]
706
706
 
707
707
  [[package]]
@@ -0,0 +1,251 @@
1
+ # Multi-Agent Task Execution System
2
+
3
+ This repository implements a multi-agent system that decomposes complex tasks into discrete steps, routing them to specialized agents for execution. The system comprises three main components:
4
+
5
+ 1. **Planner Agent**: Orchestrates the workflow by planning task execution and routing subtasks to worker agents.
6
+ 2. **Researcher Agent**: Gathers information, formulas, and reference materials without performing calculations.
7
+ 3. **Coder Agent**: Executes calculations and evaluates formulas with specific values.
8
+
9
+ Each agent operates as an independent entry point and can be deployed as a separate process, while still being packaged together as part of an Orchestrator Agent Package.
10
+
11
+ ## System Architecture
12
+
13
+ The system utilizes LangGraph to create a directed graph of agents that can communicate and share state.
14
+
15
+ ### Planner Agent Graph
16
+ ```mermaid
17
+ ---
18
+ config:
19
+ flowchart:
20
+ curve: linear
21
+ ---
22
+ graph TD;
23
+ __start__(<p>__start__</p>)
24
+ input(input)
25
+ create_plan(create_plan)
26
+ supervisor([supervisor]):::last
27
+ invoke_agent(invoke_agent)
28
+ __start__ --> input;
29
+ create_plan --> supervisor;
30
+ input --> supervisor;
31
+ invoke_agent --> supervisor;
32
+ classDef default fill:#f2f0ff,line-height:1.2
33
+ classDef first fill-opacity:0
34
+ classDef last fill:#bfb6fc
35
+ ```
36
+
37
+ ### Researcher Agent Graph
38
+ ```mermaid
39
+ ---
40
+ config:
41
+ flowchart:
42
+ curve: linear
43
+ ---
44
+ graph TD;
45
+ __start__([<p>__start__</p>]):::first
46
+ __end__([<p>__end__</p>]):::last
47
+ __start__ --> researcher___start__;
48
+ researcher___end__ --> __end__;
49
+ subgraph researcher
50
+ researcher___start__(<p>__start__</p>)
51
+ researcher_agent(agent)
52
+ researcher_tools(tools)
53
+ researcher___end__(<p>__end__</p>)
54
+ researcher___start__ --> researcher_agent;
55
+ researcher_tools --> researcher_agent;
56
+ researcher_agent -.-> researcher_tools;
57
+ researcher_agent -.-> researcher___end__;
58
+ end
59
+ classDef default fill:#f2f0ff,line-height:1.2
60
+ classDef first fill-opacity:0
61
+ classDef last fill:#bfb6fc
62
+ ```
63
+
64
+ ### Coder Agent Graph
65
+ ```mermaid
66
+ ---
67
+ config:
68
+ flowchart:
69
+ curve: linear
70
+ ---
71
+ graph TD;
72
+ __start__([<p>__start__</p>]):::first
73
+ __end__([<p>__end__</p>]):::last
74
+ __start__ --> coder___start__;
75
+ coder___end__ --> __end__;
76
+ subgraph coder
77
+ coder___start__(<p>__start__</p>)
78
+ coder_agent(agent)
79
+ coder_tools(tools)
80
+ coder___end__(<p>__end__</p>)
81
+ coder___start__ --> coder_agent;
82
+ coder_tools --> coder_agent;
83
+ coder_agent -.-> coder_tools;
84
+ coder_agent -.-> coder___end__;
85
+ end
86
+ classDef default fill:#f2f0ff,line-height:1.2
87
+ classDef first fill-opacity:0
88
+ classDef last fill:#bfb6fc
89
+ ```
90
+
91
+ ## Agent Responsibilities
92
+
93
+ - **Planner Agent**:
94
+ - Takes user questions and formulates execution plans.
95
+ - Routes tasks to appropriate worker agents.
96
+ - Manages execution flow and state tracking.
97
+ - Returns final results to the user.
98
+
99
+ - **Researcher Agent**:
100
+ - Retrieves information using a Tavily search tool.
101
+ - Provides factual content, definitions, and formulas.
102
+ - Does not perform calculations (strictly enforced).
103
+
104
+ - **Coder Agent**:
105
+ - Executes calculations using Python code.
106
+ - Evaluates formulas with specific input values.
107
+ - Returns precise numerical results.
108
+
109
+ ## Usage
110
+
111
+ ### Running the System
112
+
113
+ To run the entire system, use the following command with the complete JSON input:
114
+
115
+ ```bash
116
+ uipath run planner '{"question": "First, please state the Pythagorean theorem. Give only the formula, using variables a, b, and c. Then apply this formula to calculate the value when a=2 and b=3."}'
117
+ ```
118
+
119
+ ### Debugging Individual Agents
120
+
121
+ You can debug individual agents by invoking them directly:
122
+
123
+ #### Researcher Agent
124
+ Run the researcher agent with:
125
+
126
+ ```bash
127
+ uipath run researcher '{"messages":[{"content":"State the Pythagorean theorem formula using variables a, b, and c","type":"human"}]}'
128
+ ```
129
+
130
+ #### Coder Agent
131
+ Run the coder agent with:
132
+
133
+ ```bash
134
+ uipath run coder '{"messages":[{"content":"Let me help you state the Pythagorean theorem formula. The Pythagorean theorem is a fundamental mathematical formula that describes the relationship between the sides of a right triangle.\n\nThe formula is:\n\na² + b² = c²\n\nWhere:\n- a and b are the lengths of the two legs (the sides adjacent to the right angle)\n- c is the length of the hypotenuse (the longest side, opposite to the right angle).","type":"human","name":"researcher-agent"},{"content":"Calculate the result using the formula when a=2 and b=3","type":"human"}]}'
135
+ ```
136
+
137
+ ## Sample Workflow
138
+
139
+ 1. User submits a question about the Pythagorean theorem.
140
+ 2. Planner creates an execution plan with two steps:
141
+ - Step 1: Researcher agent retrieves the Pythagorean theorem formula.
142
+ - Step 2: Coder agent applies the formula to calculate the result for a=2, b=3.
143
+ 3. Planner executes Step 1 by invoking the researcher agent.
144
+ 4. Researcher agent returns the formula a² + b² = c².
145
+ 5. Planner executes Step 2 by invoking the coder agent.
146
+ 6. Coder agent calculates c = √(2² + 3²) = √(4 + 9) = √13 ≈ 3.606.
147
+ 7. Planner combines the responses and returns the final answer to the user.
148
+
149
+ ## Steps to Execute Project on UiPath Cloud Platform
150
+
151
+ 1. **Clone the Repository**
152
+ ```bash
153
+ git clone https://github.com/UiPath/uipath-langchain-python.git
154
+ ```
155
+
156
+ 2. **Navigate to the Sample Directory**
157
+ - **Windows:**
158
+ ```bash
159
+ cd .\uipath-langchain-python\samples\multi-agent-planner-researcher-coder-distributed
160
+ ```
161
+
162
+ - **Unix-like Systems (Linux, macOS):**
163
+ ```bash
164
+ cd ./uipath-langchain-python/samples/multi-agent-planner-researcher-coder-distributed
165
+ ```
166
+
167
+ 3. **Create and Activate a Virtual Python Environment**
168
+ ```bash
169
+ pip install uv
170
+ uv venv -p 3.11 .venv
171
+ .venv\Scripts\activate # Windows
172
+ source .venv/bin/activate # Unix-like Systems
173
+ uv sync
174
+ ```
175
+
176
+ 4. **Authenticate with UiPath Cloud Platform**
177
+ ```bash
178
+ uipath auth
179
+ ```
180
+ > **Note:** After successful authentication in the browser, select the tenant for publishing the agent package.
181
+ ```
182
+ Received log data
183
+ Received authentication information
184
+ Available tenants:
185
+ 0: cosmin
186
+ 1: DefaultTenant
187
+ 2: Demo
188
+ 3: lucian
189
+ 4: Solutions
190
+ 5: SolutionsTest
191
+ 6: Test
192
+ 7: TestRoles
193
+ Select tenant: 2
194
+ ```
195
+
196
+ 5. **Package and Publish Agents**
197
+ ```bash
198
+ uipath pack
199
+ uipath publish
200
+ ```
201
+ > **Note:** You will need to select the feed for publishing:
202
+ ```
203
+ Select feed type:
204
+ 0: Tenant package feed
205
+ 1: Personal workspace
206
+ Select feed: 0
207
+ ```
208
+
209
+ 6. **Create Agent Processes in Orchestrator**
210
+ - **Planner Agent**
211
+ ![planner-agent-package-overview](../../docs/sample_images/planner-agent-package-overview.png)
212
+ ![planner-agent-process-configuration](../../docs/sample_images/planner-agent-process-configuration.png)
213
+
214
+ - **Researcher Agent**
215
+ ![researcher-agent-package-overview](../../docs/sample_images/researcher-agent-package-overview.png)
216
+ ![researcher-agent-process-configuration](../../docs/sample_images/researcher-agent-process-configuration.png)
217
+
218
+ - **Coder Agent**
219
+ ![coder-agent-package-overview](../../docs/sample_images/coder-agent-package-overview.png)
220
+ ![coder-agent-process-configuration](../../docs/sample_images/coder-agent-process-configuration.png)
221
+
222
+ > **Note:** Ensure that the display names for the coder and researcher agent processes are *coder-agent* and *researcher-agent*,
223
+ and that all 3 agents are placed in the same folder.
224
+
225
+ 7. **Run the Planner Agent with Any Input Question**
226
+ > **Tip:** For a five-step action plan, consider using the following input:
227
+ ```
228
+ Could you find a Python solution for the N-Queens puzzle for N=8? Please analyze why this solution works,
229
+ considering the key programming concepts it employs.
230
+ Then, revise the solution to handle a dynamic value of N, where N is any positive integer.
231
+ After that, research the time and space complexity of this new solution.
232
+ Lastly, demonstrate this revised Python solution with N=10.
233
+ ```
234
+
235
+ ## Implementation Details
236
+
237
+ The system is implemented using:
238
+
239
+ - LangGraph for agent orchestration
240
+ - LangChain for agent creation and tool integration
241
+ - Claude 3.5 Sonnet for LLM capabilities
242
+ - Tavily for search functionality in the researcher agent
243
+ - Python REPL for code execution in the coder agent
244
+
245
+ ## Requirements
246
+
247
+ - Python 3.10+
248
+ - LangGraph
249
+ - LangChain
250
+ - Anthropic API key
251
+ - Tavily API key
@@ -3,7 +3,7 @@ name = "multi-agents-distributed"
3
3
  version = "0.0.1"
4
4
  description = "Supervisor agent that coordinates between a researcher and a coder"
5
5
  authors = [
6
- { name = "Radu Mocanu" }
6
+ { name = "Radu Mocanu", email = "radu.mocanu@uipath.com" }
7
7
  ]
8
8
  requires-python = ">=3.10"
9
9
  dependencies = [
@@ -12,7 +12,7 @@ dependencies = [
12
12
  "langchain-anthropic>=0.3.8",
13
13
  "langchain-experimental>=0.3.4",
14
14
  "tavily-python>=0.5.0",
15
- "uipath-langchain==0.0.87"
15
+ "uipath-langchain==0.0.88"
16
16
  ]
17
17
 
18
18
  [project.optional-dependencies]
@@ -8,7 +8,7 @@ from langgraph.graph import START, MessagesState, StateGraph
8
8
  from langgraph.types import Command, interrupt
9
9
  from pydantic import BaseModel, Field
10
10
  from typing_extensions import TypedDict
11
- from uipath._models import InvokeProcess
11
+ from uipath.models import InvokeProcess
12
12
 
13
13
  worker_agents = {"researcher": "researcher-agent", "coder": "coder-agent"}
14
14
  agent_names = list(worker_agents.values())