atomic-agents 2.2.2__tar.gz → 2.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.
Files changed (276) hide show
  1. atomic_agents-2.3.0/.assets/architecture_highlevel_overview.png +0 -0
  2. atomic_agents-2.3.0/.assets/atomic-cli-tool-menu.png +0 -0
  3. atomic_agents-2.3.0/.assets/atomic-cli.png +0 -0
  4. atomic_agents-2.3.0/.assets/docs.png +0 -0
  5. atomic_agents-2.3.0/.assets/logo.png +0 -0
  6. atomic_agents-2.3.0/.assets/video-thumbnail-1.png +0 -0
  7. atomic_agents-2.3.0/.assets/video-thumbnail-2.png +0 -0
  8. atomic_agents-2.3.0/.assets/video-thumbnail.png +0 -0
  9. atomic_agents-2.3.0/.assets/what_is_sent_in_prompt.png +0 -0
  10. atomic_agents-2.3.0/.coveragerc +14 -0
  11. atomic_agents-2.3.0/.flake8 +12 -0
  12. atomic_agents-2.3.0/.github/funding.yml +1 -0
  13. atomic_agents-2.3.0/.github/workflows/code-quality.yml +59 -0
  14. atomic_agents-2.3.0/.github/workflows/docs.yml +84 -0
  15. atomic_agents-2.3.0/.gitignore +158 -0
  16. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/PKG-INFO +28 -33
  17. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/README.md +13 -13
  18. atomic_agents-2.3.0/UPGRADE_DOC.md +755 -0
  19. atomic_agents-2.3.0/agents.md +357 -0
  20. atomic_agents-2.3.0/atomic-agents/LICENSE +21 -0
  21. atomic_agents-2.3.0/atomic-agents/MANIFEST.in +3 -0
  22. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/agents/atomic_agent.py +634 -628
  23. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/base/base_io_schema.py +4 -1
  24. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/.gitignore +2 -0
  25. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/class_index.html +347 -0
  26. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/coverage_html_cb_497bf287.js +733 -0
  27. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/favicon_32_cb_58284776.png +0 -0
  28. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/function_index.html +859 -0
  29. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/index.html +153 -0
  30. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/keybd_closed_cb_ce680311.png +0 -0
  31. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/status.json +1 -0
  32. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/style_cb_db813965.css +337 -0
  33. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85___init___py.html +207 -0
  34. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85_mcp_prompt_factory_py.html +658 -0
  35. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85_mcp_resource_factory_py.html +614 -0
  36. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85_mcp_tool_factory_py.html +671 -0
  37. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85_schema_transformer_py.html +294 -0
  38. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85_test_mcp_end_to_end_py.html +785 -0
  39. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp/z_c8ea619f7b9d9d85_tool_definition_service_py.html +248 -0
  40. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/.gitignore +2 -0
  41. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/class_index.html +395 -0
  42. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/coverage_html_cb_497bf287.js +733 -0
  43. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/favicon_32_cb_58284776.png +0 -0
  44. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/function_index.html +971 -0
  45. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/index.html +167 -0
  46. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/keybd_closed_cb_ce680311.png +0 -0
  47. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/status.json +1 -0
  48. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/style_cb_db813965.css +337 -0
  49. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85___init___py.html +207 -0
  50. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85_mcp_prompt_factory_py.html +658 -0
  51. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85_mcp_resource_factory_py.html +614 -0
  52. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85_mcp_tool_factory_py.html +671 -0
  53. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85_schema_transformer_py.html +294 -0
  54. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85_test_mcp_end_to_end_py.html +785 -0
  55. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_c8ea619f7b9d9d85_tool_definition_service_py.html +248 -0
  56. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_d15aa39ea8aa704c_base_prompt_py.html +211 -0
  57. atomic_agents-2.3.0/atomic-agents/htmlcov_mcp_final/z_d15aa39ea8aa704c_base_resource_py.html +211 -0
  58. atomic_agents-2.3.0/atomic-agents/tests/agents/test_atomic_agent.py +715 -0
  59. atomic_agents-2.3.0/atomic-agents/tests/base/test_base_tool.py +123 -0
  60. atomic_agents-2.3.0/atomic-agents/tests/connectors/mcp/test_mcp_definition_service.py +564 -0
  61. atomic_agents-2.3.0/atomic-agents/tests/connectors/mcp/test_mcp_factory.py +2327 -0
  62. atomic_agents-2.3.0/atomic-agents/tests/connectors/mcp/test_schema_transformer.py +209 -0
  63. atomic_agents-2.3.0/atomic-agents/tests/context/test_chat_history.py +540 -0
  64. atomic_agents-2.3.0/atomic-agents/tests/context/test_system_prompt_generator.py +130 -0
  65. atomic_agents-2.3.0/atomic-agents/tests/files/audio_sample.mp3 +0 -0
  66. atomic_agents-2.3.0/atomic-agents/tests/files/image_sample.jpg +0 -0
  67. atomic_agents-2.3.0/atomic-agents/tests/files/pdf_sample.pdf +0 -0
  68. atomic_agents-2.3.0/atomic-agents/tests/utils/test_format_tool_message.py +94 -0
  69. atomic_agents-2.3.0/atomic-assembler/README.md +0 -0
  70. atomic_agents-2.3.0/atomic-assembler/atomic_assembler/__init__.py +1 -0
  71. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/utils.py +1 -1
  72. atomic_agents-2.3.0/atomic-examples/basic-multimodal/README.md +102 -0
  73. atomic_agents-2.3.0/atomic-examples/basic-multimodal/basic_multimodal/main.py +141 -0
  74. atomic_agents-2.3.0/atomic-examples/basic-multimodal/pyproject.toml +27 -0
  75. atomic_agents-2.3.0/atomic-examples/basic-multimodal/test_images/nutrition_label_1.png +0 -0
  76. atomic_agents-2.3.0/atomic-examples/basic-multimodal/test_images/nutrition_label_2.jpg +0 -0
  77. atomic_agents-2.3.0/atomic-examples/basic-pdf-analysis/README.md +90 -0
  78. atomic_agents-2.3.0/atomic-examples/basic-pdf-analysis/basic_pdf_analysis/main.py +82 -0
  79. atomic_agents-2.3.0/atomic-examples/basic-pdf-analysis/pyproject.toml +25 -0
  80. atomic_agents-2.3.0/atomic-examples/basic-pdf-analysis/test_media/pdf_sample.pdf +0 -0
  81. atomic_agents-2.3.0/atomic-examples/deep-research/README.md +76 -0
  82. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/agents/choice_agent.py +58 -0
  83. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/agents/qa_agent.py +63 -0
  84. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/agents/query_agent.py +42 -0
  85. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/config.py +39 -0
  86. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/context_providers.py +33 -0
  87. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/main.py +211 -0
  88. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/tools/searxng_search.py +212 -0
  89. atomic_agents-2.3.0/atomic-examples/deep-research/deep_research/tools/webpage_scraper.py +292 -0
  90. atomic_agents-2.3.0/atomic-examples/deep-research/mermaid.md +68 -0
  91. atomic_agents-2.3.0/atomic-examples/deep-research/pyproject.toml +31 -0
  92. atomic_agents-2.3.0/atomic-examples/fastapi-memory/README.md +231 -0
  93. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/__init__.py +3 -0
  94. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/client.py +536 -0
  95. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/lib/__init__.py +1 -0
  96. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/lib/agents/__init__.py +5 -0
  97. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/lib/agents/chat_agent.py +70 -0
  98. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/lib/config.py +27 -0
  99. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/lib/schemas.py +76 -0
  100. atomic_agents-2.3.0/atomic-examples/fastapi-memory/fastapi_memory/main.py +388 -0
  101. atomic_agents-2.3.0/atomic-examples/fastapi-memory/pyproject.toml +29 -0
  102. atomic_agents-2.3.0/atomic-examples/fastapi-memory/test_api.py +99 -0
  103. atomic_agents-2.3.0/atomic-examples/hooks-example/README.md +98 -0
  104. atomic_agents-2.3.0/atomic-examples/hooks-example/hooks_example/main.py +332 -0
  105. atomic_agents-2.3.0/atomic-examples/hooks-example/pyproject.toml +25 -0
  106. atomic_agents-2.3.0/atomic-examples/mcp-agent/README.md +209 -0
  107. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/example_client/main.py +84 -0
  108. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/example_client/main_fastapi.py +508 -0
  109. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/example_client/main_http.py +285 -0
  110. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/example_client/main_sse.py +515 -0
  111. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/example_client/main_stdio.py +320 -0
  112. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/example_client/main_stdio_async.py +312 -0
  113. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-client/pyproject.toml +28 -0
  114. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/README.md +168 -0
  115. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/demo_tools.py +306 -0
  116. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/__init__.py +3 -0
  117. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/__init__.py +20 -0
  118. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/prompt.py +101 -0
  119. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/resource.py +117 -0
  120. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/interfaces/tool.py +103 -0
  121. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/prompts/sample_prompts.py +66 -0
  122. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/resources/__init__.py +3 -0
  123. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/resources/sample_resources.py +69 -0
  124. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server.py +52 -0
  125. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server_http.py +117 -0
  126. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server_sse.py +138 -0
  127. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/server_stdio.py +74 -0
  128. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/__init__.py +1 -0
  129. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/prompt_service.py +117 -0
  130. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/resource_service.py +133 -0
  131. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/services/tool_service.py +107 -0
  132. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/__init__.py +16 -0
  133. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/add_numbers.py +58 -0
  134. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/batch_operations.py +76 -0
  135. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/divide_numbers.py +72 -0
  136. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/multiply_numbers.py +58 -0
  137. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/example_mcp_server/tools/subtract_numbers.py +58 -0
  138. atomic_agents-2.3.0/atomic-examples/mcp-agent/example-mcp-server/pyproject.toml +22 -0
  139. atomic_agents-2.3.0/atomic-examples/orchestration-agent/README.md +58 -0
  140. atomic_agents-2.3.0/atomic-examples/orchestration-agent/orchestration_agent/orchestrator.py +181 -0
  141. atomic_agents-2.3.0/atomic-examples/orchestration-agent/orchestration_agent/tools/calculator.py +91 -0
  142. atomic_agents-2.3.0/atomic-examples/orchestration-agent/orchestration_agent/tools/searxng_search.py +215 -0
  143. atomic_agents-2.3.0/atomic-examples/orchestration-agent/pyproject.toml +27 -0
  144. atomic_agents-2.3.0/atomic-examples/quickstart/README.md +101 -0
  145. atomic_agents-2.3.0/atomic-examples/quickstart/pyproject.toml +28 -0
  146. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/1_0_basic_chatbot.py +67 -0
  147. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/1_1_basic_chatbot_streaming.py +99 -0
  148. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/1_2_basic_chatbot_async_streaming.py +85 -0
  149. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/2_basic_custom_chatbot.py +79 -0
  150. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/3_0_basic_custom_chatbot_with_custom_schema.py +116 -0
  151. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/3_1_basic_custom_chatbot_with_custom_schema_streaming.py +145 -0
  152. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/4_basic_chatbot_different_providers.py +134 -0
  153. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/5_custom_system_role_for_reasoning_models.py +54 -0
  154. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/6_0_asynchronous_processing.py +84 -0
  155. atomic_agents-2.3.0/atomic-examples/quickstart/quickstart/6_1_asynchronous_processing_streaming.py +178 -0
  156. atomic_agents-2.3.0/atomic-examples/rag-chatbot/.gitignore +2 -0
  157. atomic_agents-2.3.0/atomic-examples/rag-chatbot/README.md +143 -0
  158. atomic_agents-2.3.0/atomic-examples/rag-chatbot/pyproject.toml +30 -0
  159. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/agents/qa_agent.py +49 -0
  160. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/agents/query_agent.py +47 -0
  161. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/config.py +62 -0
  162. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/context_providers.py +23 -0
  163. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/main.py +273 -0
  164. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/services/__init__.py +0 -0
  165. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/services/base.py +69 -0
  166. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/services/chroma_db.py +132 -0
  167. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/services/factory.py +34 -0
  168. atomic_agents-2.3.0/atomic-examples/rag-chatbot/rag_chatbot/services/qdrant_db.py +153 -0
  169. atomic_agents-2.3.0/atomic-examples/web-search-agent/README.md +118 -0
  170. atomic_agents-2.3.0/atomic-examples/web-search-agent/pyproject.toml +26 -0
  171. atomic_agents-2.3.0/atomic-examples/web-search-agent/web_search_agent/agents/query_agent.py +44 -0
  172. atomic_agents-2.3.0/atomic-examples/web-search-agent/web_search_agent/agents/question_answering_agent.py +51 -0
  173. atomic_agents-2.3.0/atomic-examples/web-search-agent/web_search_agent/main.py +111 -0
  174. atomic_agents-2.3.0/atomic-examples/web-search-agent/web_search_agent/tools/searxng_search.py +215 -0
  175. atomic_agents-2.3.0/atomic-examples/youtube-summarizer/README.md +71 -0
  176. atomic_agents-2.3.0/atomic-examples/youtube-summarizer/pyproject.toml +28 -0
  177. atomic_agents-2.3.0/atomic-examples/youtube-summarizer/youtube_summarizer/agent.py +94 -0
  178. atomic_agents-2.3.0/atomic-examples/youtube-summarizer/youtube_summarizer/main.py +47 -0
  179. atomic_agents-2.3.0/atomic-examples/youtube-summarizer/youtube_summarizer/tools/youtube_transcript_scraper.py +184 -0
  180. atomic_agents-2.3.0/atomic-examples/youtube-to-recipe/README.md +88 -0
  181. atomic_agents-2.3.0/atomic-examples/youtube-to-recipe/pyproject.toml +28 -0
  182. atomic_agents-2.3.0/atomic-examples/youtube-to-recipe/youtube_to_recipe/agent.py +91 -0
  183. atomic_agents-2.3.0/atomic-examples/youtube-to-recipe/youtube_to_recipe/main.py +43 -0
  184. atomic_agents-2.3.0/atomic-examples/youtube-to-recipe/youtube_to_recipe/tools/youtube_transcript_scraper.py +181 -0
  185. atomic_agents-2.3.0/atomic-forge/README.md +23 -0
  186. atomic_agents-2.3.0/atomic-forge/guides/tool_structure.md +494 -0
  187. atomic_agents-2.3.0/atomic-forge/tools/calculator/.coveragerc +8 -0
  188. atomic_agents-2.3.0/atomic-forge/tools/calculator/README.md +59 -0
  189. atomic_agents-2.3.0/atomic-forge/tools/calculator/pyproject.toml +31 -0
  190. atomic_agents-2.3.0/atomic-forge/tools/calculator/requirements.txt +3 -0
  191. atomic_agents-2.3.0/atomic-forge/tools/calculator/tests/test_calculator.py +21 -0
  192. atomic_agents-2.3.0/atomic-forge/tools/calculator/tool/calculator.py +100 -0
  193. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/.coveragerc +8 -0
  194. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/README.md +87 -0
  195. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/pyproject.toml +34 -0
  196. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/pytest.ini +2 -0
  197. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/requirements.txt +3 -0
  198. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/tests/test_searxng_search.py +270 -0
  199. atomic_agents-2.3.0/atomic-forge/tools/searxng_search/tool/searxng_search.py +215 -0
  200. atomic_agents-2.3.0/atomic-forge/tools/tavily_search/.coveragerc +8 -0
  201. atomic_agents-2.3.0/atomic-forge/tools/tavily_search/README.md +87 -0
  202. atomic_agents-2.3.0/atomic-forge/tools/tavily_search/pyproject.toml +34 -0
  203. atomic_agents-2.3.0/atomic-forge/tools/tavily_search/requirements.txt +4 -0
  204. atomic_agents-2.3.0/atomic-forge/tools/tavily_search/tests/test_tavily_seach.py +242 -0
  205. atomic_agents-2.3.0/atomic-forge/tools/tavily_search/tool/tavily_search.py +200 -0
  206. atomic_agents-2.3.0/atomic-forge/tools/webpage_scraper/README.md +89 -0
  207. atomic_agents-2.3.0/atomic-forge/tools/webpage_scraper/pyproject.toml +36 -0
  208. atomic_agents-2.3.0/atomic-forge/tools/webpage_scraper/requirements.txt +8 -0
  209. atomic_agents-2.3.0/atomic-forge/tools/webpage_scraper/tests/conftest.py +5 -0
  210. atomic_agents-2.3.0/atomic-forge/tools/webpage_scraper/tests/test_webpage_scraper.py +345 -0
  211. atomic_agents-2.3.0/atomic-forge/tools/webpage_scraper/tool/webpage_scraper.py +293 -0
  212. atomic_agents-2.3.0/atomic-forge/tools/youtube_transcript_scraper/.coveragerc +8 -0
  213. atomic_agents-2.3.0/atomic-forge/tools/youtube_transcript_scraper/README.md +102 -0
  214. atomic_agents-2.3.0/atomic-forge/tools/youtube_transcript_scraper/pyproject.toml +34 -0
  215. atomic_agents-2.3.0/atomic-forge/tools/youtube_transcript_scraper/requirements.txt +4 -0
  216. atomic_agents-2.3.0/atomic-forge/tools/youtube_transcript_scraper/tests/test_youtube_transcript_scraper.py +155 -0
  217. atomic_agents-2.3.0/atomic-forge/tools/youtube_transcript_scraper/tool/youtube_transcript_scraper.py +179 -0
  218. atomic_agents-2.3.0/build_and_deploy.ps1 +216 -0
  219. atomic_agents-2.3.0/docs/.nojekyll +0 -0
  220. atomic_agents-2.3.0/docs/Makefile +19 -0
  221. atomic_agents-2.3.0/docs/_static/logo.png +0 -0
  222. atomic_agents-2.3.0/docs/api/agents.md +256 -0
  223. atomic_agents-2.3.0/docs/api/context.md +225 -0
  224. atomic_agents-2.3.0/docs/api/index.md +66 -0
  225. atomic_agents-2.3.0/docs/api/utils.md +10 -0
  226. atomic_agents-2.3.0/docs/conf.py +47 -0
  227. atomic_agents-2.3.0/docs/contributing.md +162 -0
  228. atomic_agents-2.3.0/docs/examples/index.md +130 -0
  229. atomic_agents-2.3.0/docs/examples/mcp_agent.md +579 -0
  230. atomic_agents-2.3.0/docs/guides/index.md +113 -0
  231. atomic_agents-2.3.0/docs/guides/quickstart.md +407 -0
  232. atomic_agents-2.3.0/docs/guides/tools.md +164 -0
  233. atomic_agents-2.3.0/docs/index.md +137 -0
  234. atomic_agents-2.3.0/docs/make.bat +35 -0
  235. atomic_agents-2.3.0/greptile.json +84 -0
  236. atomic_agents-2.3.0/guides/DEV_GUIDE.md +142 -0
  237. atomic_agents-2.3.0/pyproject.toml +69 -0
  238. atomic_agents-2.3.0/pytest.ini +9 -0
  239. atomic_agents-2.3.0/requirements.txt +9 -0
  240. atomic_agents-2.3.0/scripts/generate_llms_files.py +285 -0
  241. atomic_agents-2.3.0/scripts/sync_version.py +63 -0
  242. atomic_agents-2.3.0/setup.py +17 -0
  243. atomic_agents-2.3.0/uv.lock +3999 -0
  244. atomic_agents-2.2.2/pyproject.toml +0 -70
  245. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/LICENSE +0 -0
  246. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/__init__.py +0 -0
  247. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/agents/__init__.py +0 -0
  248. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/base/__init__.py +0 -0
  249. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/base/base_prompt.py +0 -0
  250. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/base/base_resource.py +0 -0
  251. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/base/base_tool.py +0 -0
  252. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/connectors/__init__.py +0 -0
  253. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/connectors/mcp/__init__.py +0 -0
  254. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/connectors/mcp/mcp_definition_service.py +0 -0
  255. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/connectors/mcp/mcp_factory.py +0 -0
  256. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/connectors/mcp/schema_transformer.py +0 -0
  257. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/context/__init__.py +0 -0
  258. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/context/chat_history.py +0 -0
  259. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/context/system_prompt_generator.py +0 -0
  260. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/utils/__init__.py +0 -0
  261. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-agents/atomic_agents/utils/format_tool_message.py +0 -0
  262. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/app.py +0 -0
  263. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/color_utils.py +0 -0
  264. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/constants.py +0 -0
  265. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/main.py +0 -0
  266. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/screens/atomic_tool_explorer.py +0 -0
  267. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/screens/file_explorer.py +0 -0
  268. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/screens/main_menu.py +0 -0
  269. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/screens/tool_info_screen.py +0 -0
  270. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/confirmation_modal.py +0 -0
  271. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/generic_list.py +0 -0
  272. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/gradient_title.py +0 -0
  273. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/icon_selection_list.py +0 -0
  274. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/menu.py +0 -0
  275. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/new_item_input.py +0 -0
  276. {atomic_agents-2.2.2 → atomic_agents-2.3.0}/atomic-assembler/atomic_assembler/widgets/tool_info_display.py +0 -0
