langgraph-agent-toolkit 0.4.3__tar.gz → 0.4.4__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.
Files changed (154) hide show
  1. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/CHANGELOG.md +10 -0
  2. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/PKG-INFO +13 -10
  3. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/README.md +3 -0
  4. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/react_so/agent.py +6 -3
  5. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/components/creators/create_react_agent.py +59 -48
  6. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/components/utils.py +9 -1
  7. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/models/factory.py +14 -4
  8. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/settings.py +1 -0
  9. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/run_agent.py +9 -2
  10. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/run_service.py +1 -0
  11. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/pyproject.toml +10 -10
  12. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/uv.lock +37 -37
  13. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.coveragerc +0 -0
  14. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.dockerignore +0 -0
  15. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.env.example +0 -0
  16. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  17. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  18. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  19. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/RELEASE_TEMPLATE/release-template.md +0 -0
  20. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/codecov.yml +0 -0
  21. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/dependabot.yml +0 -0
  22. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/scripts/tag_from_pyproject.sh +0 -0
  23. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/workflows/deploy.yml +0 -0
  24. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/workflows/release.yml +0 -0
  25. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/workflows/sphinx.yml +0 -0
  26. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.github/workflows/test.yml +0 -0
  27. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.gitignore +0 -0
  28. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.pre-commit-config.yaml +0 -0
  29. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/.project-root +0 -0
  30. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/CONTRIBUTING.md +0 -0
  31. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/LICENSE +0 -0
  32. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/Makefile +0 -0
  33. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/clickhouse/.clickhouse.env.example +0 -0
  34. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/langfuse/.langfuse.env.example +0 -0
  35. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/litellm/.litellm.env.example +0 -0
  36. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/litellm/config.example.yaml +0 -0
  37. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/minio/.minio.env.example +0 -0
  38. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/postgres/.postgres.env.example +0 -0
  39. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/configs/redis/.redis.env.example +0 -0
  40. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docker/app/Dockerfile +0 -0
  41. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docker/service/Dockerfile +0 -0
  42. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docker-compose.yaml +0 -0
  43. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/.gitignore +0 -0
  44. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/Makefile +0 -0
  45. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/_static/custom.css +0 -0
  46. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/_templates/class.rst +0 -0
  47. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/_templates/layout.html +0 -0
  48. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/_templates/module.rst +0 -0
  49. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/conf.py +0 -0
  50. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/contributing.rst +0 -0
  51. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/environment_setup.rst +0 -0
  52. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/index.rst +0 -0
  53. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/installation.rst +0 -0
  54. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/make.bat +0 -0
  55. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/media/agent_architecture.excalidraw +0 -0
  56. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/media/agent_architecture.png +0 -0
  57. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/media/agent_diagram.png +0 -0
  58. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/media/logo.svg +0 -0
  59. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/docs/usage.rst +0 -0
  60. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph.json +0 -0
  61. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/__init__.py +0 -0
  62. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/__init__.py +0 -0
  63. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/agent.py +0 -0
  64. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/agent_executor.py +0 -0
  65. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/__init__.py +0 -0
  66. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/__init__.py +0 -0
  67. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/agent.py +0 -0
  68. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/task.py +0 -0
  69. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/utils.py +0 -0
  70. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/chatbot/__init__.py +0 -0
  71. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/chatbot/agent.py +0 -0
  72. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/command_agent/__init__.py +0 -0
  73. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/command_agent/agent.py +0 -0
  74. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/__init__.py +0 -0
  75. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/agent.py +0 -0
  76. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent/__init__.py +0 -0
  77. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent/agent.py +0 -0
  78. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/react/__init__.py +0 -0
  79. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/react/agent.py +0 -0
  80. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/react_so/__init__.py +0 -0
  81. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/supervisor_agent/__init__.py +0 -0
  82. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/blueprints/supervisor_agent/agent.py +0 -0
  83. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/components/__init__.py +0 -0
  84. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/components/creators/__init__.py +0 -0
  85. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/agents/components/tools.py +0 -0
  86. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/client/__init__.py +0 -0
  87. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/client/client.py +0 -0
  88. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/__init__.py +0 -0
  89. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/memory/__init__.py +0 -0
  90. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/memory/base.py +0 -0
  91. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/memory/factory.py +0 -0
  92. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/memory/postgres.py +0 -0
  93. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/memory/sqlite.py +0 -0
  94. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/memory/types.py +0 -0
  95. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/models/__init__.py +0 -0
  96. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/models/chat_openai.py +0 -0
  97. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/models/fake.py +0 -0
  98. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/__init__.py +0 -0
  99. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/base.py +0 -0
  100. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/empty.py +0 -0
  101. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/factory.py +0 -0
  102. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/langfuse.py +0 -0
  103. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/langsmith.py +0 -0
  104. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/observability/types.py +0 -0
  105. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/prompts/__init__.py +0 -0
  106. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/core/prompts/chat_prompt_template.py +0 -0
  107. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/helper/__init__.py +0 -0
  108. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/helper/constants.py +0 -0
  109. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/helper/logging.py +0 -0
  110. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/helper/types.py +0 -0
  111. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/helper/utils.py +0 -0
  112. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/run_client.py +0 -0
  113. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/schema/__init__.py +0 -0
  114. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/schema/models.py +0 -0
  115. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/schema/schema.py +0 -0
  116. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/schema/task_data.py +0 -0
  117. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/__init__.py +0 -0
  118. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/exception_handlers.py +0 -0
  119. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/factory.py +0 -0
  120. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/handler.py +0 -0
  121. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/middleware.py +0 -0
  122. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/routes.py +0 -0
  123. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/types.py +0 -0
  124. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/service/utils.py +0 -0
  125. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/langgraph_agent_toolkit/streamlit_app.py +0 -0
  126. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/postgres-init/create_databases.sql +0 -0
  127. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/01-invoke-proxy.py +0 -0
  128. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/02-test-local-pm.py +0 -0
  129. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/03-test-langfuse-pm.py +0 -0
  130. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/04-test-langsmith-pm.py +0 -0
  131. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/05-test-prompt-types.py +0 -0
  132. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/06-test-custom-chat-prompt-template.py +0 -0
  133. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/07-test-get-chat-history.py +0 -0
  134. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/08-test-update-chat-history.py +0 -0
  135. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/scripts/python/09-test-clear-chat-history.py +0 -0
  136. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/agents/test_agent_executor.py +0 -0
  137. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/agents/test_service_streaming.py +0 -0
  138. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/app/conftest.py +0 -0
  139. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/app/test_streamlit_app.py +0 -0
  140. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/client/conftest.py +0 -0
  141. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/client/test_client.py +0 -0
  142. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/conftest.py +0 -0
  143. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/core/test_llm.py +0 -0
  144. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/core/test_memory.py +0 -0
  145. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/core/test_observability.py +0 -0
  146. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/core/test_prompts.py +0 -0
  147. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/core/test_settings.py +0 -0
  148. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/integration/test_docker_e2e.py +0 -0
  149. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/service/conftest.py +0 -0
  150. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/service/test_auth.py +0 -0
  151. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/service/test_factory.py +0 -0
  152. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/service/test_service.py +0 -0
  153. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/service/test_service_e2e.py +0 -0
  154. {langgraph_agent_toolkit-0.4.3 → langgraph_agent_toolkit-0.4.4}/tests/service/test_utils.py +0 -0
