ag2 0.9.3__tar.gz → 0.9.5__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.
- {ag2-0.9.3 → ag2-0.9.5}/PKG-INFO +1 -1
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_optimizer.py +6 -3
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/conversable_agent.py +51 -5
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/group_utils.py +16 -7
- ag2-0.9.5/autogen/agentchat/group/guardrails.py +171 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/targets/transition_target.py +10 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/groupchat.py +93 -6
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/realtime_swarm.py +2 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/websurfer/websurfer.py +9 -1
- {ag2-0.9.3 → ag2-0.9.5}/autogen/code_utils.py +8 -6
- {ag2-0.9.3 → ag2-0.9.5}/autogen/events/agent_events.py +6 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/events/helpers.py +8 -0
- ag2-0.9.5/autogen/mcp/helpers.py +45 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/mcp_proxy.py +2 -3
- {ag2-0.9.3 → ag2-0.9.5}/autogen/messages/agent_messages.py +1 -1
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/client.py +44 -1
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/gemini.py +39 -24
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/gemini_types.py +1 -1
- ag2-0.9.5/autogen/oai/openai_responses.py +426 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/__init__.py +4 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/browser_use/browser_use.py +4 -11
- ag2-0.9.5/autogen/tools/experimental/firecrawl/__init__.py +7 -0
- ag2-0.9.5/autogen/tools/experimental/firecrawl/firecrawl_tool.py +853 -0
- ag2-0.9.5/autogen/tools/experimental/searxng/__init__.py +7 -0
- ag2-0.9.5/autogen/tools/experimental/searxng/searxng_search.py +141 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/version.py +1 -1
- {ag2-0.9.3 → ag2-0.9.5}/templates/client_template/main.jinja2 +5 -2
- {ag2-0.9.3 → ag2-0.9.5}/templates/main.jinja2 +1 -1
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-31-WebSurferAgent/index.mdx +1 -1
- ag2-0.9.5/website/docs/user-guide/advanced-concepts/orchestration/group-chat/guardrails.mdx +365 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/introduction.mdx +3 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/openai.mdx +8 -7
- ag2-0.9.5/website/docs/user-guide/models/openai_responses.mdx +67 -0
- ag2-0.9.5/website/docs/user-guide/reference-tools/firecrawl.mdx +221 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/index.mdx +10 -0
- ag2-0.9.5/website/docs/user-guide/reference-tools/searxng-search.mdx +70 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mint-json-template.json.jinja +3 -1
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/mcp/client.mdx +106 -6
- {ag2-0.9.3 → ag2-0.9.5}/.coveragerc +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/Dockerfile +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/README.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/devcontainer.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/python-3.10/devcontainer.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/python-3.11/devcontainer.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/python-3.12/devcontainer.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/python-3.13/devcontainer.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.devcontainer/setup.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.gitattributes +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/ISSUE_TEMPLATE/general_issue.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/ISSUE_TEMPLATE.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/dependabot.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/build-docs.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/build-mkdocs.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/contrib-graph-rag-tests.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/contrib-llm-test.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/contrib-test.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/core-llm-test.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/core-test.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/deploy-website-mintlify.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/deploy-website.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/docs-check-broken-links.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/integration-test.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/lfs-check.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/mkdocs-check-broken-links.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/pr-checks.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/python-package.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/test-with-optional-deps.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.github/workflows/type-check.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.gitignore +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.muffet-excluded-links.txt +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/.pre-commit-config.yaml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/CITATION.cff +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/LICENSE +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/MAINTAINERS.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/NOTICE.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/OAI_CONFIG_LIST_sample +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/README.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/TRANSPARENCY_FAQS.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/announcements.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/_website/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/_website/generate_api_references.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/_website/generate_mkdocs.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/_website/notebook_processor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/_website/process_notebooks.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/_website/utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/assistant_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/chat.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/README.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/agent_eval.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/criterion.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/critic_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/quantifier_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/subcritic_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/agent_eval/task.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/agent_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/generate_images.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/teachability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/text_compressors.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/tools_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/transform_messages.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/transforms.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/transforms_util.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/capabilities/vision_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/agent_builder.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/captainagent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tool_retriever.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/README.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/data_analysis/calculate_correlation.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/data_analysis/calculate_skewness_and_kurtosis.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/data_analysis/detect_outlier_iqr.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/data_analysis/detect_outlier_zscore.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/data_analysis/explore_csv.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/data_analysis/shapiro_wilk_test.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/arxiv_download.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/arxiv_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/extract_pdf_image.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/extract_pdf_text.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/get_wikipedia_text.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/get_youtube_caption.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/image_qa.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/optical_character_recognition.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/perform_web_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/scrape_wikipedia_tables.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/transcribe_audio_file.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/information_retrieval/youtube_download.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/calculate_circle_area_from_diameter.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/calculate_day_of_the_week.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/calculate_fraction_sum.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/calculate_matrix_power.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/calculate_reflected_point.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/complex_numbers_product.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/compute_currency_conversion.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/count_distinct_permutations.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/evaluate_expression.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/find_continuity_point.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/fraction_to_mixed_numbers.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/modular_inverse_sum.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/simplify_mixed_numbers.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/sum_of_digit_factorials.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/math/sum_of_primes_below.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/requirements.txt +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/captainagent/tools/tool_description.tsv +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/gpt_assistant_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/document.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/falkor_graph_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/falkor_graph_rag_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/graph_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/graph_rag_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/neo4j_graph_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/neo4j_graph_rag_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/neo4j_native_graph_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/graph_rag/neo4j_native_graph_rag_capability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/img_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/llamaindex_conversable_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/llava_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/math_user_proxy_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/multimodal_conversable_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/qdrant_retrieve_user_proxy_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/rag/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/rag/chromadb_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/rag/llamaindex_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/rag/mongodb_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/rag/query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/retrieve_assistant_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/retrieve_user_proxy_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/society_of_mind_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/swarm_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/text_analyzer_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/base.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/chromadb.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/couchbase.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/mongodb.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/pgvectordb.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/qdrant.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/vectordb/utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/contrib/web_surfer.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/available_condition.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/context_condition.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/context_expression.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/context_str.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/context_variables.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/group_tool_executor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/handoffs.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/llm_condition.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/multi_agent_chat.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/on_condition.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/on_context_condition.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/patterns/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/patterns/auto.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/patterns/manual.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/patterns/pattern.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/patterns/random.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/patterns/round_robin.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/reply_result.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/speaker_selection_result.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/targets/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/targets/group_chat_target.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/targets/group_manager_target.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/group/targets/transition_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/audio_adapters/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/audio_adapters/twilio_audio_adapter.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/audio_adapters/websocket_audio_adapter.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/audio_observer.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/gemini/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/gemini/client.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/oai/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/oai/base_client.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/oai/rtc_client.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/oai/utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/clients/realtime_client.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/function_observer.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/realtime_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/realtime_events.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/realtime_observer.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime/experimental/websockets.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/realtime_agent/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/user_proxy_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agentchat/utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/contrib/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/contrib/time/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/contrib/time/time_reply_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/contrib/time/time_tool_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/deep_research/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/deep_research/deep_research.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/discord/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/discord/discord.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/chroma_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/docling_doc_ingest_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/document_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/document_conditions.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/document_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/inmemory_query_engine.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/parser_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/document_agent/url_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/reasoning/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/reasoning/reasoning_agent.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/slack/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/slack/slack.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/telegram/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/telegram/telegram.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/websurfer/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/wikipedia/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/agents/experimental/wikipedia/wikipedia.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/browser_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/abstract_cache_base.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/cache.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/cache_factory.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/cosmos_db_cache.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/disk_cache.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/in_memory_cache.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/cache/redis_cache.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/base.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/docker_commandline_code_executor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/factory.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/func_with_reqs.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/base.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/docker_jupyter_server.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/embedded_ipython_code_executor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/import_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/jupyter_client.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/jupyter_code_executor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/jupyter/local_jupyter_server.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/local_commandline_code_executor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/markdown_code_extractor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/coding/utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/doc_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/events/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/events/base_event.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/events/client_events.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/events/print_event.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/exception_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/extensions/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/_compat.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/core/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/core/build.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/core/model.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/dependencies/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/dependencies/model.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/dependencies/provider.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/library/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/library/model.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/py.typed +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/schema.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/use.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/fast_depends/utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/formatting_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/function_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/graph_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/import_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/crewai/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/crewai/crewai.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/interoperability.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/interoperable.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/langchain/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/langchain/langchain_chat_model_factory.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/langchain/langchain_tool.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/litellm/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/litellm/litellm_config_factory.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/pydantic_ai/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/pydantic_ai/pydantic_ai.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/interop/registry.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/base.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/console.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/processors/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/processors/base.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/processors/console_event_processor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/run_response.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/thread_io_stream.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/io/websockets.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/json_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/llm_config.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/logger/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/logger/base_logger.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/logger/file_logger.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/logger/logger_factory.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/logger/logger_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/logger/sqlite_logger.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/math_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/__main__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_client.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/fastapi_code_generator_helpers.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/operation_grouping.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/operation_renaming.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/patch_fastapi_code_generator.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/security.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/mcp/mcp_proxy/security_schema_visitor.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/messages/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/messages/base_message.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/messages/client_messages.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/messages/print_message.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/anthropic.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/bedrock.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/cerebras.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/client_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/cohere.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/groq.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/mistral.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/_models.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/chat_completion.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/chat_completion_audio.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/chat_completion_message.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/chat_completion_message_tool_call.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/chat_completion_token_logprob.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/oai_models/completion_usage.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/ollama.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/openai_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/oai/together.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/retrieve_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/runtime_logging.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/token_count_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/contrib/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/contrib/time/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/contrib/time/time.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/dependency_injection.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/browser_use/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/crawl4ai/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/crawl4ai/crawl4ai.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/deep_research/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/deep_research/deep_research.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/duckduckgo/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/duckduckgo/duckduckgo_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/authentication/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/authentication/credentials_hosted_provider.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/authentication/credentials_local_provider.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/authentication/credentials_provider.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/drive/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/drive/drive_functions.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/drive/toolkit.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/model.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google/toolkit_protocol.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google_search/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google_search/google_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/google_search/youtube_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/discord/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/discord/discord.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/slack/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/slack/slack.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/telegram/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/messageplatform/telegram/telegram.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/perplexity/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/perplexity/perplexity_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/reliable/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/reliable/reliable.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/tavily/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/tavily/tavily_search.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/web_search_preview/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/web_search_preview/web_search_preview.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/wikipedia/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/experimental/wikipedia/wikipedia.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/function_utils.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/tool.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/tools/toolkit.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/autogen/types.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/azure-pipelines.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/codecov.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/license_original/LICENSE-CC +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/license_original/LICENSE_original_MIT +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/pyproject.toml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/broken-links-check.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/build-setup-files.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/devcontainer/generate-devcontainers.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/devcontainer/generate-devcontainers.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/devcontainer/templates/devcontainer.json.jinja +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/docs_build.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/docs_build_mkdocs.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/docs_serve.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/docs_serve_mkdocs.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/integration-test.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/lint.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/pre-commit-build-setup-files.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/pre-commit-license-check.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/pre-commit-lint.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/pre-commit-mypy-run.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/show-coverage-report.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/test-core-llm.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/test-core-skip-llm.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/test-docs.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/test-skip-llm.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/scripts/test.sh +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/setup.jinja +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/setup_autogen.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/templates/config_template/config.jinja2 +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/.gitignore +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/README.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/blogs_and_user_stories_authors.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/.gitignore +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level2algebra.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level3algebra.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level4algebra.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-04-21-LLM-tuning-math/img/level5algebra.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-04-21-LLM-tuning-math/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-05-18-GPT-adaptive-humaneval/img/design.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-05-18-GPT-adaptive-humaneval/img/humaneval.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-05-18-GPT-adaptive-humaneval/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-06-28-MathChat/img/mathchatflow.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-06-28-MathChat/img/result.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-06-28-MathChat/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-07-14-Local-LLMs/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-10-18-RetrieveChat/img/autogen-rag.gif +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-10-18-RetrieveChat/img/retrievechat-arch.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-10-18-RetrieveChat/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-10-26-TeachableAgent/img/teachable-arch.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-10-26-TeachableAgent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-06-LMM-Agent/img/teaser.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-06-LMM-Agent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-09-EcoAssistant/img/chat.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-09-EcoAssistant/img/results.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-09-EcoAssistant/img/system.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-09-EcoAssistant/img/template-demo.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-09-EcoAssistant/img/template.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-09-EcoAssistant/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-13-OAI-assistants/img/teaser.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-13-OAI-assistants/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-20-AgentEval/img/agenteval-CQ.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-20-AgentEval/img/math-problems-plot.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-20-AgentEval/img/tasks-taxonomy.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-20-AgentEval/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-26-Agent-AutoBuild/img/agent_autobuild.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-11-26-Agent-AutoBuild/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-01-AutoGenStudio/img/autogenstudio_config.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-01-AutoGenStudio/img/autogenstudio_home.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-01-AutoGenStudio/img/autogenstudio_skills.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-01-AutoGenStudio/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-23-AgentOptimizer/img/agentoptimizer.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-23-AgentOptimizer/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2023-12-29-AgentDescriptions/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-01-23-Code-execution-in-docker/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-01-25-AutoGenBench/img/teaser.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-01-25-AutoGenBench/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-01-26-Custom-Models/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-02-AutoAnny/img/AutoAnnyLogo.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-02-AutoAnny/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-11-FSM-GroupChat/img/FSM_logic.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-11-FSM-GroupChat/img/FSM_of_multi-agents.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-11-FSM-GroupChat/img/teaser.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-11-FSM-GroupChat/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-29-StateFlow/img/alfworld.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-29-StateFlow/img/bash_result.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-29-StateFlow/img/intercode.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-29-StateFlow/img/sf_example_1.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-02-29-StateFlow/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/contributors.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/dalle_gpt4v.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/gaia.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/love.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-03-AutoGen-Update/img/teach.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-03-AutoGen-Update/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-11-AutoDefense/img/architecture.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-11-AutoDefense/img/defense-agency-design.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-11-AutoDefense/img/table-4agents.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-11-AutoDefense/img/table-agents.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-11-AutoDefense/img/table-compared-methods.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-03-11-AutoDefense/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-05-24-Agent/img/agents.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-05-24-Agent/img/leadership.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-05-24-Agent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-06-21-AgentEval/img/agenteval_ov_v3.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-06-21-AgentEval/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-06-24-AltModels-Classes/img/agentstogether.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-06-24-AltModels-Classes/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-07-25-AgentOps/img/autogen-integration.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-07-25-AgentOps/img/dashboard.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-07-25-AgentOps/img/flow.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-07-25-AgentOps/img/session-replay.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-07-25-AgentOps/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-15-CaptainAgent/img/build.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-15-CaptainAgent/img/chat.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-15-CaptainAgent/img/overall.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-15-CaptainAgent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-17-Swarm/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/probing_flow.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/prompt_leakage_report.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/prompt_leakage_social_img.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/img/prompt_test_chat.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-11-27-Prompt-Leakage-Probing/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-02-ReasoningAgent2/img/reasoningagent_1.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-02-ReasoningAgent2/img/reasoningagent_2.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-02-ReasoningAgent2/img/tree-of-thoughts.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-02-ReasoningAgent2/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-06-FalkorDB-Structured/img/falkordb.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-06-FalkorDB-Structured/img/tripplanner.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-06-FalkorDB-Structured/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-20-RealtimeAgent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-20-Reasoning-Update/img/mcts_example.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-20-Reasoning-Update/img/reasoningagent_1.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-20-Reasoning-Update/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2024-12-20-Tools-interoperability/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-07-Tools-Dependency-Injection/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-08-RealtimeAgent-over-websocket/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-09-RealtimeAgent-over-WebRTC/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-10-WebSockets/img/structured_messages_with_websockets.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-10-WebSockets/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-22-Tools-ChatContext-Dependency-Injection/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-29-RealtimeAgent-with-gemini/img/RealtimeAgent_gemini.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-29-RealtimeAgent-with-gemini/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-01-31-Websurfing-Tools/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_discord_msg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_slack_finalmsg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_slack_msg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-02-05-Communication-Agents/img/commsagents_telegram_msg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-02-05-Communication-Agents/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-02-13-DeepResearchAgent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-04-16-Reasoning/img/cognition.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-04-16-Reasoning/img/iter.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-04-16-Reasoning/img/partner.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-04-16-Reasoning/img/threads.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-04-16-Reasoning/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-04-28-0.9-Release-Announcement/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/AG2-CopilotKit.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/ag2-copilotkit-architecture.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/quick-start-1.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/img/quick-start-2.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-05-07-AG2-Copilot-Integration/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image1.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image2.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image3.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/img/image4.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/_blogs/2025-06-12-ReAct-Loops-in-GroupChat/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/community-talks/2025-04-10-NOVA/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/Migration-Guide.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/Research.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/building/creating-a-tool.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/building/creating-an-agent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/contributing.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/documentation.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/file-bug-report.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/how-ag2-works/assets/generate-reply.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/how-ag2-works/assets/initiate-chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/how-ag2-works/generate-reply.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/how-ag2-works/hooks.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/how-ag2-works/initiate-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/how-ag2-works/overview.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/maintainer.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/pre-commit.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/setup-development-environment.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/contributor-guide/tests.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/agentops.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/azure_cosmos_db.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/composio.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/databricks.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/img/ecosystem-databricks.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/img/ecosystem-fabric.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/img/ecosystem-llamaindex.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/img/ecosystem-memgpt.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/img/ecosystem-ollama.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/img/ecosystem-promptflow.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/llamaindex.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/mem0.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/memgpt.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/microsoft-fabric.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/ollama.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/pgvector.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/portkey.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/ecosystem/promptflow.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/faq/FAQ.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/home/quickstart.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/installation/Installation.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/installation/Optional-Dependencies.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/quick-start.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/.gitignore +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/community-gallery/community-gallery.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/notebooks/Notebooks.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/assets/game-design-page.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/assets/game-designed.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/assets/travel-planning-falkordb.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/assets/travel-planning-itinerary.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/assets/travel-planning-overview.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/customer-service.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/game-design.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/use-cases/use-cases/travel-planning.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/code-execution-in-conversation.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/code-executor-docker.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/code-executor-no-docker.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/code-executor-stock-chart.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/group-chat-fsm.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/group-chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/nested-chats.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/sequential-two-agent-chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-01.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-02.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-03.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/swarm-enhanced-04.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/assets/two-agent-chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/code-execution.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/ending-a-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/groupchat/custom-group-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/groupchat/groupchat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/groupchat/resuming-group-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/groupchat/tools.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/llm-configuration-deep-dive.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/nested-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/assets/nested-chats.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/assets/sequential-two-agent-chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/ending-a-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/agent-tools-functions.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/context-variables.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/handoffs.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/group-chat/patterns.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/group-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/nested-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/orchestrations.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/sequential-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/swarm/deprecation.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestration/two-agent-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/orchestrations.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/context_aware_routing.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/context_aware_routing_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/escalation.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/escalation_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/feedback_loop.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/feedback_loop_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/hierarchical.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/hierarchical_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/organic.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/organic_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/pipeline.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/pipeline_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/redundant.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/redundant_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/star.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/star_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/triage_tasks.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/assets/triage_tasks_flow.jpeg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/context_aware_routing.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/escalation.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/feedback_loop.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/hierarchical.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/organic.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/overview.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/pipeline.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/redundant.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/star.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/pattern-cookbook/triage_with_tasks.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/rag.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/realtime-agent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/realtime-agent/twilio.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/realtime-agent/webrtc.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/realtime-agent/websocket.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/sequential-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/basics.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/controlling-use.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/interop/crewai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/interop/langchain.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/interop/pydanticai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/mcp/client.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/tools/tools-with-secrets.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/advanced-concepts/two-agent-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/assets/human-in-the-loop-example.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/assets/overview-workflow.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/conversable-agent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/human-in-the-loop.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/installing-ag2.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/introducing-group-chat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/introducing-swarm-orchestration.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/introducing-tools.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/llm-configuration.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/overview.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/basic-concepts/structured-outputs.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/getting-started/Getting-Started.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/amazon-bedrock.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/anthropic.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/assets/ag2-agentchat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/assets/chat-example.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/assets/create-gcp-svc.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/assets/gemini-coding-chart.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/cerebras.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/cohere.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/deepseek-v3.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/google-gemini.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/google-vertexai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/groq.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/litellm-proxy-server/azure.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/litellm-proxy-server/installation.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/litellm-proxy-server/openai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/litellm-proxy-server/watsonx.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/lm-studio.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/mistralai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/ollama.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/togetherai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/models/vLLM.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/commsagents_discordoutput.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/commsagents_tools.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/commsplatforms_discord_sentmsg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/commsplatforms_slack_sentmsg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/commsplatforms_telegram_sentmsg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/docagent_tests_story1.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/docagent_tests_story2.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/assets/websurferagent_animated.gif +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/captainagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/communication-platforms/discordagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/communication-platforms/overview.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/communication-platforms/slackagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/communication-platforms/telegramagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/deepresearchagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/docagent-performance.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/docagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/reasoningagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/websurferagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-agents/wikipediaagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/browser-use.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/communication-platforms/discord.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/communication-platforms/slack.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/communication-platforms/telegram.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/crawl4ai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/deep-research.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/google-api/google-drive.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/google-api/google-search.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/google-api/youtube-search.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/perplexity-search.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-guide/reference-tools/wikipedia-search.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-02-11-NOVA/img/nexla_ag2.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-02-11-NOVA/img/nova_architecture.webp +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-02-11-NOVA/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/01.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/02.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/banner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/img/profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-03-Fortune-500-RAG-Chatbot/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-04-AgentWeb/img/01.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-04-AgentWeb/img/banner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-04-AgentWeb/img/profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-04-AgentWeb/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-11-Productionizing-OSS-Agents/img/banner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-11-Productionizing-OSS-Agents/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/img/banner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/img/boris_profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/img/flow-chart.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/img/francisco_profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/img/inigo_profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/img/james_profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-15-CMBAgent/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/img/01.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/img/banner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/img/profile.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docs/user-stories/2025-04-30-Cegid-Pulse-OS/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/docusaurus.config.js +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/generate_api_references.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/logo/ag2-white.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/logo/ag2.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/logo/favicon.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mako_templates/text.mako +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mint-app-gallery-deps.js +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mint-script.js +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mint-style.css +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/.gitignore +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/README.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/create_api_docs.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/data/gallery_items.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/data/people.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/docs/.gitignore +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/docs/index.md +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/docs/javascripts/extra.js +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/docs/stylesheets/extra.css +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/docs.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/docs_src/__init__.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/expand_markdown.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/generate_mkdocs.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/includes/.gitkeep +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/mkdocs.yml +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/404.html +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/home.html +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/blue-bg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/bot-left-corner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/bot-right-corner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/button-shine.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/city-horizon.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/cloud.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/conversation.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/green-bg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/human.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/intuitive.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/purple-bg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/sun.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/top-left-corner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/top-right-corner.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/images/yellow-bg.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/overrides/main.html +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/templates/redirect.html +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/mkdocs/update_releases.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/package-lock.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/package.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/process_notebooks.py +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/1_service_running.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/2_incoming_call.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/3_request_for_flight_cancellation.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/4_flight_number_name.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/5_refund_policy.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/6_flight_refunded.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/realtime_agent_swarm.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/twilio_endpoint_config.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/twilio_phone_numbers.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/webrtc_chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/webrtc_communication_diagram.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/webrtc_connection_diagram.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/websocket_chat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/img/websocket_communication_diagram.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/twilio.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/webrtc.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/advanced-concepts/realtime-agent/websocket.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/components/ClientSideComponent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/components/GalleryPage.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/data/GalleryItems.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/interop/crewai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/interop/langchain.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/interop/pydanticai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/conversableagentchat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/groupchat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/groupchatcustomfsm.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/groupchatcustomfunc.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/humanintheloop.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/humanintheloop_financial.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/nestedchat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/sequentialchat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/structured_output.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/swarm.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/swarmgroupchat.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/toolregister.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/python-examples/websurferagent.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/reference-agents/deep-research.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/reference-agents/img/DeepResearchAgent.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/reference-tools/browser-use.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/reference-tools/crawl4ai.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/reference-tools/deep-research.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/reference-tools/google-drive.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/snippets/utils/runmethodhelp.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/.nojekyll +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/ag.ico +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/ag.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/ag2.ico +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/ag2.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/ag2.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/auto.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/autogen.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/autogen_agentchat.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/autogen_app.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/autogen_app.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/chat_example.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/conv.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/conv_2.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/cover.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/create_gcp_svc.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/ecosystem-composio.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/extend.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/fast.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/favicon-dark.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/favicon.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/flaml.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/flaml_logo.ico +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/flaml_logo_fill.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/TensionCode.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/agent-e.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/autotx.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/composio-autogen.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/default.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/robot.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/webagent.jpg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/gallery/x-force-ide-ui.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/homepage-hero-background-large.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/homepage-hero-background.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/logo.svg +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/static/img/love.png +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-08-26/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-09-23/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-09-30/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-10-14/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-10-15/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-11-04/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-11-11/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-11-12/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-11-18/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-11-25/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-11-28/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-12-12/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-12-19/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2024-12-19-special_talk/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2025-01-16/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/2025-01-23/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/talks/future_talks/index.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/captainagent/_category_.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/captainagent/agent_library.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/captainagent/configurations.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/captainagent/tool_library.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/handling_long_contexts/_category_.json +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/handling_long_contexts/compressing_text_w_llmligua.mdx +0 -0
- {ag2-0.9.3 → ag2-0.9.5}/website/user-guide/handling_long_contexts/intro_to_transform_messages.mdx +0 -0
{ag2-0.9.3 → ag2-0.9.5}/PKG-INFO
RENAMED
|
@@ -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 assistant
|
|
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(
|
|
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(
|
|
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
|
-
#
|
|
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
|
-
|
|
1198
|
-
|
|
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(
|
|
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
|
-
|
|
1291
|
-
|
|
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(
|
|
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[
|
|
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
|
|
|
@@ -72,18 +72,20 @@ def content_str(content: Union[str, list[Union[UserMessageTextContentPart, UserM
|
|
|
72
72
|
if not isinstance(content, list):
|
|
73
73
|
raise TypeError(f"content must be None, str, or list, but got {type(content)}")
|
|
74
74
|
|
|
75
|
-
rst =
|
|
75
|
+
rst = []
|
|
76
76
|
for item in content:
|
|
77
77
|
if not isinstance(item, dict):
|
|
78
78
|
raise TypeError("Wrong content format: every element should be dict if the content is a list.")
|
|
79
79
|
assert "type" in item, "Wrong content format. Missing 'type' key in content's dict."
|
|
80
|
-
if item["type"]
|
|
81
|
-
rst
|
|
82
|
-
elif item["type"]
|
|
83
|
-
rst
|
|
80
|
+
if item["type"] in ["text", "input_text"]:
|
|
81
|
+
rst.append(item["text"])
|
|
82
|
+
elif item["type"] in ["image_url", "input_image"]:
|
|
83
|
+
rst.append("<image>")
|
|
84
|
+
elif item["type"] in ["function", "tool_call", "tool_calls"]:
|
|
85
|
+
rst.append("<function>" if "name" not in item else f"<function: {item['name']}>")
|
|
84
86
|
else:
|
|
85
87
|
raise ValueError(f"Wrong content format: unknown type {item['type']} within the content")
|
|
86
|
-
return rst
|
|
88
|
+
return "\n".join(rst)
|
|
87
89
|
|
|
88
90
|
|
|
89
91
|
def infer_lang(code: str) -> str:
|
|
@@ -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
|
|