Binary file
Binary file
@@ -0,0 +1,14 @@
1
+ [report]
2
+ show_missing=true
3
+ exclude_lines =
4
+ @abstractmethod
5
+ @abc.abstractmethod
6
+ if __name__ == .__main__.:
7
+ if __name__ == '__main__':
8
+ pragma: no cover
9
+ # pragma: no cover
10
+
11
+ [run]
12
+ omit =
13
+ */__init__.py
14
+ */tests/*
@@ -0,0 +1,12 @@
1
+ [flake8]
2
+ max-line-length = 150
3
+ max-complexity = 10
4
+ count = true
5
+ statistics = true
6
+ ignore = E203, W293, W503
7
+ exclude = .venv,venv,__pycache__,build,dist
8
+
9
+ per-file-ignores =
10
+ */__main__.py:C901
11
+ */*:C901
12
+
@@ -0,0 +1 @@
1
+ github: KennyVaneetvelde
@@ -0,0 +1,59 @@
1
+ name: Code Quality & Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, v2.0 ]
6
+ pull_request:
7
+ branches: [ main, v2.0 ]
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ quality:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: '3.12'
23
+
24
+ - name: Install uv
25
+ uses: astral-sh/setup-uv@v4
26
+ with:
27
+ version: "latest"
28
+
29
+ - name: Cache uv
30
+ uses: actions/cache@v4
31
+ id: cache
32
+ with:
33
+ path: ~/.cache/uv
34
+ key: uv-${{ runner.os }}-python-${{ runner.python-version }}-${{ hashFiles('**/uv.lock') }}
35
+ restore-keys: |
36
+ uv-${{ runner.os }}-python-${{ runner.python-version }}-
37
+
38
+ - name: Install Dependencies
39
+ run: |
40
+ uv sync
41
+ uv run pip list # Verify installation
42
+
43
+ - name: Verify Black Installation
44
+ run: |
45
+ uv run which black || echo "Black not found"
46
+ uv run black --version
47
+
48
+ - name: Run Black Check
49
+ run: |
50
+ uv run black --check atomic-agents atomic-assembler atomic-examples atomic-forge
51
+ if: success()
52
+
53
+ - name: Run Flake8
54
+ run: uv run flake8 --extend-exclude=.venv atomic-agents atomic-assembler atomic-examples atomic-forge
55
+ if: success()
56
+
57
+ - name: Run Tests
58
+ run: uv run pytest --cov=atomic_agents atomic-agents
59
+ if: success()
@@ -0,0 +1,84 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main # or your default branch
7
+ workflow_dispatch: # Allows manual triggering
8
+
9
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
10
+ permissions:
11
+ contents: read
12
+ pages: write
13
+ id-token: write
14
+
15
+ # Allow only one concurrent deployment
16
+ concurrency:
17
+ group: "pages"
18
+ cancel-in-progress: false
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: '3.12' # ensure consistency with project requirement
31
+
32
+ - name: Install uv
33
+ uses: astral-sh/setup-uv@v4
34
+ with:
35
+ version: "latest"
36
+
37
+ - name: Install dependencies
38
+ run: |
39
+ uv sync
40
+
41
+ - name: Sync version from pyproject.toml
42
+ run: |
43
+ uv run python scripts/sync_version.py
44
+
45
+ - name: Build singlehtml for documentation extraction
46
+ run: |
47
+ cd docs
48
+ uv run make singlehtml
49
+
50
+ - name: Generate all llms.txt files
51
+ run: |
52
+ uv run python scripts/generate_llms_files.py
53
+ # Copy to _static directory for Sphinx to process during build
54
+ mkdir -p docs/_static
55
+ cp docs/llms-*.txt docs/_static/
56
+ echo "Generated llms files:"
57
+ ls -lh docs/_static/llms-*.txt
58
+
59
+ - name: Build HTML documentation
60
+ run: |
61
+ cd docs
62
+ uv run make html
63
+
64
+ - name: Verify llms files in build
65
+ run: |
66
+ echo "Checking for llms files in build directory:"
67
+ ls -lh docs/_build/html/_static/llms-*.txt || echo "Files not in _static"
68
+ ls -lh docs/_build/html/_downloads/*/llms-*.txt || echo "Files not in _downloads"
69
+
70
+ - name: Upload artifact
71
+ uses: actions/upload-pages-artifact@v3
72
+ with:
73
+ path: docs/_build/html
74
+
75
+ deploy:
76
+ environment:
77
+ name: github-pages
78
+ url: ${{ steps.deployment.outputs.page_url }}
79
+ needs: build
80
+ runs-on: ubuntu-latest
81
+ steps:
82
+ - name: Deploy to GitHub Pages
83
+ id: deployment
84
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,158 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ parts/
18
+ sdist/
19
+ var/
20
+ wheels/
21
+ share/python-wheels/
22
+ *.egg-info/
23
+ .installed.cfg
24
+ *.egg
25
+ MANIFEST
26
+ site-packages/
27
+
28
+ # Virtual environments
29
+ .env
30
+ .env.*
31
+ .venv
32
+ .venv.*
33
+ env/
34
+ env.bak/
35
+ venv/
36
+ venv.bak/
37
+ ENV/
38
+
39
+ # PyInstaller
40
+ *.manifest
41
+ *.spec
42
+
43
+ # Installer logs
44
+ pip-log.txt
45
+ pip-delete-this-directory.txt
46
+
47
+ # Unit test / coverage reports
48
+ htmlcov/
49
+ .tox/
50
+ .nox/
51
+ .coverage
52
+ .coverage.*
53
+ .cache
54
+ nosetests.xml
55
+ coverage.xml
56
+ *.cover
57
+ *.py,cover
58
+ .hypothesis/
59
+ .pytest_cache/
60
+ cover/
61
+
62
+ # Translations
63
+ *.mo
64
+ *.pot
65
+
66
+ # Django stuff
67
+ *.log
68
+ local_settings.py
69
+ db.sqlite3
70
+ db.sqlite3-journal
71
+
72
+ # Flask stuff
73
+ instance/
74
+ .webassets-cache
75
+
76
+ # Scrapy stuff
77
+ .scrapy
78
+
79
+ # Sphinx documentation
80
+ docs/_build/
81
+ docs/llms-*.txt
82
+ docs/llms.txt
83
+ docs/_static/llms-*.txt
84
+ docs/examples/source/
85
+
86
+ # PyBuilder
87
+ target/
88
+
89
+ # Jupyter Notebook
90
+ .ipynb_checkpoints
91
+
92
+ # IPython
93
+ profile_default/
94
+ ipython_config.py
95
+
96
+ # pyenv
97
+ .python-version
98
+
99
+ # celery beat schedule file
100
+ celerybeat-schedule
101
+
102
+ # SageMath parsed files
103
+ *.sage.py
104
+
105
+ # Spyder project settings
106
+ .spyderproject
107
+ .spyproject
108
+
109
+ # Rope project settings
110
+ .ropeproject
111
+
112
+ # mkdocs documentation
113
+ /site
114
+
115
+ # mypy
116
+ .mypy_cache/
117
+ .dmypy.json
118
+ dmypy.json
119
+
120
+ # Pyre type checker
121
+ .pyre/
122
+
123
+ # pytype static type analyzer
124
+ .pytype/
125
+
126
+ # Cython debug symbols
127
+ cython_debug/
128
+
129
+ # Chroma related
130
+ chromadb_persist/
131
+ chroma_data/
132
+ chromadb_tmp/
133
+
134
+ # IDEs and editors
135
+ .vscode/
136
+ .idea/
137
+ *.swp
138
+ *.swo
139
+ *~
140
+
141
+ # Operating System Files
142
+ .DS_Store
143
+ Thumbs.db
144
+
145
+ # Project specific
146
+ personal_experiments/
147
+ personal_scripts/
148
+ *.psd
149
+ .output/
150
+
151
+ # Logs
152
+ debug.log
153
+
154
+ # AI tools
155
+ .claude
156
+ CLAUDE.md
157
+ CLAUDE.local.md
158
+ .serena
@@ -1,26 +1,22 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: atomic-agents
3
- Version: 2.2.2
3
+ Version: 2.3.0
4
4
  Summary: A versatile framework for creating and managing intelligent agents.
5
- License: MIT
6
- Author: Kenny Vaneetvelde
7
- Author-email: kenny.vaneetvelde@gmail.com
8
- Requires-Python: >=3.12,<4.0
9
- Classifier: License :: OSI Approved :: MIT License
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.12
12
- Classifier: Programming Language :: Python :: 3.13
13
- Requires-Dist: gitpython (>=3.1.43,<4.0.0)
14
- Requires-Dist: instructor (==1.9.2)
15
- Requires-Dist: mcp[cli] (>=1.6.0,<2.0.0)
16
- Requires-Dist: pydantic (>=2.11.0,<3.0.0)
17
- Requires-Dist: pyfiglet (>=1.0.2,<2.0.0)
18
- Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
19
- Requires-Dist: requests (>=2.32.3,<3.0.0)
20
- Requires-Dist: rich (>=13.7.1,<14.0.0)
21
- Requires-Dist: textual (>=5.3.0,<6.0.0)
22
5
  Project-URL: Homepage, https://github.com/BrainBlend-AI/atomic-agents
23
6
  Project-URL: Repository, https://github.com/BrainBlend-AI/atomic-agents
7
+ Author-email: Kenny Vaneetvelde <kenny.vaneetvelde@gmail.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Requires-Python: >=3.12
11
+ Requires-Dist: gitpython<4.0.0,>=3.1.43
12
+ Requires-Dist: instructor==1.13.0
13
+ Requires-Dist: mcp[cli]>=1.6.0
14
+ Requires-Dist: pydantic<3.0.0,>=2.11.0
15
+ Requires-Dist: pyfiglet<2.0.0,>=1.0.2
16
+ Requires-Dist: pyyaml<7.0.0,>=6.0.2
17
+ Requires-Dist: requests<3.0.0,>=2.32.3
18
+ Requires-Dist: rich<14.0.0,>=13.7.1
19
+ Requires-Dist: textual<6.0.0,>=5.3.0
24
20
  Description-Content-Type: text/markdown
25
21
 
26
22
  # Atomic Agents
@@ -137,7 +133,7 @@ client = instructor.from_openai(OpenAI())
137
133
  agent = AtomicAgent[BasicChatInputSchema, CustomOutputSchema](
138
134
  config=AgentConfig(
139
135
  client=client,
140
- model="gpt-4o-mini",
136
+ model="gpt-5-mini",
141
137
  system_prompt_generator=system_prompt_generator,
142
138
  history=ChatHistory(),
143
139
  )
@@ -244,7 +240,7 @@ class QueryAgentInputSchema(BaseIOSchema):
244
240
  query_agent = AtomicAgent[QueryAgentInputSchema, SearXNGSearchTool.input_schema](
245
241
  config=AgentConfig(
246
242
  client=instructor.from_openai(openai.OpenAI()),
247
- model="gpt-4o-mini",
243
+ model="gpt-5-mini",
248
244
  system_prompt_generator=SystemPromptGenerator(
249
245
  background=[
250
246
  "You are an intelligent query generation expert.",
@@ -344,13 +340,7 @@ To run the CLI, simply run the following command:
344
340
  atomic
345
341
  ```
346
342
 
347
- Or if you installed Atomic Agents with Poetry, for example:
348
-
349
- ```bash
350
- poetry run atomic
351
- ```
352
-
353
- Or if you installed Atomic Agents with uv:
343
+ Or if you're running from a cloned repository with uv:
354
344
 
355
345
  ```bash
356
346
  uv run atomic
@@ -388,7 +378,13 @@ For local development, you can install from the repository:
388
378
  ```bash
389
379
  git clone https://github.com/BrainBlend-AI/atomic-agents.git
390
380
  cd atomic-agents
391
- poetry install
381
+ uv sync
382
+ ```
383
+
384
+ To install all workspace packages (examples and tools):
385
+
386
+ ```bash
387
+ uv sync --all-packages
392
388
  ```
393
389
 
394
390
  ## Provider & Model Compatibility
@@ -402,9 +398,9 @@ We welcome contributions! Please see the [Contributing Guide](/docs/contributing
402
398
  1. Fork the repository
403
399
  2. Create a new branch (`git checkout -b feature-branch`)
404
400
  3. Make your changes
405
- 4. Run tests (`poetry run pytest --cov=atomic_agents atomic-agents`)
406
- 5. Format your code (`poetry run black atomic-agents atomic-assembler atomic-examples atomic-forge`)
407
- 6. Lint your code (`poetry run flake8 --extend-exclude=.venv atomic-agents atomic-assembler atomic-examples atomic-forge`)
401
+ 4. Run tests (`uv run pytest --cov=atomic_agents atomic-agents`)
402
+ 5. Format your code (`uv run black atomic-agents atomic-assembler atomic-examples atomic-forge`)
403
+ 6. Lint your code (`uv run flake8 --extend-exclude=.venv atomic-agents atomic-assembler atomic-examples atomic-forge`)
408
404
  7. Commit your changes (`git commit -m 'Add some feature'`)
409
405
  8. Push to the branch (`git push origin feature-branch`)
410
406
  9. Open a pull request
@@ -427,4 +423,3 @@ If you want to learn more about the motivation and philosophy behind Atomic Agen
427
423
 
428
424
  [![Star History Chart](https://api.star-history.com/svg?repos=BrainBlend-AI/atomic-agents&type=Date)](https://star-history.com/#BrainBlend-AI/atomic-agents&Date)
429
425
 
430
-
@@ -112,7 +112,7 @@ client = instructor.from_openai(OpenAI())
112
112
  agent = AtomicAgent[BasicChatInputSchema, CustomOutputSchema](
113
113
  config=AgentConfig(
114
114
  client=client,
115
- model="gpt-4o-mini",
115
+ model="gpt-5-mini",
116
116
  system_prompt_generator=system_prompt_generator,
117
117
  history=ChatHistory(),
118
118
  )
@@ -219,7 +219,7 @@ class QueryAgentInputSchema(BaseIOSchema):
219
219
  query_agent = AtomicAgent[QueryAgentInputSchema, SearXNGSearchTool.input_schema](
220
220
  config=AgentConfig(
221
221
  client=instructor.from_openai(openai.OpenAI()),
222
- model="gpt-4o-mini",
222
+ model="gpt-5-mini",
223
223
  system_prompt_generator=SystemPromptGenerator(
224
224
  background=[
225
225
  "You are an intelligent query generation expert.",
@@ -319,13 +319,7 @@ To run the CLI, simply run the following command:
319
319
  atomic
320
320
  ```
321
321
 
322
- Or if you installed Atomic Agents with Poetry, for example:
323
-
324
- ```bash
325
- poetry run atomic
326
- ```
327
-
328
- Or if you installed Atomic Agents with uv:
322
+ Or if you're running from a cloned repository with uv:
329
323
 
330
324
  ```bash
331
325
  uv run atomic
@@ -363,7 +357,13 @@ For local development, you can install from the repository:
363
357
  ```bash
364
358
  git clone https://github.com/BrainBlend-AI/atomic-agents.git
365
359
  cd atomic-agents
366
- poetry install
360
+ uv sync
361
+ ```
362
+
363
+ To install all workspace packages (examples and tools):
364
+
365
+ ```bash
366
+ uv sync --all-packages
367
367
  ```
368
368
 
369
369
  ## Provider & Model Compatibility
@@ -377,9 +377,9 @@ We welcome contributions! Please see the [Contributing Guide](/docs/contributing
377
377
  1. Fork the repository
378
378
  2. Create a new branch (`git checkout -b feature-branch`)
379
379
  3. Make your changes
380
- 4. Run tests (`poetry run pytest --cov=atomic_agents atomic-agents`)
381
- 5. Format your code (`poetry run black atomic-agents atomic-assembler atomic-examples atomic-forge`)
382
- 6. Lint your code (`poetry run flake8 --extend-exclude=.venv atomic-agents atomic-assembler atomic-examples atomic-forge`)
380
+ 4. Run tests (`uv run pytest --cov=atomic_agents atomic-agents`)
381
+ 5. Format your code (`uv run black atomic-agents atomic-assembler atomic-examples atomic-forge`)
382
+ 6. Lint your code (`uv run flake8 --extend-exclude=.venv atomic-agents atomic-assembler atomic-examples atomic-forge`)
383
383
  7. Commit your changes (`git commit -m 'Add some feature'`)
384
384
  8. Push to the branch (`git push origin feature-branch`)
385
385
  9. Open a pull request