@@ -6,6 +6,16 @@ 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.4.4]
10
+
11
+ ### Updated
12
+
13
+ - Project dependencies
14
+
15
+ ### Fixed
16
+
17
+ - Strucuted output and model factory
18
+
9
19
  ## [0.4.3]
10
20
 
11
21
  ### Updated
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-agent-toolkit
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit
5
5
  Project-URL: documentation, https://kryvokhyzha.github.io/langgraph-agent-toolkit
6
6
  Project-URL: repository, https://github.com/kryvokhyzha/langgraph-agent-toolkit
@@ -29,13 +29,13 @@ Requires-Dist: httpx~=0.28.1
29
29
  Requires-Dist: jinja2~=3.1.6
30
30
  Requires-Dist: jiter~=0.9.0
31
31
  Requires-Dist: joblib>=1.4.2
32
- Requires-Dist: langchain-community~=0.3.21
33
- Requires-Dist: langchain-core~=0.3.52
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.4.1
32
+ Requires-Dist: langchain-community~=0.3.23
33
+ Requires-Dist: langchain-core~=0.3.59
34
+ Requires-Dist: langgraph-checkpoint-postgres~=2.0.21
35
+ Requires-Dist: langgraph-checkpoint-sqlite~=2.0.7
36
+ Requires-Dist: langgraph-cli[inmem]~=0.2.8
37
+ Requires-Dist: langgraph-supervisor~=0.0.21
38
+ Requires-Dist: langgraph~=0.4.3
39
39
  Requires-Dist: loguru~=0.7.3
