ag2 0.9.3__tar.gz → 0.9.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.

Potentially problematic release.


This version of ag2 might be problematic. Click here for more details.

Files changed (958) hide show
  1. {ag2-0.9.3 → ag2-0.9.4}/PKG-INFO +1 -1
  2. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_optimizer.py +6 -3
  3. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/conversable_agent.py +51 -5
  4. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/group_utils.py +16 -7
  5. ag2-0.9.4/autogen/agentchat/group/guardrails.py +171 -0
  6. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/targets/transition_target.py +10 -0
  7. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/groupchat.py +93 -6
  8. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/websurfer/websurfer.py +9 -1
  9. {ag2-0.9.3 → ag2-0.9.4}/autogen/events/agent_events.py +6 -0
  10. {ag2-0.9.3 → ag2-0.9.4}/autogen/events/helpers.py +8 -0
  11. ag2-0.9.4/autogen/mcp/helpers.py +45 -0
  12. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/mcp_proxy.py +2 -3
  13. {ag2-0.9.3 → ag2-0.9.4}/autogen/messages/agent_messages.py +1 -1
  14. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/gemini.py +39 -24
  15. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/gemini_types.py +1 -1
  16. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/__init__.py +4 -0
  17. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/browser_use/browser_use.py +4 -11
  18. ag2-0.9.4/autogen/tools/experimental/firecrawl/__init__.py +7 -0
  19. ag2-0.9.4/autogen/tools/experimental/firecrawl/firecrawl_tool.py +853 -0
  20. ag2-0.9.4/autogen/tools/experimental/searxng/__init__.py +7 -0
  21. ag2-0.9.4/autogen/tools/experimental/searxng/searxng_search.py +141 -0
  22. {ag2-0.9.3 → ag2-0.9.4}/autogen/version.py +1 -1
  23. {ag2-0.9.3 → ag2-0.9.4}/templates/client_template/main.jinja2 +5 -2
  24. {ag2-0.9.3 → ag2-0.9.4}/templates/main.jinja2 +1 -1
  25. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-31-WebSurferAgent/index.mdx +1 -1
  26. ag2-0.9.4/website/docs/user-guide/advanced-concepts/orchestration/group-chat/guardrails.mdx +365 -0
  27. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/introduction.mdx +3 -0
  28. ag2-0.9.4/website/docs/user-guide/reference-tools/firecrawl.mdx +221 -0
  29. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/index.mdx +10 -0
  30. ag2-0.9.4/website/docs/user-guide/reference-tools/searxng-search.mdx +70 -0
  31. {ag2-0.9.3 → ag2-0.9.4}/website/mint-json-template.json.jinja +2 -1
  32. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/mcp/client.mdx +88 -3
  33. {ag2-0.9.3 → ag2-0.9.4}/.coveragerc +0 -0
  34. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/Dockerfile +0 -0
  35. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/README.md +0 -0
  36. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/devcontainer.json +0 -0
  37. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/python-3.10/devcontainer.json +0 -0
  38. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/python-3.11/devcontainer.json +0 -0
  39. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/python-3.12/devcontainer.json +0 -0
  40. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/python-3.13/devcontainer.json +0 -0
  41. {ag2-0.9.3 → ag2-0.9.4}/.devcontainer/setup.sh +0 -0
  42. {ag2-0.9.3 → ag2-0.9.4}/.gitattributes +0 -0
  43. {ag2-0.9.3 → ag2-0.9.4}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  44. {ag2-0.9.3 → ag2-0.9.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  45. {ag2-0.9.3 → ag2-0.9.4}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  46. {ag2-0.9.3 → ag2-0.9.4}/.github/ISSUE_TEMPLATE/general_issue.yml +0 -0
  47. {ag2-0.9.3 → ag2-0.9.4}/.github/ISSUE_TEMPLATE.md +0 -0
  48. {ag2-0.9.3 → ag2-0.9.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  49. {ag2-0.9.3 → ag2-0.9.4}/.github/dependabot.yml +0 -0
  50. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/build-docs.yml +0 -0
  51. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/build-mkdocs.yml +0 -0
  52. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/contrib-graph-rag-tests.yml +0 -0
  53. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/contrib-llm-test.yml +0 -0
  54. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/contrib-test.yml +0 -0
  55. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/core-llm-test.yml +0 -0
  56. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/core-test.yml +0 -0
  57. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/deploy-website-mintlify.yml +0 -0
  58. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/deploy-website.yml +0 -0
  59. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/docs-check-broken-links.yml +0 -0
  60. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/integration-test.yml +0 -0
  61. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/lfs-check.yml +0 -0
  62. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/mkdocs-check-broken-links.yml +0 -0
  63. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/pr-checks.yml +0 -0
  64. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/python-package.yml +0 -0
  65. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/test-with-optional-deps.yml +0 -0
  66. {ag2-0.9.3 → ag2-0.9.4}/.github/workflows/type-check.yml +0 -0
  67. {ag2-0.9.3 → ag2-0.9.4}/.gitignore +0 -0
  68. {ag2-0.9.3 → ag2-0.9.4}/.muffet-excluded-links.txt +0 -0
  69. {ag2-0.9.3 → ag2-0.9.4}/.pre-commit-config.yaml +0 -0
  70. {ag2-0.9.3 → ag2-0.9.4}/CITATION.cff +0 -0
  71. {ag2-0.9.3 → ag2-0.9.4}/LICENSE +0 -0
  72. {ag2-0.9.3 → ag2-0.9.4}/MAINTAINERS.md +0 -0
  73. {ag2-0.9.3 → ag2-0.9.4}/NOTICE.md +0 -0
  74. {ag2-0.9.3 → ag2-0.9.4}/OAI_CONFIG_LIST_sample +0 -0
  75. {ag2-0.9.3 → ag2-0.9.4}/README.md +0 -0
  76. {ag2-0.9.3 → ag2-0.9.4}/TRANSPARENCY_FAQS.md +0 -0
  77. {ag2-0.9.3 → ag2-0.9.4}/announcements.md +0 -0
  78. {ag2-0.9.3 → ag2-0.9.4}/autogen/__init__.py +0 -0
  79. {ag2-0.9.3 → ag2-0.9.4}/autogen/_website/__init__.py +0 -0
  80. {ag2-0.9.3 → ag2-0.9.4}/autogen/_website/generate_api_references.py +0 -0
  81. {ag2-0.9.3 → ag2-0.9.4}/autogen/_website/generate_mkdocs.py +0 -0
  82. {ag2-0.9.3 → ag2-0.9.4}/autogen/_website/notebook_processor.py +0 -0
  83. {ag2-0.9.3 → ag2-0.9.4}/autogen/_website/process_notebooks.py +0 -0
  84. {ag2-0.9.3 → ag2-0.9.4}/autogen/_website/utils.py +0 -0
  85. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/__init__.py +0 -0
  86. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/agent.py +0 -0
  87. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/assistant_agent.py +0 -0
  88. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/chat.py +0 -0
  89. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/__init__.py +0 -0
  90. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/README.md +0 -0
  91. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/agent_eval.py +0 -0
  92. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/criterion.py +0 -0
  93. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/critic_agent.py +0 -0
  94. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/quantifier_agent.py +0 -0
  95. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/subcritic_agent.py +0 -0
  96. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/agent_eval/task.py +0 -0
  97. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/__init__.py +0 -0
  98. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/agent_capability.py +0 -0
  99. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/generate_images.py +0 -0
  100. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/teachability.py +0 -0
  101. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/text_compressors.py +0 -0
  102. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/tools_capability.py +0 -0
  103. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/transform_messages.py +0 -0
  104. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/transforms.py +0 -0
  105. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/transforms_util.py +0 -0
  106. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/capabilities/vision_capability.py +0 -0
  107. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/__init__.py +0 -0
  108. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/agent_builder.py +0 -0
  109. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/captainagent.py +0 -0
  110. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tool_retriever.py +0 -0
  111. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/README.md +0 -0
  112. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/__init__.py +0 -0
  113. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/data_analysis/calculate_correlation.py +0 -0
  114. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/data_analysis/calculate_skewness_and_kurtosis.py +0 -0
  115. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/data_analysis/detect_outlier_iqr.py +0 -0
  116. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/data_analysis/detect_outlier_zscore.py +0 -0
  117. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/data_analysis/explore_csv.py +0 -0
  118. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/data_analysis/shapiro_wilk_test.py +0 -0
  119. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/arxiv_download.py +0 -0
  120. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/arxiv_search.py +0 -0
  121. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/extract_pdf_image.py +0 -0
  122. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/extract_pdf_text.py +0 -0
  123. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/get_wikipedia_text.py +0 -0
  124. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/get_youtube_caption.py +0 -0
  125. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/image_qa.py +0 -0
  126. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/optical_character_recognition.py +0 -0
  127. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/perform_web_search.py +0 -0
  128. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/scrape_wikipedia_tables.py +0 -0
  129. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/transcribe_audio_file.py +0 -0
  130. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/youtube_download.py +0 -0
  131. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/calculate_circle_area_from_diameter.py +0 -0
  132. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/calculate_day_of_the_week.py +0 -0
  133. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/calculate_fraction_sum.py +0 -0
  134. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/calculate_matrix_power.py +0 -0
  135. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/calculate_reflected_point.py +0 -0
  136. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/complex_numbers_product.py +0 -0
  137. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/compute_currency_conversion.py +0 -0
  138. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/count_distinct_permutations.py +0 -0
  139. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/evaluate_expression.py +0 -0
  140. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/find_continuity_point.py +0 -0
  141. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/fraction_to_mixed_numbers.py +0 -0
  142. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/modular_inverse_sum.py +0 -0
  143. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/simplify_mixed_numbers.py +0 -0
  144. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/sum_of_digit_factorials.py +0 -0
  145. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/math/sum_of_primes_below.py +0 -0
  146. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/requirements.txt +0 -0
  147. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/captainagent/tools/tool_description.tsv +0 -0
  148. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/gpt_assistant_agent.py +0 -0
  149. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/__init__.py +0 -0
  150. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/document.py +0 -0
  151. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/falkor_graph_query_engine.py +0 -0
  152. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/falkor_graph_rag_capability.py +0 -0
  153. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/graph_query_engine.py +0 -0
  154. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/graph_rag_capability.py +0 -0
  155. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/neo4j_graph_query_engine.py +0 -0
  156. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/neo4j_graph_rag_capability.py +0 -0
  157. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/neo4j_native_graph_query_engine.py +0 -0
  158. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/graph_rag/neo4j_native_graph_rag_capability.py +0 -0
  159. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/img_utils.py +0 -0
  160. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/llamaindex_conversable_agent.py +0 -0
  161. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/llava_agent.py +0 -0
  162. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/math_user_proxy_agent.py +0 -0
  163. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/multimodal_conversable_agent.py +0 -0
  164. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/qdrant_retrieve_user_proxy_agent.py +0 -0
  165. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/rag/__init__.py +0 -0
  166. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/rag/chromadb_query_engine.py +0 -0
  167. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/rag/llamaindex_query_engine.py +0 -0
  168. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/rag/mongodb_query_engine.py +0 -0
  169. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/rag/query_engine.py +0 -0
  170. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/retrieve_assistant_agent.py +0 -0
  171. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/retrieve_user_proxy_agent.py +0 -0
  172. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/society_of_mind_agent.py +0 -0
  173. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/swarm_agent.py +0 -0
  174. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/text_analyzer_agent.py +0 -0
  175. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/__init__.py +0 -0
  176. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/base.py +0 -0
  177. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/chromadb.py +0 -0
  178. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/couchbase.py +0 -0
  179. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/mongodb.py +0 -0
  180. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/pgvectordb.py +0 -0
  181. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/qdrant.py +0 -0
  182. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/vectordb/utils.py +0 -0
  183. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/contrib/web_surfer.py +0 -0
  184. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/__init__.py +0 -0
  185. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/available_condition.py +0 -0
  186. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/context_condition.py +0 -0
  187. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/context_expression.py +0 -0
  188. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/context_str.py +0 -0
  189. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/context_variables.py +0 -0
  190. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/group_tool_executor.py +0 -0
  191. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/handoffs.py +0 -0
  192. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/llm_condition.py +0 -0
  193. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/multi_agent_chat.py +0 -0
  194. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/on_condition.py +0 -0
  195. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/on_context_condition.py +0 -0
  196. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/patterns/__init__.py +0 -0
  197. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/patterns/auto.py +0 -0
  198. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/patterns/manual.py +0 -0
  199. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/patterns/pattern.py +0 -0
  200. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/patterns/random.py +0 -0
  201. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/patterns/round_robin.py +0 -0
  202. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/reply_result.py +0 -0
  203. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/speaker_selection_result.py +0 -0
  204. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/targets/__init__.py +0 -0
  205. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/targets/group_chat_target.py +0 -0
  206. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/targets/group_manager_target.py +0 -0
  207. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/group/targets/transition_utils.py +0 -0
  208. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/__init__.py +0 -0
  209. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/__init__.py +0 -0
  210. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/audio_adapters/__init__.py +0 -0
  211. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/audio_adapters/twilio_audio_adapter.py +0 -0
  212. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/audio_adapters/websocket_audio_adapter.py +0 -0
  213. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/audio_observer.py +0 -0
  214. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/__init__.py +0 -0
  215. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/gemini/__init__.py +0 -0
  216. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/gemini/client.py +0 -0
  217. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/oai/__init__.py +0 -0
  218. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/oai/base_client.py +0 -0
  219. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/oai/rtc_client.py +0 -0
  220. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/oai/utils.py +0 -0
  221. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/clients/realtime_client.py +0 -0
  222. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/function_observer.py +0 -0
  223. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/realtime_agent.py +0 -0
  224. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/realtime_events.py +0 -0
  225. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/realtime_observer.py +0 -0
  226. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/realtime_swarm.py +0 -0
  227. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime/experimental/websockets.py +0 -0
  228. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/realtime_agent/__init__.py +0 -0
  229. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/user_proxy_agent.py +0 -0
  230. {ag2-0.9.3 → ag2-0.9.4}/autogen/agentchat/utils.py +0 -0
  231. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/__init__.py +0 -0
  232. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/contrib/__init__.py +0 -0
  233. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/contrib/time/__init__.py +0 -0
  234. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/contrib/time/time_reply_agent.py +0 -0
  235. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/contrib/time/time_tool_agent.py +0 -0
  236. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/__init__.py +0 -0
  237. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/deep_research/__init__.py +0 -0
  238. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/deep_research/deep_research.py +0 -0
  239. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/discord/__init__.py +0 -0
  240. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/discord/discord.py +0 -0
  241. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/__init__.py +0 -0
  242. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/chroma_query_engine.py +0 -0
  243. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/docling_doc_ingest_agent.py +0 -0
  244. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/document_agent.py +0 -0
  245. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/document_conditions.py +0 -0
  246. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/document_utils.py +0 -0
  247. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/inmemory_query_engine.py +0 -0
  248. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/parser_utils.py +0 -0
  249. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/document_agent/url_utils.py +0 -0
  250. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/reasoning/__init__.py +0 -0
  251. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/reasoning/reasoning_agent.py +0 -0
  252. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/slack/__init__.py +0 -0
  253. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/slack/slack.py +0 -0
  254. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/telegram/__init__.py +0 -0
  255. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/telegram/telegram.py +0 -0
  256. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/websurfer/__init__.py +0 -0
  257. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/wikipedia/__init__.py +0 -0
  258. {ag2-0.9.3 → ag2-0.9.4}/autogen/agents/experimental/wikipedia/wikipedia.py +0 -0
  259. {ag2-0.9.3 → ag2-0.9.4}/autogen/browser_utils.py +0 -0
  260. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/__init__.py +0 -0
  261. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/abstract_cache_base.py +0 -0
  262. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/cache.py +0 -0
  263. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/cache_factory.py +0 -0
  264. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/cosmos_db_cache.py +0 -0
  265. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/disk_cache.py +0 -0
  266. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/in_memory_cache.py +0 -0
  267. {ag2-0.9.3 → ag2-0.9.4}/autogen/cache/redis_cache.py +0 -0
  268. {ag2-0.9.3 → ag2-0.9.4}/autogen/code_utils.py +0 -0
  269. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/__init__.py +0 -0
  270. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/base.py +0 -0
  271. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/docker_commandline_code_executor.py +0 -0
  272. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/factory.py +0 -0
  273. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/func_with_reqs.py +0 -0
  274. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/__init__.py +0 -0
  275. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/base.py +0 -0
  276. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/docker_jupyter_server.py +0 -0
  277. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/embedded_ipython_code_executor.py +0 -0
  278. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/import_utils.py +0 -0
  279. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/jupyter_client.py +0 -0
  280. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/jupyter_code_executor.py +0 -0
  281. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/jupyter/local_jupyter_server.py +0 -0
  282. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/local_commandline_code_executor.py +0 -0
  283. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/markdown_code_extractor.py +0 -0
  284. {ag2-0.9.3 → ag2-0.9.4}/autogen/coding/utils.py +0 -0
  285. {ag2-0.9.3 → ag2-0.9.4}/autogen/doc_utils.py +0 -0
  286. {ag2-0.9.3 → ag2-0.9.4}/autogen/events/__init__.py +0 -0
  287. {ag2-0.9.3 → ag2-0.9.4}/autogen/events/base_event.py +0 -0
  288. {ag2-0.9.3 → ag2-0.9.4}/autogen/events/client_events.py +0 -0
  289. {ag2-0.9.3 → ag2-0.9.4}/autogen/events/print_event.py +0 -0
  290. {ag2-0.9.3 → ag2-0.9.4}/autogen/exception_utils.py +0 -0
  291. {ag2-0.9.3 → ag2-0.9.4}/autogen/extensions/__init__.py +0 -0
  292. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/__init__.py +0 -0
  293. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/_compat.py +0 -0
  294. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/core/__init__.py +0 -0
  295. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/core/build.py +0 -0
  296. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/core/model.py +0 -0
  297. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/dependencies/__init__.py +0 -0
  298. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/dependencies/model.py +0 -0
  299. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/dependencies/provider.py +0 -0
  300. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/library/__init__.py +0 -0
  301. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/library/model.py +0 -0
  302. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/py.typed +0 -0
  303. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/schema.py +0 -0
  304. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/use.py +0 -0
  305. {ag2-0.9.3 → ag2-0.9.4}/autogen/fast_depends/utils.py +0 -0
  306. {ag2-0.9.3 → ag2-0.9.4}/autogen/formatting_utils.py +0 -0
  307. {ag2-0.9.3 → ag2-0.9.4}/autogen/function_utils.py +0 -0
  308. {ag2-0.9.3 → ag2-0.9.4}/autogen/graph_utils.py +0 -0
  309. {ag2-0.9.3 → ag2-0.9.4}/autogen/import_utils.py +0 -0
  310. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/__init__.py +0 -0
  311. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/crewai/__init__.py +0 -0
  312. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/crewai/crewai.py +0 -0
  313. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/interoperability.py +0 -0
  314. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/interoperable.py +0 -0
  315. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/langchain/__init__.py +0 -0
  316. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/langchain/langchain_chat_model_factory.py +0 -0
  317. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/langchain/langchain_tool.py +0 -0
  318. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/litellm/__init__.py +0 -0
  319. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/litellm/litellm_config_factory.py +0 -0
  320. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/pydantic_ai/__init__.py +0 -0
  321. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/pydantic_ai/pydantic_ai.py +0 -0
  322. {ag2-0.9.3 → ag2-0.9.4}/autogen/interop/registry.py +0 -0
  323. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/__init__.py +0 -0
  324. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/base.py +0 -0
  325. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/console.py +0 -0
  326. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/processors/__init__.py +0 -0
  327. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/processors/base.py +0 -0
  328. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/processors/console_event_processor.py +0 -0
  329. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/run_response.py +0 -0
  330. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/thread_io_stream.py +0 -0
  331. {ag2-0.9.3 → ag2-0.9.4}/autogen/io/websockets.py +0 -0
  332. {ag2-0.9.3 → ag2-0.9.4}/autogen/json_utils.py +0 -0
  333. {ag2-0.9.3 → ag2-0.9.4}/autogen/llm_config.py +0 -0
  334. {ag2-0.9.3 → ag2-0.9.4}/autogen/logger/__init__.py +0 -0
  335. {ag2-0.9.3 → ag2-0.9.4}/autogen/logger/base_logger.py +0 -0
  336. {ag2-0.9.3 → ag2-0.9.4}/autogen/logger/file_logger.py +0 -0
  337. {ag2-0.9.3 → ag2-0.9.4}/autogen/logger/logger_factory.py +0 -0
  338. {ag2-0.9.3 → ag2-0.9.4}/autogen/logger/logger_utils.py +0 -0
  339. {ag2-0.9.3 → ag2-0.9.4}/autogen/logger/sqlite_logger.py +0 -0
  340. {ag2-0.9.3 → ag2-0.9.4}/autogen/math_utils.py +0 -0
  341. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/__init__.py +0 -0
  342. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/__main__.py +0 -0
  343. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_client.py +0 -0
  344. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/__init__.py +0 -0
  345. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/fastapi_code_generator_helpers.py +0 -0
  346. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/operation_grouping.py +0 -0
  347. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/operation_renaming.py +0 -0
  348. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/patch_fastapi_code_generator.py +0 -0
  349. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/security.py +0 -0
  350. {ag2-0.9.3 → ag2-0.9.4}/autogen/mcp/mcp_proxy/security_schema_visitor.py +0 -0
  351. {ag2-0.9.3 → ag2-0.9.4}/autogen/messages/__init__.py +0 -0
  352. {ag2-0.9.3 → ag2-0.9.4}/autogen/messages/base_message.py +0 -0
  353. {ag2-0.9.3 → ag2-0.9.4}/autogen/messages/client_messages.py +0 -0
  354. {ag2-0.9.3 → ag2-0.9.4}/autogen/messages/print_message.py +0 -0
  355. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/__init__.py +0 -0
  356. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/anthropic.py +0 -0
  357. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/bedrock.py +0 -0
  358. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/cerebras.py +0 -0
  359. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/client.py +0 -0
  360. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/client_utils.py +0 -0
  361. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/cohere.py +0 -0
  362. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/groq.py +0 -0
  363. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/mistral.py +0 -0
  364. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/__init__.py +0 -0
  365. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/_models.py +0 -0
  366. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/chat_completion.py +0 -0
  367. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/chat_completion_audio.py +0 -0
  368. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/chat_completion_message.py +0 -0
  369. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/chat_completion_message_tool_call.py +0 -0
  370. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/chat_completion_token_logprob.py +0 -0
  371. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/oai_models/completion_usage.py +0 -0
  372. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/ollama.py +0 -0
  373. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/openai_utils.py +0 -0
  374. {ag2-0.9.3 → ag2-0.9.4}/autogen/oai/together.py +0 -0
  375. {ag2-0.9.3 → ag2-0.9.4}/autogen/retrieve_utils.py +0 -0
  376. {ag2-0.9.3 → ag2-0.9.4}/autogen/runtime_logging.py +0 -0
  377. {ag2-0.9.3 → ag2-0.9.4}/autogen/token_count_utils.py +0 -0
  378. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/__init__.py +0 -0
  379. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/contrib/__init__.py +0 -0
  380. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/contrib/time/__init__.py +0 -0
  381. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/contrib/time/time.py +0 -0
  382. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/dependency_injection.py +0 -0
  383. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/browser_use/__init__.py +0 -0
  384. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/crawl4ai/__init__.py +0 -0
  385. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/crawl4ai/crawl4ai.py +0 -0
  386. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/deep_research/__init__.py +0 -0
  387. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/deep_research/deep_research.py +0 -0
  388. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/duckduckgo/__init__.py +0 -0
  389. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/duckduckgo/duckduckgo_search.py +0 -0
  390. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/__init__.py +0 -0
  391. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/authentication/__init__.py +0 -0
  392. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/authentication/credentials_hosted_provider.py +0 -0
  393. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/authentication/credentials_local_provider.py +0 -0
  394. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/authentication/credentials_provider.py +0 -0
  395. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/drive/__init__.py +0 -0
  396. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/drive/drive_functions.py +0 -0
  397. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/drive/toolkit.py +0 -0
  398. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/model.py +0 -0
  399. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google/toolkit_protocol.py +0 -0
  400. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google_search/__init__.py +0 -0
  401. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google_search/google_search.py +0 -0
  402. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/google_search/youtube_search.py +0 -0
  403. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/__init__.py +0 -0
  404. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/discord/__init__.py +0 -0
  405. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/discord/discord.py +0 -0
  406. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/slack/__init__.py +0 -0
  407. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/slack/slack.py +0 -0
  408. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/telegram/__init__.py +0 -0
  409. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/messageplatform/telegram/telegram.py +0 -0
  410. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/perplexity/__init__.py +0 -0
  411. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/perplexity/perplexity_search.py +0 -0
  412. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/reliable/__init__.py +0 -0
  413. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/reliable/reliable.py +0 -0
  414. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/tavily/__init__.py +0 -0
  415. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/tavily/tavily_search.py +0 -0
  416. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/web_search_preview/__init__.py +0 -0
  417. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/web_search_preview/web_search_preview.py +0 -0
  418. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/wikipedia/__init__.py +0 -0
  419. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/experimental/wikipedia/wikipedia.py +0 -0
  420. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/function_utils.py +0 -0
  421. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/tool.py +0 -0
  422. {ag2-0.9.3 → ag2-0.9.4}/autogen/tools/toolkit.py +0 -0
  423. {ag2-0.9.3 → ag2-0.9.4}/autogen/types.py +0 -0
  424. {ag2-0.9.3 → ag2-0.9.4}/azure-pipelines.yml +0 -0
  425. {ag2-0.9.3 → ag2-0.9.4}/codecov.yml +0 -0
  426. {ag2-0.9.3 → ag2-0.9.4}/license_original/LICENSE-CC +0 -0
  427. {ag2-0.9.3 → ag2-0.9.4}/license_original/LICENSE_original_MIT +0 -0
  428. {ag2-0.9.3 → ag2-0.9.4}/pyproject.toml +0 -0
  429. {ag2-0.9.3 → ag2-0.9.4}/scripts/broken-links-check.sh +0 -0
  430. {ag2-0.9.3 → ag2-0.9.4}/scripts/build-setup-files.py +0 -0
  431. {ag2-0.9.3 → ag2-0.9.4}/scripts/devcontainer/generate-devcontainers.py +0 -0
  432. {ag2-0.9.3 → ag2-0.9.4}/scripts/devcontainer/generate-devcontainers.sh +0 -0
  433. {ag2-0.9.3 → ag2-0.9.4}/scripts/devcontainer/templates/devcontainer.json.jinja +0 -0
  434. {ag2-0.9.3 → ag2-0.9.4}/scripts/docs_build.sh +0 -0
  435. {ag2-0.9.3 → ag2-0.9.4}/scripts/docs_build_mkdocs.sh +0 -0
  436. {ag2-0.9.3 → ag2-0.9.4}/scripts/docs_serve.sh +0 -0
  437. {ag2-0.9.3 → ag2-0.9.4}/scripts/docs_serve_mkdocs.sh +0 -0
  438. {ag2-0.9.3 → ag2-0.9.4}/scripts/integration-test.sh +0 -0
  439. {ag2-0.9.3 → ag2-0.9.4}/scripts/lint.sh +0 -0
  440. {ag2-0.9.3 → ag2-0.9.4}/scripts/pre-commit-build-setup-files.sh +0 -0
  441. {ag2-0.9.3 → ag2-0.9.4}/scripts/pre-commit-license-check.py +0 -0
  442. {ag2-0.9.3 → ag2-0.9.4}/scripts/pre-commit-lint.sh +0 -0
  443. {ag2-0.9.3 → ag2-0.9.4}/scripts/pre-commit-mypy-run.sh +0 -0
  444. {ag2-0.9.3 → ag2-0.9.4}/scripts/show-coverage-report.sh +0 -0
  445. {ag2-0.9.3 → ag2-0.9.4}/scripts/test-core-llm.sh +0 -0
  446. {ag2-0.9.3 → ag2-0.9.4}/scripts/test-core-skip-llm.sh +0 -0
  447. {ag2-0.9.3 → ag2-0.9.4}/scripts/test-docs.sh +0 -0
  448. {ag2-0.9.3 → ag2-0.9.4}/scripts/test-skip-llm.sh +0 -0
  449. {ag2-0.9.3 → ag2-0.9.4}/scripts/test.sh +0 -0
  450. {ag2-0.9.3 → ag2-0.9.4}/setup.jinja +0 -0
  451. {ag2-0.9.3 → ag2-0.9.4}/setup_autogen.py +0 -0
  452. {ag2-0.9.3 → ag2-0.9.4}/templates/config_template/config.jinja2 +0 -0
  453. {ag2-0.9.3 → ag2-0.9.4}/website/.gitignore +0 -0
  454. {ag2-0.9.3 → ag2-0.9.4}/website/README.md +0 -0
  455. {ag2-0.9.3 → ag2-0.9.4}/website/blogs_and_user_stories_authors.yml +0 -0
  456. {ag2-0.9.3 → ag2-0.9.4}/website/docs/.gitignore +0 -0
  457. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level2algebra.png +0 -0
  458. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level3algebra.png +0 -0
  459. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level4algebra.png +0 -0
  460. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level5algebra.png +0 -0
  461. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-04-21-LLM-tuning-math/index.mdx +0 -0
  462. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-05-18-GPT-adaptive-humaneval/img/design.png +0 -0
  463. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-05-18-GPT-adaptive-humaneval/img/humaneval.png +0 -0
  464. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-05-18-GPT-adaptive-humaneval/index.mdx +0 -0
  465. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-06-28-MathChat/img/mathchatflow.png +0 -0
  466. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-06-28-MathChat/img/result.png +0 -0
  467. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-06-28-MathChat/index.mdx +0 -0
  468. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-07-14-Local-LLMs/index.mdx +0 -0
  469. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-10-18-RetrieveChat/img/autogen-rag.gif +0 -0
  470. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-10-18-RetrieveChat/img/retrievechat-arch.png +0 -0
  471. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-10-18-RetrieveChat/index.mdx +0 -0
  472. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-10-26-TeachableAgent/img/teachable-arch.png +0 -0
  473. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-10-26-TeachableAgent/index.mdx +0 -0
  474. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-06-LMM-Agent/img/teaser.png +0 -0
  475. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-06-LMM-Agent/index.mdx +0 -0
  476. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-09-EcoAssistant/img/chat.webp +0 -0
  477. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-09-EcoAssistant/img/results.png +0 -0
  478. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-09-EcoAssistant/img/system.webp +0 -0
  479. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-09-EcoAssistant/img/template-demo.png +0 -0
  480. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-09-EcoAssistant/img/template.png +0 -0
  481. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-09-EcoAssistant/index.mdx +0 -0
  482. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-13-OAI-assistants/img/teaser.jpg +0 -0
  483. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-13-OAI-assistants/index.mdx +0 -0
  484. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-20-AgentEval/img/agenteval-CQ.webp +0 -0
  485. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-20-AgentEval/img/math-problems-plot.png +0 -0
  486. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-20-AgentEval/img/tasks-taxonomy.webp +0 -0
  487. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-20-AgentEval/index.mdx +0 -0
  488. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-26-Agent-AutoBuild/img/agent_autobuild.webp +0 -0
  489. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-11-26-Agent-AutoBuild/index.mdx +0 -0
  490. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-01-AutoGenStudio/img/autogenstudio_config.png +0 -0
  491. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-01-AutoGenStudio/img/autogenstudio_home.png +0 -0
  492. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-01-AutoGenStudio/img/autogenstudio_skills.png +0 -0
  493. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-01-AutoGenStudio/index.mdx +0 -0
  494. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-23-AgentOptimizer/img/agentoptimizer.webp +0 -0
  495. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-23-AgentOptimizer/index.mdx +0 -0
  496. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2023-12-29-AgentDescriptions/index.mdx +0 -0
  497. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-01-23-Code-execution-in-docker/index.mdx +0 -0
  498. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-01-25-AutoGenBench/img/teaser.jpg +0 -0
  499. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-01-25-AutoGenBench/index.mdx +0 -0
  500. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-01-26-Custom-Models/index.mdx +0 -0
  501. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-02-AutoAnny/img/AutoAnnyLogo.jpg +0 -0
  502. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-02-AutoAnny/index.mdx +0 -0
  503. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-11-FSM-GroupChat/img/FSM_logic.webp +0 -0
  504. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-11-FSM-GroupChat/img/FSM_of_multi-agents.webp +0 -0
  505. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-11-FSM-GroupChat/img/teaser.webp +0 -0
  506. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-11-FSM-GroupChat/index.mdx +0 -0
  507. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-29-StateFlow/img/alfworld.png +0 -0
  508. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-29-StateFlow/img/bash_result.png +0 -0
  509. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-29-StateFlow/img/intercode.webp +0 -0
  510. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-29-StateFlow/img/sf_example_1.webp +0 -0
  511. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-02-29-StateFlow/index.mdx +0 -0
  512. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/contributors.png +0 -0
  513. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/dalle_gpt4v.png +0 -0
  514. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/gaia.png +0 -0
  515. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/love.png +0 -0
  516. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/teach.png +0 -0
  517. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-03-AutoGen-Update/index.mdx +0 -0
  518. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-11-AutoDefense/img/architecture.webp +0 -0
  519. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-11-AutoDefense/img/defense-agency-design.webp +0 -0
  520. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-11-AutoDefense/img/table-4agents.png +0 -0
  521. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-11-AutoDefense/img/table-agents.png +0 -0
  522. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-11-AutoDefense/img/table-compared-methods.png +0 -0
  523. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-03-11-AutoDefense/index.mdx +0 -0
  524. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-05-24-Agent/img/agents.png +0 -0
  525. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-05-24-Agent/img/leadership.png +0 -0
  526. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-05-24-Agent/index.mdx +0 -0
  527. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-06-21-AgentEval/img/agenteval_ov_v3.webp +0 -0
  528. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-06-21-AgentEval/index.mdx +0 -0
  529. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-06-24-AltModels-Classes/img/agentstogether.jpeg +0 -0
  530. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-06-24-AltModels-Classes/index.mdx +0 -0
  531. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-07-25-AgentOps/img/autogen-integration.png +0 -0
  532. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-07-25-AgentOps/img/dashboard.png +0 -0
  533. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-07-25-AgentOps/img/flow.png +0 -0
  534. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-07-25-AgentOps/img/session-replay.png +0 -0
  535. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-07-25-AgentOps/index.mdx +0 -0
  536. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-15-CaptainAgent/img/build.webp +0 -0
  537. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-15-CaptainAgent/img/chat.webp +0 -0
  538. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-15-CaptainAgent/img/overall.webp +0 -0
  539. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-15-CaptainAgent/index.mdx +0 -0
  540. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-17-Swarm/index.mdx +0 -0
  541. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/probing_flow.webp +0 -0
  542. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/prompt_leakage_report.png +0 -0
  543. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/prompt_leakage_social_img.webp +0 -0
  544. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/prompt_test_chat.webp +0 -0
  545. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/index.mdx +0 -0
  546. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-02-ReasoningAgent2/img/reasoningagent_1.webp +0 -0
  547. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-02-ReasoningAgent2/img/reasoningagent_2.webp +0 -0
  548. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-02-ReasoningAgent2/img/tree-of-thoughts.png +0 -0
  549. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-02-ReasoningAgent2/index.mdx +0 -0
  550. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-06-FalkorDB-Structured/img/falkordb.png +0 -0
  551. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-06-FalkorDB-Structured/img/tripplanner.webp +0 -0
  552. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-06-FalkorDB-Structured/index.mdx +0 -0
  553. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-20-RealtimeAgent/index.mdx +0 -0
  554. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-20-Reasoning-Update/img/mcts_example.png +0 -0
  555. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-20-Reasoning-Update/img/reasoningagent_1.png +0 -0
  556. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-20-Reasoning-Update/index.mdx +0 -0
  557. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2024-12-20-Tools-interoperability/index.mdx +0 -0
  558. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-07-Tools-Dependency-Injection/index.mdx +0 -0
  559. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-08-RealtimeAgent-over-websocket/index.mdx +0 -0
  560. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-09-RealtimeAgent-over-WebRTC/index.mdx +0 -0
  561. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-10-WebSockets/img/structured_messages_with_websockets.png +0 -0
  562. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-10-WebSockets/index.mdx +0 -0
  563. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-22-Tools-ChatContext-Dependency-Injection/index.mdx +0 -0
  564. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-29-RealtimeAgent-with-gemini/img/RealtimeAgent_gemini.png +0 -0
  565. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-29-RealtimeAgent-with-gemini/index.mdx +0 -0
  566. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-01-31-Websurfing-Tools/index.mdx +0 -0
  567. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_discord_msg.png +0 -0
  568. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_slack_finalmsg.png +0 -0
  569. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_slack_msg.png +0 -0
  570. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_telegram_msg.png +0 -0
  571. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-02-05-Communication-Agents/index.mdx +0 -0
  572. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-02-13-DeepResearchAgent/index.mdx +0 -0
  573. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-04-16-Reasoning/img/cognition.jpg +0 -0
  574. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-04-16-Reasoning/img/iter.jpg +0 -0
  575. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-04-16-Reasoning/img/partner.jpg +0 -0
  576. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-04-16-Reasoning/img/threads.jpeg +0 -0
  577. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-04-16-Reasoning/index.mdx +0 -0
  578. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-04-28-0.9-Release-Announcement/index.mdx +0 -0
  579. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/AG2-CopilotKit.png +0 -0
  580. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/ag2-copilotkit-architecture.png +0 -0
  581. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/quick-start-1.png +0 -0
  582. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/quick-start-2.png +0 -0
  583. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/index.mdx +0 -0
  584. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image1.png +0 -0
  585. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image2.png +0 -0
  586. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image3.png +0 -0
  587. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image4.png +0 -0
  588. {ag2-0.9.3 → ag2-0.9.4}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/index.mdx +0 -0
  589. {ag2-0.9.3 → ag2-0.9.4}/website/docs/community-talks/2025-04-10-NOVA/index.mdx +0 -0
  590. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/Migration-Guide.mdx +0 -0
  591. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/Research.mdx +0 -0
  592. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/building/creating-a-tool.mdx +0 -0
  593. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/building/creating-an-agent.mdx +0 -0
  594. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/contributing.mdx +0 -0
  595. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/documentation.mdx +0 -0
  596. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/file-bug-report.mdx +0 -0
  597. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/how-ag2-works/assets/generate-reply.png +0 -0
  598. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/how-ag2-works/assets/initiate-chat.png +0 -0
  599. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/how-ag2-works/generate-reply.mdx +0 -0
  600. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/how-ag2-works/hooks.mdx +0 -0
  601. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/how-ag2-works/initiate-chat.mdx +0 -0
  602. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/how-ag2-works/overview.mdx +0 -0
  603. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/maintainer.mdx +0 -0
  604. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/pre-commit.mdx +0 -0
  605. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/setup-development-environment.mdx +0 -0
  606. {ag2-0.9.3 → ag2-0.9.4}/website/docs/contributor-guide/tests.mdx +0 -0
  607. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/agentops.mdx +0 -0
  608. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/azure_cosmos_db.mdx +0 -0
  609. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/composio.mdx +0 -0
  610. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/databricks.mdx +0 -0
  611. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/img/ecosystem-databricks.png +0 -0
  612. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/img/ecosystem-fabric.png +0 -0
  613. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/img/ecosystem-llamaindex.png +0 -0
  614. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/img/ecosystem-memgpt.png +0 -0
  615. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/img/ecosystem-ollama.png +0 -0
  616. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/img/ecosystem-promptflow.png +0 -0
  617. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/llamaindex.mdx +0 -0
  618. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/mem0.mdx +0 -0
  619. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/memgpt.mdx +0 -0
  620. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/microsoft-fabric.mdx +0 -0
  621. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/ollama.mdx +0 -0
  622. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/pgvector.mdx +0 -0
  623. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/portkey.mdx +0 -0
  624. {ag2-0.9.3 → ag2-0.9.4}/website/docs/ecosystem/promptflow.mdx +0 -0
  625. {ag2-0.9.3 → ag2-0.9.4}/website/docs/faq/FAQ.mdx +0 -0
  626. {ag2-0.9.3 → ag2-0.9.4}/website/docs/home/quickstart.mdx +0 -0
  627. {ag2-0.9.3 → ag2-0.9.4}/website/docs/installation/Installation.mdx +0 -0
  628. {ag2-0.9.3 → ag2-0.9.4}/website/docs/installation/Optional-Dependencies.mdx +0 -0
  629. {ag2-0.9.3 → ag2-0.9.4}/website/docs/quick-start.mdx +0 -0
  630. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/.gitignore +0 -0
  631. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/community-gallery/community-gallery.mdx +0 -0
  632. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/notebooks/Notebooks.mdx +0 -0
  633. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/assets/game-design-page.png +0 -0
  634. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/assets/game-designed.png +0 -0
  635. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/assets/travel-planning-falkordb.png +0 -0
  636. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/assets/travel-planning-itinerary.png +0 -0
  637. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/assets/travel-planning-overview.png +0 -0
  638. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/customer-service.mdx +0 -0
  639. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/game-design.mdx +0 -0
  640. {ag2-0.9.3 → ag2-0.9.4}/website/docs/use-cases/use-cases/travel-planning.mdx +0 -0
  641. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/code-execution-in-conversation.png +0 -0
  642. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/code-executor-docker.png +0 -0
  643. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/code-executor-no-docker.png +0 -0
  644. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/code-executor-stock-chart.png +0 -0
  645. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/group-chat-fsm.png +0 -0
  646. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/group-chat.png +0 -0
  647. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/nested-chats.png +0 -0
  648. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/sequential-two-agent-chat.png +0 -0
  649. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-01.png +0 -0
  650. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-02.png +0 -0
  651. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-03.png +0 -0
  652. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-04.png +0 -0
  653. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/assets/two-agent-chat.png +0 -0
  654. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/code-execution.mdx +0 -0
  655. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/ending-a-chat.mdx +0 -0
  656. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/groupchat/custom-group-chat.mdx +0 -0
  657. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/groupchat/groupchat.mdx +0 -0
  658. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/groupchat/resuming-group-chat.mdx +0 -0
  659. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/groupchat/tools.mdx +0 -0
  660. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/llm-configuration-deep-dive.mdx +0 -0
  661. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/nested-chat.mdx +0 -0
  662. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/assets/nested-chats.png +0 -0
  663. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/assets/sequential-two-agent-chat.png +0 -0
  664. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/ending-a-chat.mdx +0 -0
  665. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/agent-tools-functions.mdx +0 -0
  666. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/context-variables.mdx +0 -0
  667. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/handoffs.mdx +0 -0
  668. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/patterns.mdx +0 -0
  669. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/group-chat.mdx +0 -0
  670. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/nested-chat.mdx +0 -0
  671. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/orchestrations.mdx +0 -0
  672. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/sequential-chat.mdx +0 -0
  673. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/swarm/deprecation.mdx +0 -0
  674. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestration/two-agent-chat.mdx +0 -0
  675. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/orchestrations.mdx +0 -0
  676. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/context_aware_routing.jpeg +0 -0
  677. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/context_aware_routing_flow.jpeg +0 -0
  678. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/escalation.jpeg +0 -0
  679. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/escalation_flow.jpeg +0 -0
  680. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/feedback_loop.jpeg +0 -0
  681. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/feedback_loop_flow.jpeg +0 -0
  682. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/hierarchical.jpeg +0 -0
  683. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/hierarchical_flow.jpeg +0 -0
  684. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/organic.jpeg +0 -0
  685. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/organic_flow.jpeg +0 -0
  686. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/pipeline.jpeg +0 -0
  687. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/pipeline_flow.jpeg +0 -0
  688. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/redundant.jpeg +0 -0
  689. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/redundant_flow.jpeg +0 -0
  690. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/star.jpeg +0 -0
  691. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/star_flow.jpeg +0 -0
  692. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/triage_tasks.jpeg +0 -0
  693. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/triage_tasks_flow.jpeg +0 -0
  694. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/context_aware_routing.mdx +0 -0
  695. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/escalation.mdx +0 -0
  696. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/feedback_loop.mdx +0 -0
  697. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/hierarchical.mdx +0 -0
  698. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/organic.mdx +0 -0
  699. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/overview.mdx +0 -0
  700. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/pipeline.mdx +0 -0
  701. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/redundant.mdx +0 -0
  702. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/star.mdx +0 -0
  703. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/pattern-cookbook/triage_with_tasks.mdx +0 -0
  704. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/rag.mdx +0 -0
  705. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/realtime-agent/index.mdx +0 -0
  706. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/realtime-agent/twilio.mdx +0 -0
  707. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/realtime-agent/webrtc.mdx +0 -0
  708. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/realtime-agent/websocket.mdx +0 -0
  709. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/sequential-chat.mdx +0 -0
  710. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/basics.mdx +0 -0
  711. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/controlling-use.mdx +0 -0
  712. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/index.mdx +0 -0
  713. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/interop/crewai.mdx +0 -0
  714. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/interop/langchain.mdx +0 -0
  715. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/interop/pydanticai.mdx +0 -0
  716. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/mcp/client.mdx +0 -0
  717. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/tools/tools-with-secrets.mdx +0 -0
  718. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/advanced-concepts/two-agent-chat.mdx +0 -0
  719. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/assets/human-in-the-loop-example.png +0 -0
  720. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/assets/overview-workflow.png +0 -0
  721. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/conversable-agent.mdx +0 -0
  722. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/human-in-the-loop.mdx +0 -0
  723. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/installing-ag2.mdx +0 -0
  724. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/introducing-group-chat.mdx +0 -0
  725. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/introducing-swarm-orchestration.mdx +0 -0
  726. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/introducing-tools.mdx +0 -0
  727. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/llm-configuration.mdx +0 -0
  728. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/overview.mdx +0 -0
  729. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/basic-concepts/structured-outputs.mdx +0 -0
  730. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/getting-started/Getting-Started.mdx +0 -0
  731. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/amazon-bedrock.mdx +0 -0
  732. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/anthropic.mdx +0 -0
  733. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/assets/ag2-agentchat.png +0 -0
  734. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/assets/chat-example.png +0 -0
  735. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/assets/create-gcp-svc.png +0 -0
  736. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/assets/gemini-coding-chart.png +0 -0
  737. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/cerebras.mdx +0 -0
  738. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/cohere.mdx +0 -0
  739. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/deepseek-v3.mdx +0 -0
  740. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/google-gemini.mdx +0 -0
  741. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/google-vertexai.mdx +0 -0
  742. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/groq.mdx +0 -0
  743. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/litellm-proxy-server/azure.mdx +0 -0
  744. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/litellm-proxy-server/installation.mdx +0 -0
  745. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/litellm-proxy-server/openai.mdx +0 -0
  746. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/litellm-proxy-server/watsonx.mdx +0 -0
  747. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/lm-studio.mdx +0 -0
  748. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/mistralai.mdx +0 -0
  749. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/ollama.mdx +0 -0
  750. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/openai.mdx +0 -0
  751. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/togetherai.mdx +0 -0
  752. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/models/vLLM.mdx +0 -0
  753. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/commsagents_discordoutput.png +0 -0
  754. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/commsagents_tools.png +0 -0
  755. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/commsplatforms_discord_sentmsg.png +0 -0
  756. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/commsplatforms_slack_sentmsg.png +0 -0
  757. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/commsplatforms_telegram_sentmsg.png +0 -0
  758. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/docagent_tests_story1.md +0 -0
  759. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/docagent_tests_story2.md +0 -0
  760. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/assets/websurferagent_animated.gif +0 -0
  761. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/captainagent.mdx +0 -0
  762. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/communication-platforms/discordagent.mdx +0 -0
  763. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/communication-platforms/overview.mdx +0 -0
  764. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/communication-platforms/slackagent.mdx +0 -0
  765. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/communication-platforms/telegramagent.mdx +0 -0
  766. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/deepresearchagent.mdx +0 -0
  767. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/docagent-performance.mdx +0 -0
  768. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/docagent.mdx +0 -0
  769. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/index.mdx +0 -0
  770. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/reasoningagent.mdx +0 -0
  771. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/websurferagent.mdx +0 -0
  772. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-agents/wikipediaagent.mdx +0 -0
  773. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/browser-use.mdx +0 -0
  774. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/communication-platforms/discord.mdx +0 -0
  775. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/communication-platforms/slack.mdx +0 -0
  776. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/communication-platforms/telegram.mdx +0 -0
  777. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/crawl4ai.mdx +0 -0
  778. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/deep-research.mdx +0 -0
  779. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/google-api/google-drive.mdx +0 -0
  780. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/google-api/google-search.mdx +0 -0
  781. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/google-api/youtube-search.mdx +0 -0
  782. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/perplexity-search.mdx +0 -0
  783. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-guide/reference-tools/wikipedia-search.mdx +0 -0
  784. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-02-11-NOVA/img/nexla_ag2.webp +0 -0
  785. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-02-11-NOVA/img/nova_architecture.webp +0 -0
  786. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-02-11-NOVA/index.mdx +0 -0
  787. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/01.png +0 -0
  788. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/02.png +0 -0
  789. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/banner.png +0 -0
  790. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/profile.png +0 -0
  791. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/index.mdx +0 -0
  792. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-04-AgentWeb/img/01.png +0 -0
  793. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-04-AgentWeb/img/banner.png +0 -0
  794. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-04-AgentWeb/img/profile.png +0 -0
  795. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-04-AgentWeb/index.mdx +0 -0
  796. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-11-Productionizing-OSS-Agents/img/banner.png +0 -0
  797. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-11-Productionizing-OSS-Agents/index.mdx +0 -0
  798. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/img/banner.png +0 -0
  799. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/img/boris_profile.png +0 -0
  800. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/img/flow-chart.png +0 -0
  801. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/img/francisco_profile.png +0 -0
  802. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/img/inigo_profile.png +0 -0
  803. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/img/james_profile.png +0 -0
  804. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-15-CMBAgent/index.mdx +0 -0
  805. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/img/01.png +0 -0
  806. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/img/banner.png +0 -0
  807. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/img/profile.png +0 -0
  808. {ag2-0.9.3 → ag2-0.9.4}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/index.mdx +0 -0
  809. {ag2-0.9.3 → ag2-0.9.4}/website/docusaurus.config.js +0 -0
  810. {ag2-0.9.3 → ag2-0.9.4}/website/generate_api_references.py +0 -0
  811. {ag2-0.9.3 → ag2-0.9.4}/website/logo/ag2-white.svg +0 -0
  812. {ag2-0.9.3 → ag2-0.9.4}/website/logo/ag2.svg +0 -0
  813. {ag2-0.9.3 → ag2-0.9.4}/website/logo/favicon.svg +0 -0
  814. {ag2-0.9.3 → ag2-0.9.4}/website/mako_templates/text.mako +0 -0
  815. {ag2-0.9.3 → ag2-0.9.4}/website/mint-app-gallery-deps.js +0 -0
  816. {ag2-0.9.3 → ag2-0.9.4}/website/mint-script.js +0 -0
  817. {ag2-0.9.3 → ag2-0.9.4}/website/mint-style.css +0 -0
  818. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/.gitignore +0 -0
  819. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/README.md +0 -0
  820. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/create_api_docs.py +0 -0
  821. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/data/gallery_items.yml +0 -0
  822. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/data/people.yml +0 -0
  823. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/docs/.gitignore +0 -0
  824. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/docs/index.md +0 -0
  825. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/docs/javascripts/extra.js +0 -0
  826. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/docs/stylesheets/extra.css +0 -0
  827. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/docs.py +0 -0
  828. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/docs_src/__init__.py +0 -0
  829. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/expand_markdown.py +0 -0
  830. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/generate_mkdocs.py +0 -0
  831. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/includes/.gitkeep +0 -0
  832. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/mkdocs.yml +0 -0
  833. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/404.html +0 -0
  834. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/home.html +0 -0
  835. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/blue-bg.png +0 -0
  836. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/bot-left-corner.png +0 -0
  837. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/bot-right-corner.png +0 -0
  838. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/button-shine.png +0 -0
  839. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/city-horizon.png +0 -0
  840. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/cloud.png +0 -0
  841. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/conversation.png +0 -0
  842. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/green-bg.png +0 -0
  843. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/human.png +0 -0
  844. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/intuitive.png +0 -0
  845. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/purple-bg.png +0 -0
  846. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/sun.png +0 -0
  847. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/top-left-corner.png +0 -0
  848. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/top-right-corner.png +0 -0
  849. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/images/yellow-bg.png +0 -0
  850. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/overrides/main.html +0 -0
  851. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/templates/redirect.html +0 -0
  852. {ag2-0.9.3 → ag2-0.9.4}/website/mkdocs/update_releases.py +0 -0
  853. {ag2-0.9.3 → ag2-0.9.4}/website/package-lock.json +0 -0
  854. {ag2-0.9.3 → ag2-0.9.4}/website/package.json +0 -0
  855. {ag2-0.9.3 → ag2-0.9.4}/website/process_notebooks.py +0 -0
  856. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/1_service_running.png +0 -0
  857. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/2_incoming_call.png +0 -0
  858. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/3_request_for_flight_cancellation.png +0 -0
  859. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/4_flight_number_name.png +0 -0
  860. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/5_refund_policy.png +0 -0
  861. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/6_flight_refunded.png +0 -0
  862. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/realtime_agent_swarm.png +0 -0
  863. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/twilio_endpoint_config.png +0 -0
  864. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/twilio_phone_numbers.png +0 -0
  865. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/webrtc_chat.png +0 -0
  866. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/webrtc_communication_diagram.png +0 -0
  867. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/webrtc_connection_diagram.png +0 -0
  868. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/websocket_chat.png +0 -0
  869. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/img/websocket_communication_diagram.png +0 -0
  870. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/twilio.mdx +0 -0
  871. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/webrtc.mdx +0 -0
  872. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/advanced-concepts/realtime-agent/websocket.mdx +0 -0
  873. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/components/ClientSideComponent.mdx +0 -0
  874. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/components/GalleryPage.mdx +0 -0
  875. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/data/GalleryItems.mdx +0 -0
  876. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/interop/crewai.mdx +0 -0
  877. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/interop/langchain.mdx +0 -0
  878. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/interop/pydanticai.mdx +0 -0
  879. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/conversableagentchat.mdx +0 -0
  880. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/groupchat.mdx +0 -0
  881. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/groupchatcustomfsm.mdx +0 -0
  882. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/groupchatcustomfunc.mdx +0 -0
  883. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/humanintheloop.mdx +0 -0
  884. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/humanintheloop_financial.mdx +0 -0
  885. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/nestedchat.mdx +0 -0
  886. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/sequentialchat.mdx +0 -0
  887. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/structured_output.mdx +0 -0
  888. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/swarm.mdx +0 -0
  889. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/swarmgroupchat.mdx +0 -0
  890. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/toolregister.mdx +0 -0
  891. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/python-examples/websurferagent.mdx +0 -0
  892. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/reference-agents/deep-research.mdx +0 -0
  893. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/reference-agents/img/DeepResearchAgent.png +0 -0
  894. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/reference-tools/browser-use.mdx +0 -0
  895. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/reference-tools/crawl4ai.mdx +0 -0
  896. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/reference-tools/deep-research.mdx +0 -0
  897. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/reference-tools/google-drive.mdx +0 -0
  898. {ag2-0.9.3 → ag2-0.9.4}/website/snippets/utils/runmethodhelp.mdx +0 -0
  899. {ag2-0.9.3 → ag2-0.9.4}/website/static/.nojekyll +0 -0
  900. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/ag.ico +0 -0
  901. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/ag.svg +0 -0
  902. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/ag2.ico +0 -0
  903. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/ag2.png +0 -0
  904. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/ag2.svg +0 -0
  905. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/auto.svg +0 -0
  906. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/autogen.svg +0 -0
  907. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/autogen_agentchat.png +0 -0
  908. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/autogen_app.png +0 -0
  909. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/autogen_app.svg +0 -0
  910. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/chat_example.png +0 -0
  911. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/conv.svg +0 -0
  912. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/conv_2.svg +0 -0
  913. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/cover.png +0 -0
  914. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/create_gcp_svc.png +0 -0
  915. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/ecosystem-composio.png +0 -0
  916. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/extend.svg +0 -0
  917. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/fast.svg +0 -0
  918. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/favicon-dark.svg +0 -0
  919. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/favicon.svg +0 -0
  920. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/flaml.svg +0 -0
  921. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/flaml_logo.ico +0 -0
  922. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/flaml_logo_fill.svg +0 -0
  923. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/TensionCode.png +0 -0
  924. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/agent-e.png +0 -0
  925. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/autotx.png +0 -0
  926. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/composio-autogen.png +0 -0
  927. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/default.png +0 -0
  928. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/robot.jpg +0 -0
  929. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/webagent.jpg +0 -0
  930. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/gallery/x-force-ide-ui.png +0 -0
  931. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/homepage-hero-background-large.png +0 -0
  932. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/homepage-hero-background.png +0 -0
  933. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/logo.svg +0 -0
  934. {ag2-0.9.3 → ag2-0.9.4}/website/static/img/love.png +0 -0
  935. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-08-26/index.mdx +0 -0
  936. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-09-23/index.mdx +0 -0
  937. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-09-30/index.mdx +0 -0
  938. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-10-14/index.mdx +0 -0
  939. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-10-15/index.mdx +0 -0
  940. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-11-04/index.mdx +0 -0
  941. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-11-11/index.mdx +0 -0
  942. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-11-12/index.mdx +0 -0
  943. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-11-18/index.mdx +0 -0
  944. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-11-25/index.mdx +0 -0
  945. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-11-28/index.mdx +0 -0
  946. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-12-12/index.mdx +0 -0
  947. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-12-19/index.mdx +0 -0
  948. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2024-12-19-special_talk/index.mdx +0 -0
  949. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2025-01-16/index.mdx +0 -0
  950. {ag2-0.9.3 → ag2-0.9.4}/website/talks/2025-01-23/index.mdx +0 -0
  951. {ag2-0.9.3 → ag2-0.9.4}/website/talks/future_talks/index.mdx +0 -0
  952. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/captainagent/_category_.json +0 -0
  953. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/captainagent/agent_library.mdx +0 -0
  954. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/captainagent/configurations.mdx +0 -0
  955. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/captainagent/tool_library.mdx +0 -0
  956. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/handling_long_contexts/_category_.json +0 -0
  957. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/handling_long_contexts/compressing_text_w_llmligua.mdx +0 -0
  958. {ag2-0.9.3 → ag2-0.9.4}/website/user-guide/handling_long_contexts/intro_to_transform_messages.mdx +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ag2
3
- Version: 0.9.3
3
+ Version: 0.9.4
4
4
  Summary: A programming framework for agentic AI
5
5
  Project-URL: Homepage, https://ag2.ai/
6
6
  Project-URL: Documentation, https://docs.ag2.ai
@@ -140,7 +140,7 @@ History:
140
140
 
141
141
  According to the information I provide, please take one of four actions to manipulate list B using the functions you know.
142
142
  Instead of returning TERMINATE directly or taking no action, you should try your best to optimize the function list. Only take no action if you really think the current list is optimal, as more actions will harm performance in future tasks.
143
- Even adding a general function that can substitute the assistants repeated suggestions of Python code with the same functionality could also be helpful.
143
+ Even adding a general function that can substitute the assistant's repeated suggestions of Python code with the same functionality could also be helpful.
144
144
  """
145
145
 
146
146
 
@@ -176,14 +176,15 @@ class AgentOptimizer:
176
176
  def __init__(
177
177
  self,
178
178
  max_actions_per_step: int,
179
- llm_config: Union[LLMConfig, dict[str, Any]],
179
+ llm_config: Optional[Union[LLMConfig, dict[str, Any]]] = None,
180
180
  optimizer_model: Optional[str] = "gpt-4-1106-preview",
181
181
  ):
182
182
  """(These APIs are experimental and may change in the future.)
183
183
 
184
184
  Args:
185
185
  max_actions_per_step (int): the maximum number of actions that the optimizer can take in one step.
186
- llm_config (LLMConfig or dict): llm inference configuration.
186
+ llm_config (LLMConfig or dict or None): llm inference configuration.
187
+ If None, the current LLMConfig from context is used.
187
188
  Please refer to [OpenAIWrapper.create](https://docs.ag2.ai/latest/docs/api-reference/autogen/OpenAIWrapper/#autogen.OpenAIWrapper.create) for available options.
188
189
  When using OpenAI or Azure OpenAI endpoints, please specify a non-empty 'model' either in `llm_config` or in each config of 'config_list' in `llm_config`.
189
190
  optimizer_model: the model used for the optimizer.
@@ -203,6 +204,8 @@ class AgentOptimizer:
203
204
  self._failure_functions_performance = []
204
205
  self._best_performance = -1
205
206
 
207
+ if llm_config is None:
208
+ llm_config = LLMConfig.current
206
209
  assert isinstance(llm_config, (dict, LLMConfig)), "llm_config must be a dict or LLMConfig"
207
210
  llm_config = copy.deepcopy(llm_config)
208
211
  self.llm_config = llm_config
@@ -77,13 +77,13 @@ from .chat import (
77
77
  initiate_chats,
78
78
  )
79
79
  from .group.context_variables import ContextVariables
80
+ from .group.guardrails import Guardrail
80
81
  from .group.handoffs import Handoffs
81
82
  from .utils import consolidate_chat_info, gather_usage_summary
82
83
 
83
84
  if TYPE_CHECKING:
84
85
  from .group.on_condition import OnCondition
85
86
  from .group.on_context_condition import OnContextCondition
86
-
87
87
  __all__ = ("ConversableAgent",)
88
88
 
89
89
  logger = logging.getLogger(__name__)
@@ -224,6 +224,8 @@ class ConversableAgent(LLMAgent):
224
224
  handoffs (Handoffs): Handoffs object containing all handoff transition conditions.
225
225
  """
226
226
  self.handoffs = handoffs if handoffs is not None else Handoffs()
227
+ self.input_guardrails: list["Guardrail"] = []
228
+ self.output_guardrails: list["Guardrail"] = []
227
229
 
228
230
  # we change code_execution_config below and we have to make sure we don't change the input
229
231
  # in case of UserProxyAgent, without this we could even change the default value {}
@@ -1471,7 +1473,11 @@ class ConversableAgent(LLMAgent):
1471
1473
  self.send(msg2send, recipient, request_reply=True, silent=silent)
1472
1474
 
1473
1475
  else: # No breaks in the for loop, so we have reached max turns
1474
- iostream.send(TerminationEvent(termination_reason=f"Maximum turns ({max_turns}) reached"))
1476
+ iostream.send(
1477
+ TerminationEvent(
1478
+ termination_reason=f"Maximum turns ({max_turns}) reached", sender=self, recipient=recipient
1479
+ )
1480
+ )
1475
1481
  else:
1476
1482
  self._prepare_chat(recipient, clear_history)
1477
1483
  if isinstance(message, Callable):
@@ -1651,7 +1657,11 @@ class ConversableAgent(LLMAgent):
1651
1657
  break
1652
1658
  await self.a_send(msg2send, recipient, request_reply=True, silent=silent)
1653
1659
  else: # No breaks in the for loop, so we have reached max turns
1654
- iostream.send(TerminationEvent(termination_reason=f"Maximum turns ({max_turns}) reached"))
1660
+ iostream.send(
1661
+ TerminationEvent(
1662
+ termination_reason=f"Maximum turns ({max_turns}) reached", sender=self, recipient=recipient
1663
+ )
1664
+ )
1655
1665
  else:
1656
1666
  self._prepare_chat(recipient, clear_history)
1657
1667
  if isinstance(message, Callable):
@@ -2587,7 +2597,7 @@ class ConversableAgent(LLMAgent):
2587
2597
  self._consecutive_auto_reply_counter[sender] = 0
2588
2598
 
2589
2599
  if termination_reason:
2590
- iostream.send(TerminationEvent(termination_reason=termination_reason))
2600
+ iostream.send(TerminationEvent(termination_reason=termination_reason, sender=self, recipient=sender))
2591
2601
 
2592
2602
  return True, None
2593
2603
 
@@ -2727,7 +2737,7 @@ class ConversableAgent(LLMAgent):
2727
2737
  self._consecutive_auto_reply_counter[sender] = 0
2728
2738
 
2729
2739
  if termination_reason:
2730
- iostream.send(TerminationEvent(termination_reason=termination_reason))
2740
+ iostream.send(TerminationEvent(termination_reason=termination_reason, sender=self, recipient=sender))
2731
2741
 
2732
2742
  return True, None
2733
2743
 
@@ -3994,6 +4004,42 @@ class ConversableAgent(LLMAgent):
3994
4004
  """
3995
4005
  self.handoffs.add_many(conditions)
3996
4006
 
4007
+ def register_input_guardrail(self, guardrail: "Guardrail") -> None:
4008
+ """
4009
+ Register a guardrail to be used for input validation.
4010
+
4011
+ Args:
4012
+ guardrail: The guardrail to register.
4013
+ """
4014
+ self.input_guardrails.append(guardrail)
4015
+
4016
+ def register_input_guardrails(self, guardrails: list["Guardrail"]) -> None:
4017
+ """
4018
+ Register multiple guardrails to be used for input validation.
4019
+
4020
+ Args:
4021
+ guardrails: List of guardrails to register.
4022
+ """
4023
+ self.input_guardrails.extend(guardrails)
4024
+
4025
+ def register_output_guardrail(self, guardrail: "Guardrail") -> None:
4026
+ """
4027
+ Register a guardrail to be used for output validation.
4028
+
4029
+ Args:
4030
+ guardrail: The guardrail to register.
4031
+ """
4032
+ self.output_guardrails.append(guardrail)
4033
+
4034
+ def register_output_guardrails(self, guardrails: list["Guardrail"]) -> None:
4035
+ """
4036
+ Register multiple guardrails to be used for output validation.
4037
+
4038
+ Args:
4039
+ guardrails: List of guardrails to register.
4040
+ """
4041
+ self.output_guardrails.extend(guardrails)
4042
+
3997
4043
 
3998
4044
  @export_module("autogen")
3999
4045
  def register_function(
@@ -137,13 +137,7 @@ def _run_oncontextconditions(
137
137
  if is_available and (
138
138
  on_condition.condition is None or on_condition.condition.evaluate(agent.context_variables)
139
139
  ):
140
- # Condition has been met, we'll set the Tool Executor's next target
141
- # attribute and that will be picked up on the next iteration when
142
- # _determine_next_agent is called
143
- for agent in agent._group_manager.groupchat.agents: # type: ignore[attr-defined]
144
- if isinstance(agent, GroupToolExecutor):
145
- agent.set_next_target(on_condition.target)
146
- break
140
+ on_condition.target.activate_target(agent._group_manager.groupchat) # type: ignore[attr-defined]
147
141
 
148
142
  transfer_name = on_condition.target.display_name()
149
143
 
@@ -212,6 +206,18 @@ def ensure_handoff_agents_in_group(agents: list["ConversableAgent"]) -> None:
212
206
  raise ValueError("Agent in after work target Hand-offs must be in the agents list")
213
207
 
214
208
 
209
+ def ensure_guardrail_agents_in_group(agents: list["ConversableAgent"]) -> None:
210
+ """Ensure the agents in handoffs are in the group chat."""
211
+ agent_names = [agent.name for agent in agents]
212
+ for agent in agents:
213
+ for guardrail in agent.input_guardrails + agent.output_guardrails:
214
+ if (
215
+ isinstance(guardrail.target, (AgentTarget, AgentNameTarget))
216
+ and guardrail.target.agent_name not in agent_names
217
+ ):
218
+ raise ValueError("Agent in guardrail's target must be in the agents list")
219
+
220
+
215
221
  def prepare_exclude_transit_messages(agents: list["ConversableAgent"]) -> None:
216
222
  """Preparation for excluding transit messages by getting all tool names and registering a hook on agents to remove those messages."""
217
223
  # get all transit functions names
@@ -254,6 +260,9 @@ def prepare_group_agents(
254
260
  # Ensure all agents in hand-off after-works are in the passed in agents list
255
261
  ensure_handoff_agents_in_group(agents)
256
262
 
263
+ # Ensure all agents in guardrails are in the passed in agents list
264
+ ensure_guardrail_agents_in_group(agents)
265
+
257
266
  # Create Tool Executor for the group
258
267
  tool_execution = GroupToolExecutor()
259
268
 
@@ -0,0 +1,171 @@
1
+ # Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ import json
6
+ import re
7
+ from abc import ABC, abstractmethod
8
+ from typing import TYPE_CHECKING, Any, Optional, Union
9
+
10
+ from pydantic import BaseModel, Field
11
+
12
+ from ...oai.client import OpenAIWrapper
13
+
14
+ if TYPE_CHECKING:
15
+ from ...llm_config import LLMConfig
16
+ from .targets.transition_target import TransitionTarget
17
+
18
+
19
+ class GuardrailResult(BaseModel):
20
+ """Represents the outcome of a guardrail check."""
21
+
22
+ activated: bool
23
+ justification: str = Field(default="No justification provided")
24
+
25
+ def __str__(self) -> str:
26
+ return f"Guardrail Result: {self.activated}\nJustification: {self.justification}"
27
+
28
+ @staticmethod
29
+ def parse(text: str) -> "GuardrailResult":
30
+ """Parses a JSON string into a GuardrailResult object.
31
+
32
+ Args:
33
+ text (str): The JSON string to parse.
34
+
35
+ Returns:
36
+ GuardrailResult: The parsed GuardrailResult object.
37
+ """
38
+ try:
39
+ data = json.loads(text)
40
+ return GuardrailResult(**data)
41
+ except (json.JSONDecodeError, ValueError) as e:
42
+ raise ValueError(f"Failed to parse GuardrailResult from text: {text}") from e
43
+
44
+
45
+ class Guardrail(ABC):
46
+ """Abstract base class for guardrails."""
47
+
48
+ def __init__(
49
+ self, name: str, condition: str, target: "TransitionTarget", activation_message: Optional[str] = None
50
+ ) -> None:
51
+ self.name = name
52
+ self.condition = condition
53
+ self.target = target
54
+ self.activation_message = (
55
+ activation_message if activation_message else f"Guardrail '{name}' has been activated."
56
+ )
57
+
58
+ @abstractmethod
59
+ def check(
60
+ self,
61
+ context: Union[str, list[dict[str, Any]]],
62
+ ) -> GuardrailResult:
63
+ """Checks the text against the guardrail and returns a GuardrailResult.
64
+
65
+ Args:
66
+ context (Union[str, list[dict[str, Any]]]): The context to check against the guardrail.
67
+
68
+ Returns:
69
+ GuardrailResult: The result of the guardrail check.
70
+ """
71
+ pass
72
+
73
+
74
+ class LLMGuardrail(Guardrail):
75
+ """Guardrail that uses an LLM to check the context."""
76
+
77
+ def __init__(
78
+ self,
79
+ name: str,
80
+ condition: str,
81
+ target: "TransitionTarget",
82
+ llm_config: "LLMConfig",
83
+ activation_message: Optional[str] = None,
84
+ ) -> None:
85
+ super().__init__(name, condition, target, activation_message)
86
+
87
+ if not llm_config:
88
+ raise ValueError("LLMConfig is required.")
89
+
90
+ self.llm_config = llm_config.deepcopy()
91
+ setattr(self.llm_config, "response_format", GuardrailResult)
92
+ self.client = OpenAIWrapper(**self.llm_config.model_dump())
93
+
94
+ self.check_prompt = f"""You are a guardrail that checks if a condition is met in the conversation you are given.
95
+ You will activate the guardrail only if the condition is met.
96
+
97
+ **Condition: {self.condition}**"""
98
+
99
+ def check(
100
+ self,
101
+ context: Union[str, list[dict[str, Any]]],
102
+ ) -> GuardrailResult:
103
+ """Checks the context against the guardrail using an LLM.
104
+
105
+ Args:
106
+ context (Union[str, list[dict[str, Any]]]): The context to check against the guardrail.
107
+
108
+ Returns:
109
+ GuardrailResult: The result of the guardrail check.
110
+ """
111
+ # Set the check prompt as the system message
112
+ check_messages = [{"role": "system", "content": self.check_prompt}]
113
+ # If context is a string, wrap it in a user message and append it
114
+ if isinstance(context, str):
115
+ check_messages.append({"role": "user", "content": context})
116
+ # If context is a list of messages, append them
117
+ elif isinstance(context, list):
118
+ check_messages.extend(context)
119
+ else:
120
+ raise ValueError("Context must be a string or a list of messages.")
121
+ # Call the LLM with the check messages
122
+ response = self.client.create(messages=check_messages)
123
+ return GuardrailResult.parse(response.choices[0].message.content) # type: ignore
124
+
125
+
126
+ class RegexGuardrail(Guardrail):
127
+ """Guardrail that checks the context against a regular expression."""
128
+
129
+ def __init__(
130
+ self,
131
+ name: str,
132
+ condition: str,
133
+ target: "TransitionTarget",
134
+ activation_message: Optional[str] = None,
135
+ ) -> None:
136
+ super().__init__(name, condition, target, activation_message)
137
+ # Compile the regular expression condition
138
+ try:
139
+ self.regex = re.compile(condition)
140
+ except re.error as e:
141
+ raise ValueError(f"Invalid regex pattern '{condition}': {str(e)}")
142
+
143
+ def check(
144
+ self,
145
+ context: Union[str, list[dict[str, Any]]],
146
+ ) -> GuardrailResult:
147
+ """Checks the context against the guardrail using a regular expression.
148
+
149
+ Args:
150
+ context (Union[str, list[dict[str, Any]]]): The context to check against the guardrail.
151
+
152
+ Returns:
153
+ GuardrailResult: The result of the guardrail check.
154
+ """
155
+ # Create a list of the messages to check
156
+ if isinstance(context, str):
157
+ messages = [context]
158
+ elif isinstance(context, list):
159
+ messages = [message.get("content", "") for message in context]
160
+ else:
161
+ raise ValueError("Context must be a string or a list of messages.")
162
+
163
+ # Check each message against the regex
164
+ for message in messages:
165
+ match = self.regex.search(message)
166
+ # If a match is found, activate the guardrail and return the result
167
+ if match:
168
+ activated = True
169
+ justification = f"Match found -> {match.group(0)}"
170
+ return GuardrailResult(activated=activated, justification=justification)
171
+ return GuardrailResult(activated=False, justification="No match found in the context.")
@@ -68,6 +68,16 @@ class TransitionTarget(BaseModel):
68
68
  """Create a wrapper agent for the target if needed."""
69
69
  raise NotImplementedError("Requires subclasses to implement.")
70
70
 
71
+ def activate_target(self, groupchat: "GroupChat") -> None:
72
+ """Activate the target in the groupchat, setting the next target for GroupToolExecutor.
73
+
74
+ The Tool Executor's next target attribute will be picked up on the next iteration when _determine_next_agent is called"""
75
+ for agent in groupchat.agents: # type: ignore[attr-defined]
76
+ # get the GroupToolExecutor agent
77
+ if type(agent).__name__ == "GroupToolExecutor":
78
+ agent.set_next_target(self) # type: ignore[attr-defined]
79
+ return
80
+
71
81
 
72
82
  class AgentTarget(TransitionTarget):
73
83
  """Target that represents a direct agent reference."""
@@ -1023,6 +1023,38 @@ class GroupChat:
1023
1023
  mentions[agent.name] = count
1024
1024
  return mentions
1025
1025
 
1026
+ def _run_input_guardrails(
1027
+ self,
1028
+ agent: "ConversableAgent",
1029
+ messages: Optional[list[dict[str, Any]]] = None,
1030
+ ) -> Optional[str]:
1031
+ """Run input guardrails for an agent before the reply is generated.
1032
+ Args:
1033
+ agent (ConversableAgent): The agent whose input guardrails to run.
1034
+ messages (Optional[list[dict[str, Any]]]): The messages to check against the guardrails.
1035
+ """
1036
+ for guardrail in agent.input_guardrails:
1037
+ guardrail_result = guardrail.check(context=messages)
1038
+
1039
+ if guardrail_result.activated:
1040
+ guardrail.target.activate_target(self)
1041
+ return f"{guardrail.activation_message}\nJustification: {guardrail_result.justification}"
1042
+ return None
1043
+
1044
+ def _run_output_guardrails(self, agent: "ConversableAgent", reply: str) -> None:
1045
+ """Run output guardrails for an agent after the reply is generated.
1046
+ Args:
1047
+ agent (ConversableAgent): The agent whose output guardrails to run.
1048
+ reply (str): The reply generated by the agent.
1049
+ """
1050
+ for guardrail in agent.output_guardrails:
1051
+ guardrail_result = guardrail.check(context=reply)
1052
+
1053
+ if guardrail_result.activated:
1054
+ guardrail.target.activate_target(self)
1055
+ return f"{guardrail.activation_message}\nJustification: {guardrail_result.justification}"
1056
+ return None
1057
+
1026
1058
 
1027
1059
  @export_module("autogen")
1028
1060
  class GroupChatManager(ConversableAgent):
@@ -1194,8 +1226,17 @@ class GroupChatManager(ConversableAgent):
1194
1226
  if not silent:
1195
1227
  iostream = IOStream.get_default()
1196
1228
  iostream.send(GroupChatRunChatEvent(speaker=speaker, silent=silent))
1197
- # let the speaker speak
1198
- reply = speaker.generate_reply(sender=self)
1229
+
1230
+ guardrails_activated = False
1231
+ guardrails_reply = groupchat._run_input_guardrails(speaker, speaker._oai_messages[self])
1232
+
1233
+ if guardrails_reply is not None:
1234
+ # if a guardrail has been activated, then the next target has been set and the guardrail reply will be sent
1235
+ guardrails_activated = True
1236
+ reply = guardrails_reply
1237
+ else:
1238
+ # let the speaker speak
1239
+ reply = speaker.generate_reply(sender=self)
1199
1240
  except KeyboardInterrupt:
1200
1241
  # let the admin agent speak if interrupted
1201
1242
  if groupchat.admin_name in groupchat.agent_names:
@@ -1215,6 +1256,15 @@ class GroupChatManager(ConversableAgent):
1215
1256
  termination_reason = "No reply generated"
1216
1257
  break
1217
1258
 
1259
+ if not guardrails_activated:
1260
+ # if the input guardrails were not activated, and the agent returned a reply
1261
+ guardrails_reply = groupchat._run_output_guardrails(speaker, reply)
1262
+
1263
+ if guardrails_reply is not None:
1264
+ # if a guardrail has been activated, then the next target has been set and the guardrail reply will be sent
1265
+ guardrails_activated = True
1266
+ reply = guardrails_reply
1267
+
1218
1268
  # check for "clear history" phrase in reply and activate clear history function if found
1219
1269
  if (
1220
1270
  groupchat.enable_clear_history
@@ -1233,7 +1283,11 @@ class GroupChatManager(ConversableAgent):
1233
1283
  a.previous_cache = None
1234
1284
 
1235
1285
  if termination_reason:
1236
- iostream.send(TerminationEvent(termination_reason=termination_reason))
1286
+ iostream.send(
1287
+ TerminationEvent(
1288
+ termination_reason=termination_reason, sender=self, recipient=speaker if speaker else None
1289
+ )
1290
+ )
1237
1291
 
1238
1292
  return True, None
1239
1293
 
@@ -1287,8 +1341,19 @@ class GroupChatManager(ConversableAgent):
1287
1341
  try:
1288
1342
  # select the next speaker
1289
1343
  speaker = await groupchat.a_select_speaker(speaker, self)
1290
- # let the speaker speak
1291
- reply = await speaker.a_generate_reply(sender=self)
1344
+ if not silent:
1345
+ iostream.send(GroupChatRunChatEvent(speaker=speaker, silent=silent))
1346
+
1347
+ guardrails_activated = False
1348
+ guardrails_reply = groupchat._run_input_guardrails(speaker, speaker._oai_messages[self])
1349
+
1350
+ if guardrails_reply is not None:
1351
+ # if a guardrail has been activated, then the next target has been set and the guardrail reply will be sent
1352
+ guardrails_activated = True
1353
+ reply = guardrails_reply
1354
+ else:
1355
+ # let the speaker speak
1356
+ reply = await speaker.a_generate_reply(sender=self)
1292
1357
  except KeyboardInterrupt:
1293
1358
  # let the admin agent speak if interrupted
1294
1359
  if groupchat.admin_name in groupchat.agent_names:
@@ -1308,6 +1373,24 @@ class GroupChatManager(ConversableAgent):
1308
1373
  termination_reason = "No reply generated"
1309
1374
  break
1310
1375
 
1376
+ if not guardrails_activated:
1377
+ # if the input guardrails were not activated, and the agent returned a reply
1378
+ guardrails_reply = groupchat._run_output_guardrails(speaker, reply)
1379
+
1380
+ if guardrails_reply is not None:
1381
+ # if a guardrail has been activated, then the next target has been set and the guardrail reply will be sent
1382
+ guardrails_activated = True
1383
+ reply = guardrails_reply
1384
+
1385
+ # check for "clear history" phrase in reply and activate clear history function if found
1386
+ if (
1387
+ groupchat.enable_clear_history
1388
+ and isinstance(reply, dict)
1389
+ and reply["content"]
1390
+ and "CLEAR HISTORY" in reply["content"].upper()
1391
+ ):
1392
+ reply["content"] = self.clear_agents_history(reply, groupchat)
1393
+
1311
1394
  # The speaker sends the message without requesting a reply
1312
1395
  await speaker.a_send(reply, self, request_reply=False, silent=silent)
1313
1396
  message = self.last_message(speaker)
@@ -1317,7 +1400,11 @@ class GroupChatManager(ConversableAgent):
1317
1400
  a.previous_cache = None
1318
1401
 
1319
1402
  if termination_reason:
1320
- iostream.send(TerminationEvent(termination_reason=termination_reason))
1403
+ iostream.send(
1404
+ TerminationEvent(
1405
+ termination_reason=termination_reason, sender=self, recipient=speaker if speaker else None
1406
+ )
1407
+ )
1321
1408
 
1322
1409
  return True, None
1323
1410
 
@@ -12,7 +12,9 @@ from ....tools.experimental import (
12
12
  BrowserUseTool,
13
13
  Crawl4AITool,
14
14
  DuckDuckGoSearchTool,
15
+ FirecrawlTool,
15
16
  PerplexitySearchTool,
17
+ SearxngSearchTool,
16
18
  TavilySearchTool,
17
19
  )
18
20
 
@@ -28,7 +30,9 @@ class WebSurferAgent(ConversableAgent):
28
30
  *,
29
31
  llm_config: Optional[Union[LLMConfig, dict[str, Any]]] = None,
30
32
  web_tool_llm_config: Optional[Union[LLMConfig, dict[str, Any]]] = None,
31
- web_tool: Literal["browser_use", "crawl4ai", "duckduckgo", "perplexity", "tavily"] = "browser_use",
33
+ web_tool: Literal[
34
+ "browser_use", "crawl4ai", "duckduckgo", "firecrawl", "perplexity", "tavily", "searxng"
35
+ ] = "browser_use",
32
36
  web_tool_kwargs: Optional[dict[str, Any]] = None,
33
37
  **kwargs: Any,
34
38
  ) -> None:
@@ -48,12 +52,16 @@ class WebSurferAgent(ConversableAgent):
48
52
  self.tool: Tool = BrowserUseTool(llm_config=web_tool_llm_config, **web_tool_kwargs) # type: ignore[arg-type]
49
53
  elif web_tool == "crawl4ai":
50
54
  self.tool = Crawl4AITool(llm_config=web_tool_llm_config, **web_tool_kwargs)
55
+ elif web_tool == "firecrawl":
56
+ self.tool = FirecrawlTool(llm_config=web_tool_llm_config, **web_tool_kwargs)
51
57
  elif web_tool == "perplexity":
52
58
  self.tool = PerplexitySearchTool(**web_tool_kwargs)
53
59
  elif web_tool == "tavily":
54
60
  self.tool = TavilySearchTool(llm_config=web_tool_llm_config, **web_tool_kwargs)
55
61
  elif web_tool == "duckduckgo":
56
62
  self.tool = DuckDuckGoSearchTool(**web_tool_kwargs)
63
+ elif web_tool == "searxng":
64
+ self.tool = SearxngSearchTool(**web_tool_kwargs)
57
65
  else:
58
66
  raise ValueError(f"Unsupported {web_tool=}.")
59
67
 
@@ -669,16 +669,22 @@ class TerminationEvent(BaseEvent):
669
669
  """When a workflow termination condition is met"""
670
670
 
671
671
  termination_reason: str
672
+ sender: str
673
+ recipient: Optional[str] = None
672
674
 
673
675
  def __init__(
674
676
  self,
675
677
  *,
676
678
  uuid: Optional[UUID] = None,
679
+ sender: Union["Agent", str],
680
+ recipient: Optional[Union["Agent", str]] = None,
677
681
  termination_reason: str,
678
682
  ):
679
683
  super().__init__(
680
684
  uuid=uuid,
681
685
  termination_reason=termination_reason,
686
+ sender=sender.name if hasattr(sender, "name") else sender,
687
+ recipient=recipient.name if hasattr(recipient, "name") else recipient if recipient else None,
682
688
  )
683
689
 
684
690
  def print(self, f: Optional[Callable[..., Any]] = None) -> None:
@@ -13,12 +13,15 @@ logger = logging.getLogger(__name__)
13
13
  def deprecated_by(
14
14
  new_class: type[BaseModel],
15
15
  param_mapping: dict[str, str] = None,
16
+ default_params: dict[str, any] = None,
16
17
  ) -> Callable[[type[BaseModel]], Callable[..., BaseModel]]:
17
18
  param_mapping = param_mapping or {}
19
+ default_params = default_params or {}
18
20
 
19
21
  def decorator(
20
22
  old_class: type[BaseModel],
21
23
  param_mapping: dict[str, str] = param_mapping,
24
+ default_params: dict[str, any] = default_params,
22
25
  ) -> Callable[..., BaseModel]:
23
26
  @wraps(old_class)
24
27
  def wrapper(*args, **kwargs) -> BaseModel:
@@ -28,6 +31,11 @@ def deprecated_by(
28
31
  # Translate old parameters to new parameters
29
32
  new_kwargs = {param_mapping.get(k, k): v for k, v in kwargs.items()}
30
33
 
34
+ # Add default parameters if not already present
35
+ for key, value in default_params.items():
36
+ if key not in new_kwargs:
37
+ new_kwargs[key] = value
38
+
31
39
  # Pass the translated parameters to the new class
32
40
  return new_class(*args, **new_kwargs)
33
41
 
@@ -0,0 +1,45 @@
1
+ # Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+ import asyncio
5
+ import os
6
+ import signal
7
+ from asyncio.subprocess import PIPE, Process, create_subprocess_exec
8
+ from contextlib import asynccontextmanager
9
+ from typing import AsyncGenerator, Dict, Optional
10
+
11
+
12
+ @asynccontextmanager
13
+ async def run_streamable_http_client(
14
+ *, mcp_server_path: str, env_vars: Optional[Dict[str, str]] = None, startup_wait_secs: float = 5.0
15
+ ) -> AsyncGenerator[Process, None]:
16
+ """
17
+ Async context manager to run a Python subprocess for streamable-http with custom env vars.
18
+
19
+ Args:
20
+ mcp_server_path: Path to the Python script to run.
21
+ env_vars: Environment variables to export to the subprocess.
22
+ startup_wait_secs: Time to wait for the server to start (in seconds).
23
+ Yields:
24
+ An asyncio.subprocess.Process object.
25
+ """
26
+ env = os.environ.copy()
27
+ if env_vars:
28
+ env.update(env_vars)
29
+
30
+ process = await create_subprocess_exec(
31
+ "python", mcp_server_path, "streamable-http", env=env, stdout=PIPE, stderr=PIPE
32
+ )
33
+
34
+ # Optional startup delay to let the server initialize
35
+ await asyncio.sleep(startup_wait_secs)
36
+
37
+ try:
38
+ yield process
39
+ finally:
40
+ if process.returncode is None:
41
+ process.send_signal(signal.SIGINT)
42
+ try:
43
+ await asyncio.wait_for(process.wait(), timeout=5.0)
44
+ except asyncio.TimeoutError:
45
+ process.kill()