langgraph-agent-toolkit 0.2.0__tar.gz → 0.3.0__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.
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.env.example +31 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/workflows/release.yml +1 -1
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/workflows/test.yml +2 -2
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.pre-commit-config.yaml +3 -3
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/CHANGELOG.md +14 -0
- langgraph_agent_toolkit-0.2.0/README.md → langgraph_agent_toolkit-0.3.0/PKG-INFO +196 -5
- langgraph_agent_toolkit-0.2.0/PKG-INFO → langgraph_agent_toolkit-0.3.0/README.md +101 -76
- langgraph_agent_toolkit-0.3.0/configs/clickhouse/.clickhouse.env.example +3 -0
- langgraph_agent_toolkit-0.3.0/configs/langfuse/.langfuse.env.example +59 -0
- langgraph_agent_toolkit-0.3.0/configs/litellm/.litellm.env.example +3 -0
- langgraph_agent_toolkit-0.3.0/configs/minio/.minio.env.example +2 -0
- langgraph_agent_toolkit-0.3.0/configs/postgres/.postgres.env.example +3 -0
- langgraph_agent_toolkit-0.3.0/configs/redis/.redis.env.example +1 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docker/app/Dockerfile +2 -1
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docker/service/Dockerfile +2 -1
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docker-compose.yaml +26 -85
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/agent_executor.py +51 -6
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/agent.py +16 -6
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/chatbot/agent.py +16 -6
- langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent/agent.py +199 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/factory.py +41 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/settings.py +36 -1
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/utils.py +9 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/schema.py +6 -0
- langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/service/__init__.py +0 -0
- langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/service/exception_handlers.py +71 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/routes.py +1 -1
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/utils.py +19 -23
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/pyproject.toml +52 -10
- langgraph_agent_toolkit-0.3.0/scripts/postgres-init/create_databases.sql +9 -0
- langgraph_agent_toolkit-0.3.0/tests/agents/test_service_streaming.py +52 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_settings.py +35 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/conftest.py +9 -3
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_auth.py +20 -17
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_service.py +2 -2
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/uv.lock +679 -25
- langgraph_agent_toolkit-0.2.0/configs/clickhouse/.clickhouse.env.example +0 -3
- langgraph_agent_toolkit-0.2.0/configs/litellm/.litellm.env.example +0 -3
- langgraph_agent_toolkit-0.2.0/configs/minio/.minio.env.example +0 -2
- langgraph_agent_toolkit-0.2.0/configs/postgres/.postgres.env.example +0 -3
- langgraph_agent_toolkit-0.2.0/configs/redis/.redis.env.example +0 -1
- langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/service/exception_handlers.py +0 -46
- langgraph_agent_toolkit-0.2.0/scripts/postgres-init/create_databases.sql +0 -32
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.coveragerc +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.dockerignore +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/RELEASE_TEMPLATE/release-template.md +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/codecov.yml +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/dependabot.yml +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/scripts/tag_from_pyproject.sh +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.github/workflows/deploy.yml +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.gitignore +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/.project-root +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/CONTRIBUTING.md +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/LICENSE +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/Makefile +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/configs/litellm/config.example.yaml +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docs/media/agent_architecture.excalidraw +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docs/media/agent_architecture.png +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/docs/media/agent_diagram.png +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph.json +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/task.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/utils.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/chatbot/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/command_agent/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/command_agent/agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/blueprints/react → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/blueprints/react_so → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/react}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/react/agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/blueprints/supervisor_agent → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/react_so}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/react_so/agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/agents/components → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/blueprints/supervisor_agent}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/blueprints/supervisor_agent/agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/core/memory → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/agents/components}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/creators/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/creators/create_react_agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/tools.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/agents/components/utils.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/client/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/client/client.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/core/prompts → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/core/memory}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/base.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/factory.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/postgres.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/sqlite.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/memory/types.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/chat_openai.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/models/fake.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/base.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/empty.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/factory.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/langfuse.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/langsmith.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/observability/types.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/helper → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/core/prompts}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/core/prompts/chat_prompt_template.py +0 -0
- {langgraph_agent_toolkit-0.2.0/langgraph_agent_toolkit/service → langgraph_agent_toolkit-0.3.0/langgraph_agent_toolkit/helper}/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/constants.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/logging.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/helper/types.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/run_agent.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/run_client.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/run_service.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/__init__.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/models.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/schema/task_data.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/factory.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/handler.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/middleware.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/service/types.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/langgraph_agent_toolkit/streamlit_app.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/01-invoke-proxy.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/02-test-local-pm.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/03-test-langfuse-pm.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/04-test-langsmith-pm.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/05-test-prompt-types.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/scripts/python/06-test-custom-chat-prompt-template.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/agents/test_agent_executor.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/app/conftest.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/app/test_streamlit_app.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/client/conftest.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/client/test_client.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/conftest.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_llm.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_memory.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_observability.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/core/test_prompts.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/integration/test_docker_e2e.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_factory.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_service_e2e.py +0 -0
- {langgraph_agent_toolkit-0.2.0 → langgraph_agent_toolkit-0.3.0}/tests/service/test_utils.py +0 -0
|
@@ -82,3 +82,34 @@ DEEPSEEK_API_KEY=
|
|
|
82
82
|
# Ollama Settings
|
|
83
83
|
OLLAMA_MODEL_NAME=
|
|
84
84
|
OLLAMA_BASE_URL=
|
|
85
|
+
|
|
86
|
+
# Model configurations - use multiline format with line continuation for readability
|
|
87
|
+
# It can be useful if you want to use different models for different agents or use different models from different providers.
|
|
88
|
+
MODEL_CONFIGS={\
|
|
89
|
+
"gpt4o": {\
|
|
90
|
+
"provider": "azure_openai",\
|
|
91
|
+
"name": "gpt-4o",\
|
|
92
|
+
"api_key": "azure-key-123",\
|
|
93
|
+
"endpoint": "https://your-resource.openai.azure.com/",\
|
|
94
|
+
"api_version": "2023-05-15",\
|
|
95
|
+
"deployment": "gpt4o-deployment",\
|
|
96
|
+
"temperature": 0.7\
|
|
97
|
+
},\
|
|
98
|
+
"gpt4o-mini": {\
|
|
99
|
+
"provider": "azure_openai",\
|
|
100
|
+
"name": "gpt-4o-mini",\
|
|
101
|
+
"api_key": "azure-key-123",\
|
|
102
|
+
"endpoint": "https://your-resource.openai.azure.com/",\
|
|
103
|
+
"api_version": "2023-05-15",\
|
|
104
|
+
"deployment": "gpt4o-mini-deployment"\
|
|
105
|
+
},\
|
|
106
|
+
"gemini": {\
|
|
107
|
+
"provider": "google_genai",\
|
|
108
|
+
"name": "gemini-pro",\
|
|
109
|
+
"api_key": "google-key-123",\
|
|
110
|
+
"temperature": 0.7\
|
|
111
|
+
}\
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# Amazon Bedrock Knowledge Base ID
|
|
115
|
+
AWS_KB_ID=
|
|
@@ -34,7 +34,7 @@ jobs:
|
|
|
34
34
|
with:
|
|
35
35
|
python-version: ${{ matrix.python-version }}
|
|
36
36
|
- name: Install uv
|
|
37
|
-
uses: astral-sh/setup-uv@
|
|
37
|
+
uses: astral-sh/setup-uv@v6
|
|
38
38
|
with:
|
|
39
39
|
version: "0.6.12"
|
|
40
40
|
- name: Install dependencies with uv
|
|
@@ -135,7 +135,7 @@ jobs:
|
|
|
135
135
|
with:
|
|
136
136
|
python-version-file: "pyproject.toml"
|
|
137
137
|
- name: Install uv
|
|
138
|
-
uses: astral-sh/setup-uv@
|
|
138
|
+
uses: astral-sh/setup-uv@v6
|
|
139
139
|
with:
|
|
140
140
|
version: "0.6.12"
|
|
141
141
|
- name: Install ONLY CLIENT dependencies with uv
|
|
@@ -27,11 +27,11 @@ repos:
|
|
|
27
27
|
- repo: https://github.com/nbQA-dev/nbQA
|
|
28
28
|
rev: 1.9.1
|
|
29
29
|
hooks:
|
|
30
|
-
- id: nbqa-ruff-format
|
|
31
|
-
additional_dependencies: [ruff==0.11.4]
|
|
32
30
|
- id: nbqa-ruff
|
|
33
31
|
additional_dependencies: [ruff==0.11.4]
|
|
34
|
-
args: ["--fix", "--show-
|
|
32
|
+
args: ["--fix", "--show-files"]
|
|
33
|
+
- id: nbqa-ruff-format
|
|
34
|
+
additional_dependencies: [ruff==0.11.4]
|
|
35
35
|
|
|
36
36
|
- repo: https://github.com/kynan/nbstripout
|
|
37
37
|
rev: 0.8.1
|
|
@@ -6,6 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
and this project adheres to
|
|
7
7
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
8
8
|
|
|
9
|
+
## [0.3.0]
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `MODEL_CONFIGS` to unify LLM env variables
|
|
14
|
+
- New blueprint with AWS KB
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Streaming messages handling
|
|
19
|
+
- Refactored code structure for better maintainability
|
|
20
|
+
- Optional dependencies
|
|
21
|
+
- API exception handling
|
|
22
|
+
|
|
9
23
|
## [0.2.0]
|
|
10
24
|
|
|
11
25
|
### Fixed
|
|
@@ -1,3 +1,98 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: langgraph-agent-toolkit
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit
|
|
5
|
+
Project-URL: repository, https://github.com/kryvokhyzha/langgraph-agent-toolkit
|
|
6
|
+
Project-URL: PyPI, https://pypi.org/project/langgraph-agent-toolkit
|
|
7
|
+
Author-email: Roman Kryvokhyzha <kriwohizha@gmail.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: agents,blueprint,fastapi,langgraph,litellm,streamlit
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Framework :: FastAPI
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Requires-Python: <3.14,>=3.11
|
|
23
|
+
Requires-Dist: duckduckgo-search>=7.3.0
|
|
24
|
+
Requires-Dist: fastapi~=0.115.5
|
|
25
|
+
Requires-Dist: grpcio>=1.68.0
|
|
26
|
+
Requires-Dist: httpx~=0.28.1
|
|
27
|
+
Requires-Dist: jinja2~=3.1.6
|
|
28
|
+
Requires-Dist: jiter~=0.9.0
|
|
29
|
+
Requires-Dist: joblib~=1.4.2
|
|
30
|
+
Requires-Dist: langchain-community~=0.3.21
|
|
31
|
+
Requires-Dist: langchain-core~=0.3.52
|
|
32
|
+
Requires-Dist: langfuse~=2.60.3
|
|
33
|
+
Requires-Dist: langgraph-checkpoint-postgres~=2.0.19
|
|
34
|
+
Requires-Dist: langgraph-checkpoint-sqlite~=2.0.6
|
|
35
|
+
Requires-Dist: langgraph-cli[inmem]~=0.2.3
|
|
36
|
+
Requires-Dist: langgraph-supervisor~=0.0.16
|
|
37
|
+
Requires-Dist: langgraph~=0.3.30
|
|
38
|
+
Requires-Dist: langsmith~=0.3.31
|
|
39
|
+
Requires-Dist: loguru~=0.7.3
|
|
40
|
+
Requires-Dist: multidict>6.3.2
|
|
41
|
+
Requires-Dist: numpy~=1.26.4; python_version <= '3.12'
|
|
42
|
+
Requires-Dist: numpy~=2.2.3; python_version >= '3.13'
|
|
43
|
+
Requires-Dist: pandas~=2.2.3
|
|
44
|
+
Requires-Dist: psycopg[binary,pool]~=3.2.4
|
|
45
|
+
Requires-Dist: pyarrow>=19.0.1
|
|
46
|
+
Requires-Dist: pydantic-settings~=2.9.1
|
|
47
|
+
Requires-Dist: pydantic~=2.11.1
|
|
48
|
+
Requires-Dist: pyowm~=3.3.0
|
|
49
|
+
Requires-Dist: python-dotenv~=1.1.0
|
|
50
|
+
Requires-Dist: rootutils>=1.0.7
|
|
51
|
+
Requires-Dist: setuptools>=75.6.0
|
|
52
|
+
Requires-Dist: streamlit~=1.44.1
|
|
53
|
+
Requires-Dist: uvicorn~=0.34.0
|
|
54
|
+
Requires-Dist: watchdog~=6.0.0
|
|
55
|
+
Provides-Extra: all-backends
|
|
56
|
+
Requires-Dist: azure-functions~=1.23.0; extra == 'all-backends'
|
|
57
|
+
Requires-Dist: gunicorn~=23.0.0; extra == 'all-backends'
|
|
58
|
+
Requires-Dist: mangum~=0.19.0; extra == 'all-backends'
|
|
59
|
+
Requires-Dist: uvicorn~=0.34.2; extra == 'all-backends'
|
|
60
|
+
Provides-Extra: all-llms
|
|
61
|
+
Requires-Dist: langchain-anthropic~=0.3.12; extra == 'all-llms'
|
|
62
|
+
Requires-Dist: langchain-aws~=0.2.22; extra == 'all-llms'
|
|
63
|
+
Requires-Dist: langchain-deepseek~=0.1.3; extra == 'all-llms'
|
|
64
|
+
Requires-Dist: langchain-google-genai~=2.1.4; extra == 'all-llms'
|
|
65
|
+
Requires-Dist: langchain-google-vertexai~=2.0.21; extra == 'all-llms'
|
|
66
|
+
Requires-Dist: langchain-groq~=0.3.2; extra == 'all-llms'
|
|
67
|
+
Requires-Dist: langchain-ollama~=0.3.2; extra == 'all-llms'
|
|
68
|
+
Requires-Dist: langchain-openai~=0.3.12; extra == 'all-llms'
|
|
69
|
+
Provides-Extra: anthropic
|
|
70
|
+
Requires-Dist: langchain-anthropic~=0.3.12; extra == 'anthropic'
|
|
71
|
+
Provides-Extra: aws
|
|
72
|
+
Requires-Dist: langchain-aws~=0.2.22; extra == 'aws'
|
|
73
|
+
Provides-Extra: aws-backend
|
|
74
|
+
Requires-Dist: mangum~=0.19.0; extra == 'aws-backend'
|
|
75
|
+
Provides-Extra: azure-backend
|
|
76
|
+
Requires-Dist: azure-functions~=1.23.0; extra == 'azure-backend'
|
|
77
|
+
Provides-Extra: deepseek
|
|
78
|
+
Requires-Dist: langchain-deepseek~=0.1.3; extra == 'deepseek'
|
|
79
|
+
Provides-Extra: google-genai
|
|
80
|
+
Requires-Dist: langchain-google-genai~=2.1.4; extra == 'google-genai'
|
|
81
|
+
Provides-Extra: google-vertexai
|
|
82
|
+
Requires-Dist: langchain-google-vertexai~=2.0.21; extra == 'google-vertexai'
|
|
83
|
+
Provides-Extra: groq
|
|
84
|
+
Requires-Dist: langchain-groq~=0.3.2; extra == 'groq'
|
|
85
|
+
Provides-Extra: gunicorn-backend
|
|
86
|
+
Requires-Dist: gunicorn~=23.0.0; extra == 'gunicorn-backend'
|
|
87
|
+
Requires-Dist: uvicorn[standard]~=0.34.2; extra == 'gunicorn-backend'
|
|
88
|
+
Provides-Extra: ollama
|
|
89
|
+
Requires-Dist: langchain-ollama~=0.3.2; extra == 'ollama'
|
|
90
|
+
Provides-Extra: openai
|
|
91
|
+
Requires-Dist: langchain-openai~=0.3.12; extra == 'openai'
|
|
92
|
+
Provides-Extra: uvicorn-backend
|
|
93
|
+
Requires-Dist: uvicorn~=0.34.2; extra == 'uvicorn-backend'
|
|
94
|
+
Description-Content-Type: text/markdown
|
|
95
|
+
|
|
1
96
|
# 🧰 Langgraph Agent Toolkit
|
|
2
97
|
|
|
3
98
|
[](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml)
|
|
@@ -28,6 +123,27 @@ Features include:
|
|
|
28
123
|
support
|
|
29
124
|
- Complete template for building and deploying your own LangGraph-based agents
|
|
30
125
|
|
|
126
|
+
## 📑 Contents
|
|
127
|
+
|
|
128
|
+
- [Introduction](#-introduction)
|
|
129
|
+
- [Quickstart](#-quickstart)
|
|
130
|
+
- [Installation Options](#-installation-options)
|
|
131
|
+
- [Architecture](#architecture)
|
|
132
|
+
- [Key Features](#-key-features)
|
|
133
|
+
- [Environment Setup](#environment-setup)
|
|
134
|
+
- [Creating Your `.env` File](#-creating-your-env-file)
|
|
135
|
+
- [LiteLLM Configuration](#-litellm-configuration)
|
|
136
|
+
- [Project Structure](#-project-structure)
|
|
137
|
+
- [Setup and Usage](#setup-and-usage)
|
|
138
|
+
- [Building Your Own Agent](#-building-your-own-agent)
|
|
139
|
+
- [Docker Setup](#-docker-setup)
|
|
140
|
+
- [Using the AgentClient](#-using-the-agentclient)
|
|
141
|
+
- [Development with LangGraph Studio](#-development-with-langgraph-studio)
|
|
142
|
+
- [Local Development Without Docker](#-local-development-without-docker)
|
|
143
|
+
- [Useful Resources](#-useful-resources)
|
|
144
|
+
- [Development and Contributing](#-development-and-contributing)
|
|
145
|
+
- [License](#-license)
|
|
146
|
+
|
|
31
147
|
## 🚀 Quickstart
|
|
32
148
|
|
|
33
149
|
1. Create a `.env` file based on [`.env.example`](./.env.example)
|
|
@@ -54,12 +170,37 @@ Features include:
|
|
|
54
170
|
pip install langgraph-agent-toolkit
|
|
55
171
|
```
|
|
56
172
|
|
|
173
|
+
ℹ️ You can check available extras in
|
|
174
|
+
[Installation Options](#-installation-options) section or directly in
|
|
175
|
+
[pyproject.toml](pyproject.toml) file.
|
|
176
|
+
|
|
57
177
|
4. **Option 3: Run with Docker**
|
|
58
178
|
|
|
59
179
|
```sh
|
|
60
180
|
docker compose watch
|
|
61
181
|
```
|
|
62
182
|
|
|
183
|
+
## 📦 Installation Options
|
|
184
|
+
|
|
185
|
+
The toolkit supports multiple installation options using "extras" to include
|
|
186
|
+
just the dependencies you need:
|
|
187
|
+
|
|
188
|
+
### Available Extras
|
|
189
|
+
|
|
190
|
+
```sh
|
|
191
|
+
# LLM Provider Extras
|
|
192
|
+
pip install "langgraph-agent-toolkit[openai,uvicorn-backend]" # OpenAI and Uvicorn backend
|
|
193
|
+
pip install "langgraph-agent-toolkit[anthropic,aws-backend]" # Anthropic and AWS Lambda backend
|
|
194
|
+
|
|
195
|
+
# Also available: google-vertexai, aws, ollama, groq, deepseek
|
|
196
|
+
pip install "langgraph-agent-toolkit[all-llms,ll-backends]" # All LLM providers and all backends
|
|
197
|
+
|
|
198
|
+
# Client-Only Installation
|
|
199
|
+
pip install "langgraph-agent-toolkit[client]" # Just the client and Streamlit app
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
<a name="architecture"></a>
|
|
203
|
+
|
|
63
204
|
## 🏗️ Architecture
|
|
64
205
|
|
|
65
206
|
<!-- <img src="docs/media/agent_architecture.png" width="800"> -->
|
|
@@ -98,6 +239,8 @@ Features include:
|
|
|
98
239
|
- Prompt management system
|
|
99
240
|
- LiteLLM proxy integration
|
|
100
241
|
|
|
242
|
+
<a name="environment-setup"></a>
|
|
243
|
+
|
|
101
244
|
## ⚙️ Environment Setup
|
|
102
245
|
|
|
103
246
|
### 📝 Creating Your `.env` File
|
|
@@ -138,6 +281,44 @@ Features include:
|
|
|
138
281
|
# - Ollama
|
|
139
282
|
```
|
|
140
283
|
|
|
284
|
+
**🔀 Multi-Provider Model Configuration**
|
|
285
|
+
|
|
286
|
+
```env
|
|
287
|
+
# Configure multiple models from different providers in a single environment variable
|
|
288
|
+
MODEL_CONFIGS={\
|
|
289
|
+
"gpt4o": {\
|
|
290
|
+
"provider": "azure_openai",\
|
|
291
|
+
"name": "gpt-4o",\
|
|
292
|
+
"api_key": "azure-key-123",\
|
|
293
|
+
"endpoint": "https://your-resource.openai.azure.com/",\
|
|
294
|
+
"api_version": "2023-05-15",\
|
|
295
|
+
"deployment": "gpt4o-deployment",\
|
|
296
|
+
"temperature": 0.7\
|
|
297
|
+
},\
|
|
298
|
+
"gpt4o-mini": {\
|
|
299
|
+
"provider": "azure_openai",\
|
|
300
|
+
"name": "gpt-4o-mini",\
|
|
301
|
+
"api_key": "azure-key-123",\
|
|
302
|
+
"endpoint": "https://your-resource.openai.azure.com/",\
|
|
303
|
+
"api_version": "2023-05-15",\
|
|
304
|
+
"deployment": "gpt4o-mini-deployment"\
|
|
305
|
+
},\
|
|
306
|
+
"gemini": {\
|
|
307
|
+
"provider": "google_genai",\
|
|
308
|
+
"name": "gemini-pro",\
|
|
309
|
+
"api_key": "google-key-123",\
|
|
310
|
+
"temperature": 0.7\
|
|
311
|
+
}\
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
This configuration allows you to:
|
|
316
|
+
|
|
317
|
+
- Define multiple models with different providers in one place
|
|
318
|
+
- Reference them by logical names in your application
|
|
319
|
+
- Set provider-specific parameters for each model
|
|
320
|
+
- Switch between models without changing code
|
|
321
|
+
|
|
141
322
|
**🗄️ Database Configuration**
|
|
142
323
|
|
|
143
324
|
```env
|
|
@@ -213,13 +394,20 @@ Features include:
|
|
|
213
394
|
redis_password: os.environ/REDIS_AUTH
|
|
214
395
|
```
|
|
215
396
|
|
|
216
|
-
3. Setup
|
|
397
|
+
3. Setup service environment files:
|
|
398
|
+
|
|
399
|
+
Each service has its own environment file:
|
|
217
400
|
|
|
218
401
|
```sh
|
|
219
402
|
cp configs/litellm/.litellm.env.example configs/litellm/.litellm.env
|
|
403
|
+
cp configs/redis/.redis.env.example configs/redis/.redis.env
|
|
404
|
+
cp configs/postgres/.postgres.env.example configs/postgres/.postgres.env
|
|
405
|
+
cp configs/minio/.minio.env.example configs/minio/.minio.env
|
|
406
|
+
cp configs/clickhouse/.clickhouse.env.example configs/clickhouse/.clickhouse.env
|
|
407
|
+
cp configs/langfuse/.langfuse.env.example configs/langfuse/.langfuse.env
|
|
220
408
|
```
|
|
221
409
|
|
|
222
|
-
|
|
410
|
+
For example, edit LiteLLM environment:
|
|
223
411
|
|
|
224
412
|
```env
|
|
225
413
|
LITELLM_MASTER_KEY=sk-your-master-key # Create a strong key here
|
|
@@ -228,7 +416,8 @@ Features include:
|
|
|
228
416
|
STORE_MODEL_IN_DB=True
|
|
229
417
|
```
|
|
230
418
|
|
|
231
|
-
>
|
|
419
|
+
> [!NOTE]
|
|
420
|
+
> LiteLLM relies on Redis for request caching and rate limiting.
|
|
232
421
|
|
|
233
422
|
## 📂 Project Structure
|
|
234
423
|
|
|
@@ -244,6 +433,8 @@ The repository contains:
|
|
|
244
433
|
- `docker/`: Docker configurations
|
|
245
434
|
- `tests/`: Test suite
|
|
246
435
|
|
|
436
|
+
<a name="setup-and-usage"></a>
|
|
437
|
+
|
|
247
438
|
## 🛠️ Setup and Usage
|
|
248
439
|
|
|
249
440
|
1. Clone the repository:
|
|
@@ -268,7 +459,7 @@ To customize the agent:
|
|
|
268
459
|
|
|
269
460
|
### 🐳 Docker Setup
|
|
270
461
|
|
|
271
|
-
The `docker-compose.yaml` defines these services:
|
|
462
|
+
The `docker-compose.yaml` defines these services with enhanced security:
|
|
272
463
|
|
|
273
464
|
- `backend-agent-service`: FastAPI service
|
|
274
465
|
- `frontend-streamlit-app`: Streamlit chat interface
|
|
@@ -296,7 +487,7 @@ enables live reloading:
|
|
|
296
487
|
- 🔌 Agent API: `http://0.0.0.0:8080`
|
|
297
488
|
- 📚 API docs: `http://0.0.0.0:8080/docs`
|
|
298
489
|
- 📊 Langfuse dashboard: `http://0.0.0.0:3000`
|
|
299
|
-
- 🤖 LiteLLM API: `http://0.0.0.0:4000`
|
|
490
|
+
- 🤖 LiteLLM API: `http://0.0.0.0:4000` (accessible from any host)
|
|
300
491
|
|
|
301
492
|
4. Stop services:
|
|
302
493
|
|
|
@@ -1,74 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: langgraph-agent-toolkit
|
|
3
|
-
Version: 0.2.0
|
|
4
|
-
Summary: Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit
|
|
5
|
-
Project-URL: repository, https://github.com/kryvokhyzha/langgraph-agent-toolkit
|
|
6
|
-
Project-URL: PyPI, https://pypi.org/project/langgraph-agent-toolkit
|
|
7
|
-
Author-email: Roman Kryvokhyzha <kriwohizha@gmail.com>
|
|
8
|
-
License-Expression: MIT
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Keywords: agents,blueprint,fastapi,langgraph,litellm,streamlit
|
|
11
|
-
Classifier: Development Status :: 4 - Beta
|
|
12
|
-
Classifier: Framework :: FastAPI
|
|
13
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
-
Classifier: Operating System :: OS Independent
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
-
Classifier: Topic :: Scientific/Engineering
|
|
19
|
-
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
20
|
-
Classifier: Topic :: Software Development
|
|
21
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
-
Requires-Python: <3.14,>=3.11
|
|
23
|
-
Requires-Dist: duckduckgo-search>=7.3.0
|
|
24
|
-
Requires-Dist: fastapi~=0.115.5
|
|
25
|
-
Requires-Dist: grpcio>=1.68.0
|
|
26
|
-
Requires-Dist: httpx~=0.28.1
|
|
27
|
-
Requires-Dist: jinja2~=3.1.6
|
|
28
|
-
Requires-Dist: jiter~=0.9.0
|
|
29
|
-
Requires-Dist: joblib~=1.4.2
|
|
30
|
-
Requires-Dist: langchain-community~=0.3.21
|
|
31
|
-
Requires-Dist: langchain-core~=0.3.52
|
|
32
|
-
Requires-Dist: langchain-openai~=0.3.12
|
|
33
|
-
Requires-Dist: langfuse~=2.60.3
|
|
34
|
-
Requires-Dist: langgraph-checkpoint-postgres~=2.0.19
|
|
35
|
-
Requires-Dist: langgraph-checkpoint-sqlite~=2.0.6
|
|
36
|
-
Requires-Dist: langgraph-cli[inmem]~=0.2.3
|
|
37
|
-
Requires-Dist: langgraph-supervisor~=0.0.16
|
|
38
|
-
Requires-Dist: langgraph~=0.3.30
|
|
39
|
-
Requires-Dist: langsmith~=0.3.31
|
|
40
|
-
Requires-Dist: loguru~=0.7.3
|
|
41
|
-
Requires-Dist: multidict>6.3.2
|
|
42
|
-
Requires-Dist: numpy~=1.26.4; python_version <= '3.12'
|
|
43
|
-
Requires-Dist: numpy~=2.2.3; python_version >= '3.13'
|
|
44
|
-
Requires-Dist: pandas~=2.2.3
|
|
45
|
-
Requires-Dist: psycopg[binary,pool]~=3.2.4
|
|
46
|
-
Requires-Dist: pyarrow~=19.0.1
|
|
47
|
-
Requires-Dist: pydantic-settings~=2.9.1
|
|
48
|
-
Requires-Dist: pydantic~=2.11.1
|
|
49
|
-
Requires-Dist: pyowm~=3.3.0
|
|
50
|
-
Requires-Dist: python-dotenv~=1.1.0
|
|
51
|
-
Requires-Dist: rootutils>=1.0.7
|
|
52
|
-
Requires-Dist: setuptools>=75.6.0
|
|
53
|
-
Requires-Dist: streamlit~=1.44.1
|
|
54
|
-
Requires-Dist: uvicorn~=0.34.0
|
|
55
|
-
Requires-Dist: watchdog~=6.0.0
|
|
56
|
-
Provides-Extra: aws
|
|
57
|
-
Requires-Dist: mangum~=0.19.0; extra == 'aws'
|
|
58
|
-
Provides-Extra: azure
|
|
59
|
-
Requires-Dist: azure-functions~=1.23.0; extra == 'azure'
|
|
60
|
-
Provides-Extra: deploy-all
|
|
61
|
-
Requires-Dist: azure-functions~=1.23.0; extra == 'deploy-all'
|
|
62
|
-
Requires-Dist: gunicorn~=23.0.0; extra == 'deploy-all'
|
|
63
|
-
Requires-Dist: mangum~=0.19.0; extra == 'deploy-all'
|
|
64
|
-
Requires-Dist: uvicorn~=0.34.2; extra == 'deploy-all'
|
|
65
|
-
Provides-Extra: gunicorn
|
|
66
|
-
Requires-Dist: gunicorn~=23.0.0; extra == 'gunicorn'
|
|
67
|
-
Requires-Dist: uvicorn[standard]~=0.34.2; extra == 'gunicorn'
|
|
68
|
-
Provides-Extra: uvicorn
|
|
69
|
-
Requires-Dist: uvicorn~=0.34.2; extra == 'uvicorn'
|
|
70
|
-
Description-Content-Type: text/markdown
|
|
71
|
-
|
|
72
1
|
# 🧰 Langgraph Agent Toolkit
|
|
73
2
|
|
|
74
3
|
[](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml)
|
|
@@ -99,6 +28,27 @@ Features include:
|
|
|
99
28
|
support
|
|
100
29
|
- Complete template for building and deploying your own LangGraph-based agents
|
|
101
30
|
|
|
31
|
+
## 📑 Contents
|
|
32
|
+
|
|
33
|
+
- [Introduction](#-introduction)
|
|
34
|
+
- [Quickstart](#-quickstart)
|
|
35
|
+
- [Installation Options](#-installation-options)
|
|
36
|
+
- [Architecture](#architecture)
|
|
37
|
+
- [Key Features](#-key-features)
|
|
38
|
+
- [Environment Setup](#environment-setup)
|
|
39
|
+
- [Creating Your `.env` File](#-creating-your-env-file)
|
|
40
|
+
- [LiteLLM Configuration](#-litellm-configuration)
|
|
41
|
+
- [Project Structure](#-project-structure)
|
|
42
|
+
- [Setup and Usage](#setup-and-usage)
|
|
43
|
+
- [Building Your Own Agent](#-building-your-own-agent)
|
|
44
|
+
- [Docker Setup](#-docker-setup)
|
|
45
|
+
- [Using the AgentClient](#-using-the-agentclient)
|
|
46
|
+
- [Development with LangGraph Studio](#-development-with-langgraph-studio)
|
|
47
|
+
- [Local Development Without Docker](#-local-development-without-docker)
|
|
48
|
+
- [Useful Resources](#-useful-resources)
|
|
49
|
+
- [Development and Contributing](#-development-and-contributing)
|
|
50
|
+
- [License](#-license)
|
|
51
|
+
|
|
102
52
|
## 🚀 Quickstart
|
|
103
53
|
|
|
104
54
|
1. Create a `.env` file based on [`.env.example`](./.env.example)
|
|
@@ -125,12 +75,37 @@ Features include:
|
|
|
125
75
|
pip install langgraph-agent-toolkit
|
|
126
76
|
```
|
|
127
77
|
|
|
78
|
+
ℹ️ You can check available extras in
|
|
79
|
+
[Installation Options](#-installation-options) section or directly in
|
|
80
|
+
[pyproject.toml](pyproject.toml) file.
|
|
81
|
+
|
|
128
82
|
4. **Option 3: Run with Docker**
|
|
129
83
|
|
|
130
84
|
```sh
|
|
131
85
|
docker compose watch
|
|
132
86
|
```
|
|
133
87
|
|
|
88
|
+
## 📦 Installation Options
|
|
89
|
+
|
|
90
|
+
The toolkit supports multiple installation options using "extras" to include
|
|
91
|
+
just the dependencies you need:
|
|
92
|
+
|
|
93
|
+
### Available Extras
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
# LLM Provider Extras
|
|
97
|
+
pip install "langgraph-agent-toolkit[openai,uvicorn-backend]" # OpenAI and Uvicorn backend
|
|
98
|
+
pip install "langgraph-agent-toolkit[anthropic,aws-backend]" # Anthropic and AWS Lambda backend
|
|
99
|
+
|
|
100
|
+
# Also available: google-vertexai, aws, ollama, groq, deepseek
|
|
101
|
+
pip install "langgraph-agent-toolkit[all-llms,ll-backends]" # All LLM providers and all backends
|
|
102
|
+
|
|
103
|
+
# Client-Only Installation
|
|
104
|
+
pip install "langgraph-agent-toolkit[client]" # Just the client and Streamlit app
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
<a name="architecture"></a>
|
|
108
|
+
|
|
134
109
|
## 🏗️ Architecture
|
|
135
110
|
|
|
136
111
|
<!-- <img src="docs/media/agent_architecture.png" width="800"> -->
|
|
@@ -169,6 +144,8 @@ Features include:
|
|
|
169
144
|
- Prompt management system
|
|
170
145
|
- LiteLLM proxy integration
|
|
171
146
|
|
|
147
|
+
<a name="environment-setup"></a>
|
|
148
|
+
|
|
172
149
|
## ⚙️ Environment Setup
|
|
173
150
|
|
|
174
151
|
### 📝 Creating Your `.env` File
|
|
@@ -209,6 +186,44 @@ Features include:
|
|
|
209
186
|
# - Ollama
|
|
210
187
|
```
|
|
211
188
|
|
|
189
|
+
**🔀 Multi-Provider Model Configuration**
|
|
190
|
+
|
|
191
|
+
```env
|
|
192
|
+
# Configure multiple models from different providers in a single environment variable
|
|
193
|
+
MODEL_CONFIGS={\
|
|
194
|
+
"gpt4o": {\
|
|
195
|
+
"provider": "azure_openai",\
|
|
196
|
+
"name": "gpt-4o",\
|
|
197
|
+
"api_key": "azure-key-123",\
|
|
198
|
+
"endpoint": "https://your-resource.openai.azure.com/",\
|
|
199
|
+
"api_version": "2023-05-15",\
|
|
200
|
+
"deployment": "gpt4o-deployment",\
|
|
201
|
+
"temperature": 0.7\
|
|
202
|
+
},\
|
|
203
|
+
"gpt4o-mini": {\
|
|
204
|
+
"provider": "azure_openai",\
|
|
205
|
+
"name": "gpt-4o-mini",\
|
|
206
|
+
"api_key": "azure-key-123",\
|
|
207
|
+
"endpoint": "https://your-resource.openai.azure.com/",\
|
|
208
|
+
"api_version": "2023-05-15",\
|
|
209
|
+
"deployment": "gpt4o-mini-deployment"\
|
|
210
|
+
},\
|
|
211
|
+
"gemini": {\
|
|
212
|
+
"provider": "google_genai",\
|
|
213
|
+
"name": "gemini-pro",\
|
|
214
|
+
"api_key": "google-key-123",\
|
|
215
|
+
"temperature": 0.7\
|
|
216
|
+
}\
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
This configuration allows you to:
|
|
221
|
+
|
|
222
|
+
- Define multiple models with different providers in one place
|
|
223
|
+
- Reference them by logical names in your application
|
|
224
|
+
- Set provider-specific parameters for each model
|
|
225
|
+
- Switch between models without changing code
|
|
226
|
+
|
|
212
227
|
**🗄️ Database Configuration**
|
|
213
228
|
|
|
214
229
|
```env
|
|
@@ -284,13 +299,20 @@ Features include:
|
|
|
284
299
|
redis_password: os.environ/REDIS_AUTH
|
|
285
300
|
```
|
|
286
301
|
|
|
287
|
-
3. Setup
|
|
302
|
+
3. Setup service environment files:
|
|
303
|
+
|
|
304
|
+
Each service has its own environment file:
|
|
288
305
|
|
|
289
306
|
```sh
|
|
290
307
|
cp configs/litellm/.litellm.env.example configs/litellm/.litellm.env
|
|
308
|
+
cp configs/redis/.redis.env.example configs/redis/.redis.env
|
|
309
|
+
cp configs/postgres/.postgres.env.example configs/postgres/.postgres.env
|
|
310
|
+
cp configs/minio/.minio.env.example configs/minio/.minio.env
|
|
311
|
+
cp configs/clickhouse/.clickhouse.env.example configs/clickhouse/.clickhouse.env
|
|
312
|
+
cp configs/langfuse/.langfuse.env.example configs/langfuse/.langfuse.env
|
|
291
313
|
```
|
|
292
314
|
|
|
293
|
-
|
|
315
|
+
For example, edit LiteLLM environment:
|
|
294
316
|
|
|
295
317
|
```env
|
|
296
318
|
LITELLM_MASTER_KEY=sk-your-master-key # Create a strong key here
|
|
@@ -299,7 +321,8 @@ Features include:
|
|
|
299
321
|
STORE_MODEL_IN_DB=True
|
|
300
322
|
```
|
|
301
323
|
|
|
302
|
-
>
|
|
324
|
+
> [!NOTE]
|
|
325
|
+
> LiteLLM relies on Redis for request caching and rate limiting.
|
|
303
326
|
|
|
304
327
|
## 📂 Project Structure
|
|
305
328
|
|
|
@@ -315,6 +338,8 @@ The repository contains:
|
|
|
315
338
|
- `docker/`: Docker configurations
|
|
316
339
|
- `tests/`: Test suite
|
|
317
340
|
|
|
341
|
+
<a name="setup-and-usage"></a>
|
|
342
|
+
|
|
318
343
|
## 🛠️ Setup and Usage
|
|
319
344
|
|
|
320
345
|
1. Clone the repository:
|
|
@@ -339,7 +364,7 @@ To customize the agent:
|
|
|
339
364
|
|
|
340
365
|
### 🐳 Docker Setup
|
|
341
366
|
|
|
342
|
-
The `docker-compose.yaml` defines these services:
|
|
367
|
+
The `docker-compose.yaml` defines these services with enhanced security:
|
|
343
368
|
|
|
344
369
|
- `backend-agent-service`: FastAPI service
|
|
345
370
|
- `frontend-streamlit-app`: Streamlit chat interface
|
|
@@ -367,7 +392,7 @@ enables live reloading:
|
|
|
367
392
|
- 🔌 Agent API: `http://0.0.0.0:8080`
|
|
368
393
|
- 📚 API docs: `http://0.0.0.0:8080/docs`
|
|
369
394
|
- 📊 Langfuse dashboard: `http://0.0.0.0:3000`
|
|
370
|
-
- 🤖 LiteLLM API: `http://0.0.0.0:4000`
|
|
395
|
+
- 🤖 LiteLLM API: `http://0.0.0.0:4000` (accessible from any host)
|
|
371
396
|
|
|
372
397
|
4. Stop services:
|
|
373
398
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/langfuse
|
|
2
|
+
SALT=mysalt
|
|
3
|
+
ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000
|
|
4
|
+
TELEMETRY_ENABLED=true
|
|
5
|
+
LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES=true
|
|
6
|
+
|
|
7
|
+
# ClickHouse Config
|
|
8
|
+
CLICKHOUSE_MIGRATION_URL=clickhouse://clickhouse:9000
|
|
9
|
+
CLICKHOUSE_URL=http://clickhouse:8123
|
|
10
|
+
CLICKHOUSE_USER=clickhouse
|
|
11
|
+
CLICKHOUSE_PASSWORD=clickhouse
|
|
12
|
+
CLICKHOUSE_CLUSTER_ENABLED=false
|
|
13
|
+
|
|
14
|
+
# S3 Event Upload
|
|
15
|
+
LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse
|
|
16
|
+
LANGFUSE_S3_EVENT_UPLOAD_REGION=auto
|
|
17
|
+
LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=minio
|
|
18
|
+
LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=miniosecret
|
|
19
|
+
LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://minio:9000
|
|
20
|
+
LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true
|
|
21
|
+
LANGFUSE_S3_EVENT_UPLOAD_PREFIX=events/
|
|
22
|
+
|
|
23
|
+
# S3 Media Upload
|
|
24
|
+
LANGFUSE_S3_MEDIA_UPLOAD_BUCKET=langfuse
|
|
25
|
+
LANGFUSE_S3_MEDIA_UPLOAD_REGION=auto
|
|
26
|
+
LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID=minio
|
|
27
|
+
LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY=miniosecret
|
|
28
|
+
LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT=http://localhost:9090
|
|
29
|
+
LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE=true
|
|
30
|
+
LANGFUSE_S3_MEDIA_UPLOAD_PREFIX=media/
|
|
31
|
+
|
|
32
|
+
# S3 Batch Export
|
|
33
|
+
LANGFUSE_S3_BATCH_EXPORT_ENABLED=false
|
|
34
|
+
LANGFUSE_S3_BATCH_EXPORT_BUCKET=langfuse
|
|
35
|
+
LANGFUSE_S3_BATCH_EXPORT_PREFIX=exports/
|
|
36
|
+
LANGFUSE_S3_BATCH_EXPORT_REGION=auto
|
|
37
|
+
LANGFUSE_S3_BATCH_EXPORT_ENDPOINT=http://minio:9000
|
|
38
|
+
LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT=http://localhost:9090
|
|
39
|
+
LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID=minio
|
|
40
|
+
LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY=miniosecret
|
|
41
|
+
LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE=true
|
|
42
|
+
|
|
43
|
+
# Redis TLS
|
|
44
|
+
REDIS_TLS_ENABLED=false
|
|
45
|
+
REDIS_TLS_CA=/certs/ca.crt
|
|
46
|
+
REDIS_TLS_CERT=/certs/redis.crt
|
|
47
|
+
REDIS_TLS_KEY=/certs/redis.key
|
|
48
|
+
|
|
49
|
+
# Langfuse Init
|
|
50
|
+
NEXTAUTH_SECRET=mysecret
|
|
51
|
+
LANGFUSE_INIT_ORG_ID=1111111
|
|
52
|
+
LANGFUSE_INIT_ORG_NAME=Test Organization
|
|
53
|
+
LANGFUSE_INIT_PROJECT_ID=1111111
|
|
54
|
+
LANGFUSE_INIT_PROJECT_NAME=Test Project
|
|
55
|
+
LANGFUSE_INIT_PROJECT_PUBLIC_KEY=lf-pk-1234567890
|
|
56
|
+
LANGFUSE_INIT_PROJECT_SECRET_KEY=lf-sk-1234567890
|
|
57
|
+
LANGFUSE_INIT_USER_EMAIL=randomemail@random.com
|
|
58
|
+
LANGFUSE_INIT_USER_NAME=username
|
|
59
|
+
LANGFUSE_INIT_USER_PASSWORD=11111111111111111
|