40
40
  Requires-Dist: multidict>6.3.2
41
41
  Requires-Dist: numpy~=1.26.4; python_version <= '3.12'
@@ -65,7 +65,7 @@ Requires-Dist: langchain-google-genai~=2.1.4; extra == 'all-llms'
65
65
  Requires-Dist: langchain-google-vertexai~=2.0.21; extra == 'all-llms'
66
66
  Requires-Dist: langchain-groq~=0.3.2; extra == 'all-llms'
67
67
  Requires-Dist: langchain-ollama~=0.3.2; extra == 'all-llms'
68
- Requires-Dist: langchain-openai~=0.3.12; extra == 'all-llms'
68
+ Requires-Dist: langchain-openai~=0.3.16; extra == 'all-llms'
69
69
  Provides-Extra: all-observability
70
70
  Requires-Dist: langfuse~=2.60.3; extra == 'all-observability'
71
71
  Requires-Dist: langsmith~=0.3.31; extra == 'all-observability'
@@ -95,7 +95,7 @@ Requires-Dist: langsmith~=0.3.31; extra == 'langsmith'
95
95
  Provides-Extra: ollama
96
96
  Requires-Dist: langchain-ollama~=0.3.2; extra == 'ollama'
97
97
  Provides-Extra: openai
98
- Requires-Dist: langchain-openai~=0.3.12; extra == 'openai'
98
+ Requires-Dist: langchain-openai~=0.3.16; extra == 'openai'
99
99
  Provides-Extra: uvicorn-backend
100
100
  Requires-Dist: uvicorn~=0.34.2; extra == 'uvicorn-backend'
101
101
  Description-Content-Type: text/markdown
