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.
- uipath_langchain-0.0.89/.github/workflows/commitlint.yml +28 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/PKG-INFO +2 -2
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/interrupt_models.md +5 -1
- uipath_langchain-0.0.89/docs/sample_images/coder-agent-package-overview.png +0 -0
- uipath_langchain-0.0.89/docs/sample_images/coder-agent-process-configuration.png +0 -0
- uipath_langchain-0.0.89/docs/sample_images/planner-agent-package-overview.png +0 -0
- uipath_langchain-0.0.89/docs/sample_images/planner-agent-process-configuration.png +0 -0
- uipath_langchain-0.0.89/docs/sample_images/researcher-agent-package-overview.png +0 -0
- uipath_langchain-0.0.89/docs/sample_images/researcher-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/pyproject.toml +2 -2
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/uv.lock +7 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/uv.lock +4 -4
- uipath_langchain-0.0.89/samples/multi-agent-planner-researcher-coder-distributed/README.md +251 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/pyproject.toml +2 -2
- {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
- uipath_langchain-0.0.89/samples/multi-agent-planner-researcher-coder-distributed/uipath.json +2793 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/uv.lock +7 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/uv.lock +7 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/uv.lock +8 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/uv.lock +7 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/uv.lock +8 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/README.md +3 -2
- uipath_langchain-0.0.89/samples/ticket-classification/agent.mermaid +21 -0
- uipath_langchain-0.0.89/samples/ticket-classification/escalation_app_solution/generic-escalation-app-solution-1.0.0.zip +0 -0
- uipath_langchain-0.0.89/samples/ticket-classification/main.py +180 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/uipath.json +11 -6
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/uv.lock +7 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/pyproject.toml +1 -1
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/uv.lock +7 -7
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_output.py +4 -4
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_runtime.py +6 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/uv.lock +5 -5
- uipath_langchain-0.0.88/.github/workflows/commitlint.yml +0 -12
- uipath_langchain-0.0.88/.github/workflows/manual_cd.yml +0 -33
- uipath_langchain-0.0.88/samples/multi-agent-planner-researcher-coder-distributed/README.md +0 -165
- uipath_langchain-0.0.88/samples/ticket-classification/agent.mermaid +0 -16
- uipath_langchain-0.0.88/samples/ticket-classification/main.py +0 -142
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.cursorrules +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.editorconfig +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.gitattributes +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/build.yml +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/cd.yml +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/ci.yml +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/lint.yml +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.github/workflows/test.yml +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.gitignore +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.pre-commit-config.yaml +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.python-version +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.vscode/extensions.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/.vscode/settings.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/CONTRIBUTING.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/LICENSE +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/README.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/chat_models.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/context_grounding_chain.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/docs/context_grounding_retriever.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/graph.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/company-research-agent/uipath.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/database.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/main.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/models.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/schemas.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/hitl-inbox-server/templates/index.html +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/coder.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/planner.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-planner-researcher-coder-distributed/researcher.mermaid +0 -0
- {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
- {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
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/README.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/graph.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/multi-agent-supervisor-researcher-coder/uipath.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/README.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/retrieval-chain/main.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/README.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-local-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/README.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/main.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/simple-remote-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/ticket-classification/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/.env.example +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/README.md +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/main.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/mcps/estate_mcp.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/mcps/travel_mcp.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/samples/travel-planner-local-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_context.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_escalation.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_exception.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_runtime/_input.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/_utils/_graph.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/cli_init.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_cli/cli_run.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/_request_mixin.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/_settings.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/_utils/_sleep_policy.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/models.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/utils/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/chat/utils/_chat_types.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/embeddings/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/embeddings/embeddings.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/middlewares.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/retrievers/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/retrievers/context_grounding_retriever.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/AsyncUiPathTracer.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/UiPathTracer.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/_events.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/_instrument_traceable.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/tracers/_utils.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/__init__.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/_request_mixin.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/_settings.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/utils/_sleep_policy.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/src/uipath_langchain/vectorstores/context_grounding_vectorstore.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/tests/conftest.py +0 -0
- {uipath_langchain-0.0.88 → uipath_langchain-0.0.89}/tests/test_dummy.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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
|
|
Binary file
|
|
Binary file
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "uipath-langchain"
|
|
3
|
-
version = "0.0.
|
|
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.
|
|
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",
|
|
@@ -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.
|
|
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.
|
|
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/
|
|
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/
|
|
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.
|
|
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/
|
|
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/
|
|
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]]
|
|
@@ -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.
|
|
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.
|
|
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/
|
|
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/
|
|
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
|
+

|
|
212
|
+

|
|
213
|
+
|
|
214
|
+
- **Researcher Agent**
|
|
215
|
+

|
|
216
|
+

|
|
217
|
+
|
|
218
|
+
- **Coder Agent**
|
|
219
|
+

|
|
220
|
+

|
|
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.
|
|
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.
|
|
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())
|