@@ -299,6 +299,9 @@ and includes:
299
299
  - [LangGraph documentation](https://langchain-ai.github.io/langgraph/concepts/low_level/#multiple-schemas)
300
300
  - [LangGraph Memory Concept](https://langchain-ai.github.io/langgraph/concepts/memory/)
301
301
  - [LangGraph Memory Persistence](https://langchain-ai.github.io/langgraph/concepts/persistence/#memory)
302
+ - [LangGraph 101 - blueprints](https://github.com/langchain-ai/langgraph-101)
303
+ - [LangGraph - Examples](https://github.com/langchain-ai/langgraph/tree/main/examples)
304
+ - [Complex data extraction with function calling](https://langchain-ai.github.io/langgraph/tutorials/extraction/retries/)
302
305
  - [How to edit graph state](https://langchain-ai.github.io/langgraph/how-tos/human_in_the_loop/edit-graph-state/)
303
306
  - [How to create tools in Langchain](https://python.langchain.com/docs/how_to/custom_tools/)
304
307
  - [Simple Serverless FastAPI with AWS Lambda](https://www.deadbear.io/simple-serverless-fastapi-with-aws-lambda/)
@@ -197,6 +197,9 @@ and includes:
197
197
  - [LangGraph documentation](https://langchain-ai.github.io/langgraph/concepts/low_level/#multiple-schemas)
198
198
  - [LangGraph Memory Concept](https://langchain-ai.github.io/langgraph/concepts/memory/)
199
199
  - [LangGraph Memory Persistence](https://langchain-ai.github.io/langgraph/concepts/persistence/#memory)
200
+ - [LangGraph 101 - blueprints](https://github.com/langchain-ai/langgraph-101)
201
+ - [LangGraph - Examples](https://github.com/langchain-ai/langgraph/tree/main/examples)
202
+ - [Complex data extraction with function calling](https://langchain-ai.github.io/langgraph/tutorials/extraction/retries/)
200
203
  - [How to edit graph state](https://langchain-ai.github.io/langgraph/how-tos/human_in_the_loop/edit-graph-state/)
201
204
  - [How to create tools in Langchain](https://python.langchain.com/docs/how_to/custom_tools/)
202
205
  - [Simple Serverless FastAPI with AWS Lambda](https://www.deadbear.io/simple-serverless-fastapi-with-aws-lambda/)
@@ -5,7 +5,10 @@ from pydantic import BaseModel, Field
5
5
  from langgraph_agent_toolkit.agents.agent import Agent
6
6
  from langgraph_agent_toolkit.agents.components.creators.create_react_agent import create_react_agent
7
7
  from langgraph_agent_toolkit.agents.components.tools import add, multiply
8
- from langgraph_agent_toolkit.agents.components.utils import AgentStateWithRemainingSteps, pre_model_hook_standard
8
+ from langgraph_agent_toolkit.agents.components.utils import (
9
+ AgentStateWithStructuredResponseAndRemainingSteps,
10
+ pre_model_hook_standard,
11
+ )
9
12
  from langgraph_agent_toolkit.core import settings
10
13
  from langgraph_agent_toolkit.core.models.factory import ModelFactory
11
14
  from langgraph_agent_toolkit.schema.models import ModelProvider
@@ -37,8 +40,8 @@ react_agent_so = Agent(
37
40
  "You can also ask clarifying questions to the user. "
38
41
  ),
39
42
  pre_model_hook=pre_model_hook_standard,
40
- response_format=ResponseSchema,
41
- state_schema=AgentStateWithRemainingSteps,
43
+ # response_format=ResponseSchema,
44
+ state_schema=AgentStateWithStructuredResponseAndRemainingSteps,
42
45
  checkpointer=MemorySaver(),
43
46
  immediate_step_threshold=5,
44
47
  ),
@@ -10,6 +10,7 @@ from typing import (
10
10
  get_type_hints,
11
11
  )
12
12
 
13
+ from langchain.chat_models.base import _ConfigurableModel
13
14
  from langchain_core.language_models import (
14
15
  BaseChatModel,
15
16
  LanguageModelInput,
@@ -24,16 +25,17 @@ from langchain_core.messages import (
24
25
  )
25
26
  from langchain_core.runnables import (
26
27
  Runnable,
28
+ RunnableBinding,
27
29
  RunnableConfig,
30
+ RunnableSequence,
28
31
  )
29
32
  from langchain_core.tools import BaseTool
30
- from langgraph.graph import END, StateGraph
33
+ from langgraph.graph import END, START, StateGraph
31
34
  from langgraph.graph.graph import CompiledGraph
32
35
  from langgraph.prebuilt.chat_agent_executor import (
33
36
  AgentState,
34
37
  AgentStateWithStructuredResponse,
35
38
  StructuredResponseSchema,
36
- _get_model,
37
39
  _get_prompt_runnable,
38
40
  _get_state_value,
39
41
  _should_bind_tools,
@@ -45,6 +47,30 @@ from langgraph.types import Checkpointer, Send
45
47
  from langgraph.utils.runnable import RunnableCallable, RunnableLike
46
48
  from pydantic import BaseModel
47
49
 
50
+ from langgraph_agent_toolkit.agents.components.utils import default_pre_model_hook
51
+
52
+
53
+ def _get_model(model: LanguageModelLike, config: RunnableConfig) -> BaseChatModel:
54
+ """Get the underlying model from a RunnableBinding or return the model itself."""
55
+ if isinstance(model, _ConfigurableModel):
56
+ return model._model(config)
57
+
58
+ if isinstance(model, RunnableSequence):
59
+ model = next(
60
+ (step for step in model.steps if isinstance(step, (RunnableBinding, BaseChatModel))),
61
+ model,
62
+ )
63
+
64
+ if isinstance(model, RunnableBinding):
65
+ model = model.bound
66
+
67
+ if not isinstance(model, BaseChatModel):
68
+ raise TypeError(
69
+ f"Expected `model` to be a ChatModel or RunnableBinding (e.g. model.bind_tools(...)), got {type(model)}"
70
+ )
71
+
72
+ return model
73
+
48
74
 
49
75
  def create_react_agent(
50
76
  model: Union[str, LanguageModelLike],
@@ -64,8 +90,8 @@ def create_react_agent(
64
90
  debug: bool = False,
65
91
  version: Literal["v1", "v2"] = "v1",
66
92
  name: Optional[str] = None,
67
- immediate_step_threshold: int = 5, # New parameter for customizing when to use immediate generation
68
- immediate_generation_prompt: Optional[str] = None, # New parameter for customizing the immediate generation prompt
93
+ immediate_step_threshold: int = 5,
94
+ immediate_generation_prompt: Optional[str] = None,
69
95
  ) -> CompiledGraph:
70
96
  """Create a graph that works with a chat model that utilizes tool calling with an additional router.
71
97
 
@@ -230,7 +256,7 @@ def create_react_agent(
230
256
  prompt_with_instruction = [immediate_prompt] + list(messages)
231
257
 
232
258
  # Use the model directly without tool calling capabilities
233
- base_model = _get_model(model)
259
+ base_model = _get_model(model, config)
234
260
  response = cast(AIMessage, base_model.invoke(prompt_with_instruction, config))
235
261
  response.name = name
236
262
 
@@ -248,7 +274,7 @@ def create_react_agent(
248
274
  messages = _get_state_value(state, "messages")
249
275
  prompt_with_instruction = [immediate_prompt] + list(messages)
250
276
 
251
- base_model = _get_model(model)
277
+ base_model = _get_model(model, config)
252
278
  # Fix: Use ainvoke instead of invoke for async function
253
279
  response = cast(AIMessage, await base_model.ainvoke(prompt_with_instruction, config))
254
280
  response.name = name
@@ -292,7 +318,7 @@ def create_react_agent(
292
318
  system_prompt, structured_response_schema = response_format
293
319
  messages = [SystemMessage(content=system_prompt)] + list(messages)
294
320
 
295
- model_with_structured_output = _get_model(model).with_structured_output(
321
+ model_with_structured_output = _get_model(model, config).with_structured_output(
296
322
  cast(StructuredResponseSchema, structured_response_schema)
297
323
  )
298
324
  response = model_with_structured_output.invoke(messages, config)
@@ -305,12 +331,16 @@ def create_react_agent(
305
331
  system_prompt, structured_response_schema = response_format
306
332
  messages = [SystemMessage(content=system_prompt)] + list(messages)
307
333
 
308
- model_with_structured_output = _get_model(model).with_structured_output(
334
+ model_with_structured_output = _get_model(model, config).with_structured_output(
309
335
  cast(StructuredResponseSchema, structured_response_schema)
310
336
  )
311
337
  response = await model_with_structured_output.ainvoke(messages, config)
312
338
  return {"structured_response": response}
313
339
 
340
+ # Use default_pre_model_hook if pre_model_hook is None
341
+ if pre_model_hook is None:
342
+ pre_model_hook = default_pre_model_hook
343
+
314
344
  if not tool_calling_enabled:
315
345
  # Define a new graph
316
346
  workflow = StateGraph(state_schema, config_schema=config_schema)
@@ -328,16 +358,14 @@ def create_react_agent(
328
358
  input=input_schema,
329
359
  )
330
360
 
331
- # Set up routing structure
332
- if pre_model_hook is not None:
333
- workflow.add_node("pre_model_hook", pre_model_hook)
334
- # Route pre_model_hook directly to either agent or immediate_generation based on condition
335
- workflow.add_conditional_edges("pre_model_hook", router_condition, ["agent", "immediate_generation"])
336
- entrypoint = "pre_model_hook"
337
- else:
338
- # If no pre_model_hook, use START as the conditional router
339
- workflow.add_conditional_edges("START", router_condition, ["agent", "immediate_generation"])
340
- entrypoint = "START"
361
+ # Always add pre_model_hook
362
+ workflow.add_node("pre_model_hook", pre_model_hook)
363
+
364
+ # Route pre_model_hook directly to either agent or immediate_generation based on condition
365
+ workflow.add_conditional_edges("pre_model_hook", router_condition, ["agent", "immediate_generation"])
366
+
367
+ # Always set START as entry point
368
+ workflow.add_edge(START, "pre_model_hook")
341
369
 
342
370
  # Connect both agent and immediate_generation to END or structured response
343
371
  if response_format is not None:
@@ -352,8 +380,6 @@ def create_react_agent(
352
380
  workflow.add_edge("agent", END)
353
381
  workflow.add_edge("immediate_generation", END)
354
382
 
355
- workflow.set_entry_point(entrypoint)
356
-
357
383
  return workflow.compile(
358
384
  checkpointer=checkpointer,
359
385
  store=store,
@@ -379,10 +405,7 @@ def create_react_agent(
379
405
  if version == "v1":
380
406
  return "tools"
381
407
  elif version == "v2":
382
- tool_calls = [
383
- tool_node.inject_tool_args(call, state, store) # type: ignore[arg-type]
384
- for call in last_message.tool_calls
385
- ]
408
+ tool_calls = [tool_node.inject_tool_args(call, state, store) for call in last_message.tool_calls]
386
409
  return [Send("tools", [tool_call]) for tool_call in tool_calls]
387
410
 
388
411
  # Define a new graph
@@ -395,19 +418,14 @@ def create_react_agent(
395
418
  )
396
419
  workflow.add_node("tools", tool_node)
397
420
 
398
- # Set up the routing structure
399
- if pre_model_hook is not None:
400
- workflow.add_node("pre_model_hook", pre_model_hook)
401
- # Route pre_model_hook directly to either agent or immediate_generation based on condition
402
- workflow.add_conditional_edges("pre_model_hook", router_condition, ["agent", "immediate_generation"])
403
- entrypoint = "pre_model_hook"
404
- else:
405
- # If no pre_model_hook, use START as the conditional router
406
- workflow.add_conditional_edges("START", router_condition, ["agent", "immediate_generation"])
407
- entrypoint = "START"
421
+ # Always add pre_model_hook node
422
+ workflow.add_node("pre_model_hook", pre_model_hook)
423
+
424
+ # Route pre_model_hook to either agent or immediate_generation based on condition
425
+ workflow.add_conditional_edges("pre_model_hook", router_condition, ["agent", "immediate_generation"])
408
426
 
409
- # Set the entrypoint
410
- workflow.set_entry_point(entrypoint)
427
+ # Set START as the entry point and route to pre_model_hook
428
+ workflow.add_edge(START, "pre_model_hook")
411
429
 
412
430
  # Add structured output node if response_format is provided
413
431
  if response_format is not None:
@@ -436,21 +454,14 @@ def create_react_agent(
436
454
  if m.name in should_return_direct:
437
455
  return END
438
456
 
439
- # After tools, go back to the conditional routing - either pre_model_hook or router_condition
440
- return "pre_model_hook" if pre_model_hook is not None else "START"
457
+ # After tools, always go to pre_model_hook
458
+ return "pre_model_hook"
441
459
 
442
460
  if should_return_direct:
443
- destinations = []
444
- if pre_model_hook is not None:
445
- destinations.append("pre_model_hook")
446
- else:
447
- destinations.append("START")
448
-
449
- destinations.append(END)
450
- workflow.add_conditional_edges("tools", route_tool_responses, destinations)
461
+ workflow.add_conditional_edges("tools", route_tool_responses, ["pre_model_hook", END])
451
462
  else:
452
- # After tools, go back to the conditional routing
453
- workflow.add_edge("tools", "pre_model_hook" if pre_model_hook is not None else "START")
463
+ # After tools, always go to pre_model_hook
464
+ workflow.add_edge("tools", "pre_model_hook")
454
465
 
455
466
  # Finally, we compile it!
456
467
  return workflow.compile(
@@ -3,7 +3,7 @@ from typing import TypeVar
3
3
  from langchain_core.messages.utils import trim_messages
4
4
  from langchain_core.runnables import RunnableConfig
5
5
  from langgraph.managed.is_last_step import RemainingSteps
6
- from langgraph.prebuilt.chat_agent_executor import AgentState
6
+ from langgraph.prebuilt.chat_agent_executor import AgentState, AgentStateWithStructuredResponse
7
7
 
8
8
  from langgraph_agent_toolkit.helper.constants import DEFAULT_MAX_MESSAGE_HISTORY_LENGTH
9
9
 
@@ -15,6 +15,10 @@ class AgentStateWithRemainingSteps(AgentState):
15
15
  remaining_steps: RemainingSteps
16
16
 
17
17
 
18
+ class AgentStateWithStructuredResponseAndRemainingSteps(AgentStateWithStructuredResponse):
19
+ remaining_steps: RemainingSteps
20
+
21
+
18
22
  def pre_model_hook_standard(state: T, config: RunnableConfig):
19
23
  # https://langchain-ai.github.io/langgraph/how-tos/create-react-agent-manage-message-history/
20
24
  # if last message is a human message, trim the messages to only include human messages
@@ -40,3 +44,7 @@ def pre_model_hook_standard(state: T, config: RunnableConfig):
40
44
  )
41
45
 
42
46
  return {"llm_input_messages": updated_messages}
47
+
48
+
49
+ def default_pre_model_hook(state: T, config: RunnableConfig) -> T:
50
+ return state
@@ -13,6 +13,7 @@ from typing import (
13
13
 
14
14
  from langchain.chat_models.base import _ConfigurableModel, _init_chat_model_helper
15
15
  from langchain_core.language_models import BaseChatModel
16
+ from langchain_core.runnables import Runnable, RunnableConfig
16
17
  from typing_extensions import TypeAlias
17
18
 
18
19
  from langgraph_agent_toolkit.core.models import ChatOpenAIPatched, FakeToolModel
@@ -27,11 +28,20 @@ from langgraph_agent_toolkit.schema.models import ModelProvider
27
28
  ModelT: TypeAlias = FakeToolModel | _ConfigurableModel | BaseChatModel
28
29
 
29
30
 
31
+ class _ConfigurableModelCustom(_ConfigurableModel):
32
+ def _model(self, config: Optional[RunnableConfig] = None) -> Runnable:
33
+ params = {**self._default_config, **self._model_params(config)}
34
+ model = ModelFactory._init_chat_model_helper(**params)
35
+ for name, args, kwargs in self._queued_declarative_operations:
36
+ model = getattr(model, name)(*args, **kwargs)
37
+ return model
38
+
39
+
30
40
  class ModelFactory:
31
41
  """Factory for creating model instances."""
32
42
 
33
43
  @staticmethod
34
- def __init_chat_model_helper(model: str, *, model_provider: Optional[str] = None, **kwargs: Any) -> BaseChatModel:
44
+ def _init_chat_model_helper(model: str, *, model_provider: Optional[str] = None, **kwargs: Any) -> BaseChatModel:
35
45
  if model_provider == "openai":
36
46
  return ChatOpenAIPatched(model_name=model, **kwargs)
37
47
  else:
@@ -58,13 +68,13 @@ class ModelFactory:
58
68
  )
59
69
 
60
70
  if not configurable_fields:
61
- return ModelFactory.__init_chat_model_helper(cast(str, model), model_provider=model_provider, **kwargs)
71
+ return ModelFactory._init_chat_model_helper(cast(str, model), model_provider=model_provider, **kwargs)
62
72
  else:
63
73
  if model:
64
74
  kwargs["model"] = model
65
75
  if model_provider:
66
76
  kwargs["model_provider"] = model_provider
67
- return _ConfigurableModel(
77
+ return _ConfigurableModelCustom(
68
78
  default_config=kwargs,
69
79
  config_prefix=config_prefix,
70
80
  configurable_fields=configurable_fields,
@@ -97,7 +107,7 @@ class ModelFactory:
97
107
  ValueError: If the requested model is not supported
98
108
 
99
109
  """ # noqa: E501
100
- _configurable_fields = configurable_fields or DEFAULT_CONFIGURABLE_FIELDS
110
+ _configurable_fields = DEFAULT_CONFIGURABLE_FIELDS if configurable_fields is None else configurable_fields
101
111
  _config_prefix = config_prefix or DEFAULT_CONFIG_PREFIX
102
112
  _model_parameter_values = model_parameter_values or DEFAULT_MODEL_PARAMETER_VALUES
103
113
 
@@ -76,6 +76,7 @@ class Settings(BaseSettings):
76
76
  AGENT_PATHS: list[str] = [
77
77
  "langgraph_agent_toolkit.agents.blueprints.react.agent:react_agent",
78
78
  "langgraph_agent_toolkit.agents.blueprints.chatbot.agent:chatbot_agent",
79
+ "langgraph_agent_toolkit.agents.blueprints.react_so.agent:react_agent_so",
79
80
  ]
80
81
 
81
82
  LANGCHAIN_TRACING_V2: bool = False
@@ -2,12 +2,19 @@ import asyncio
2
2
  import random
3
3
  from uuid import UUID
4
4
 
5
+ import rootutils
5
6
  from dotenv import find_dotenv, load_dotenv
6
7
  from langchain_core.runnables import RunnableConfig
7
8
  from langfuse.callback import CallbackHandler
8
9
 
9
10
 
10
- load_dotenv(find_dotenv(), override=True)
11
+ _ = rootutils.setup_root(
12
+ search_from=__file__,
13
+ indicator=".project-root",
14
+ pythonpath=True,
15
+ dotenv=False,
16
+ )
17
+ load_dotenv(find_dotenv(".local.env"), override=True)
11
18
 
12
19
  from langgraph_agent_toolkit.agents.agent_executor import AgentExecutor
13
20
  from langgraph_agent_toolkit.core.settings import settings
@@ -47,7 +54,7 @@ async def main() -> None:
47
54
  ),
48
55
  )
49
56
  logger.info(result.keys())
50
- logger.info(result)
57
+ # logger.info(result)
51
58
 
52
59
  try:
53
60
  result["messages"][-1].pretty_print()
@@ -24,6 +24,7 @@ def run_service(
24
24
  custom_settings=dict(
25
25
  AGENT_PATHS=[
26
26
  "langgraph_agent_toolkit.agents.blueprints.react.agent:react_agent",
27
+ "langgraph_agent_toolkit.agents.blueprints.react_so.agent:react_agent_so",
27
28
  "langgraph_agent_toolkit.agents.blueprints.supervisor_agent.agent:supervisor_agent",
28
29
  "langgraph_agent_toolkit.agents.blueprints.chatbot.agent:chatbot_agent",
29
30
  ]
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "langgraph-agent-toolkit"
7
- version = "0.4.3"
7
+ version = "0.4.4"
8
8
  description = "Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Roman Kryvokhyzha", email = "kriwohizha@gmail.com" }, { name = "Joshua Carroll", email = "carroll.joshk@gmail.com" }]
@@ -34,13 +34,13 @@ dependencies = [
34
34
  "grpcio >= 1.68.0",
35
35
  "httpx ~= 0.28.1",
36
36
  "jiter ~= 0.9.0",
37
- "langchain-core ~= 0.3.52",
38
- "langchain-community ~= 0.3.21",
39
- "langgraph ~= 0.4.1",
40
- "langgraph-cli[inmem] ~= 0.2.3",
41
- "langgraph-checkpoint-sqlite ~= 2.0.6",
42
- "langgraph-checkpoint-postgres ~= 2.0.19",
43
- "langgraph-supervisor ~= 0.0.16",
37
+ "langchain-core ~= 0.3.59",
38
+ "langchain-community ~= 0.3.23",
39
+ "langgraph ~= 0.4.3",
40
+ "langgraph-cli[inmem] ~= 0.2.8",
41
+ "langgraph-checkpoint-sqlite ~= 2.0.7",
42
+ "langgraph-checkpoint-postgres ~= 2.0.21",
43
+ "langgraph-supervisor ~= 0.0.21",
44
44
  "numpy ~= 1.26.4; python_version <= '3.12'",
45
45
  "numpy ~= 2.2.3; python_version >= '3.13'",
46
46
  "pandas ~= 2.2.3",
@@ -141,7 +141,7 @@ deepseek = [
141
141
  ]
142
142
 
143
143
  openai = [
144
- "langchain-openai ~= 0.3.12",
144
+ "langchain-openai ~= 0.3.16",
145
145
  ]
146
146
 
147
147
  all-llms = [
@@ -152,7 +152,7 @@ all-llms = [
152
152
  "langchain-ollama ~= 0.3.2",
153
153
  "langchain-groq ~= 0.3.2",
154
154
  "langchain-deepseek ~= 0.1.3",
155
- "langchain-openai ~= 0.3.12",
155
+ "langchain-openai ~= 0.3.16",
156
156
  ]
157
157
 
158
158
  # Observability tools and platforms