[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ag2ai--ag2":3,"tool-ag2ai--ag2":62},[4,18,26,36,46,54],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,2,"2026-04-17T11:29:14",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,45],"插件",{"id":47,"name":48,"github_repo":49,"description_zh":50,"stars":51,"difficulty_score":32,"last_commit_at":52,"category_tags":53,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":55,"name":56,"github_repo":57,"description_zh":58,"stars":59,"difficulty_score":32,"last_commit_at":60,"category_tags":61,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[45,13,15,14],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":116,"forks":117,"last_commit_at":118,"license":119,"difficulty_score":32,"env_os":120,"env_gpu":121,"env_ram":121,"env_deps":122,"category_tags":128,"github_topics":129,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":145,"updated_at":146,"faqs":147,"releases":178},8556,"ag2ai\u002Fag2","ag2","AG2 (formerly AutoGen): The Open-Source AgentOS.Join us at: https:\u002F\u002Fdiscord.gg\u002FsNGSwQME3x","AG2（前身为 AutoGen）是一款开源的 AI 智能体操作系统，旨在简化多智能体协作应用的开发与研究。它核心解决了让多个 AI 智能体高效沟通、自主协作以解决复杂任务的问题，支持从简单的对话交互到涉及代码执行、工具调用的自动化工作流。\n\nAG2 特别适合开发者、研究人员以及希望构建高级 AI 应用的技术团队使用。通过它，用户可以轻松编排多个智能体，让它们像团队成员一样分工合作：有的负责规划，有的负责写代码，有的负责审查结果。其独特的技术亮点包括灵活的“人机协同”模式，允许人类在关键节点介入决策；支持接入多种大语言模型（LLM）；以及提供丰富的预设对话模式，能够模拟现实中的协作场景。\n\n作为一个完全开源的项目，AG2 正朝着 1.0 版本稳步演进，致力于成为构建下一代自主 AI 系统的基石。无论你是想探索多智能体前沿研究，还是希望快速落地企业级自动化方案，AG2 都提供了强大而灵活的框架支持，帮助你将创意转化为现实。","\u003Ca name=\"readme-top\">\u003C\u002Fa>\n\n\u003Cp align=\"center\">\n  \u003C!-- The image URL points to the GitHub-hosted content, ensuring it displays correctly on the PyPI website.-->\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fag2ai\u002Fag2\u002F27b37494a6f72b1f8050f6bd7be9a7ff232cf749\u002Fwebsite\u002Fstatic\u002Fimg\u002Fag2.svg\" width=\"150\" title=\"hover text\">\n\n  \u003Cbr>\n  \u003Cbr>\n\n  \u003Ca href=\"https:\u002F\u002Fwww.pepy.tech\u002Fprojects\u002Fag2\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fag2ai_ag2_readme_f321d2a9ccb9.png\" alt=\"Downloads\"\u002F>\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fautogen\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fag2?label=PyPI&color=green\">\n  \u003C\u002Fa>\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fag2.svg?label=\">\n\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Factions\u002Fworkflows\u002Fpython-package.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Factions\u002Fworkflows\u002Fpython-package.yml\u002Fbadge.svg\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FpAbnFJrkgZ\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1153072414184452236?logo=discord&style=flat\">\n  \u003C\u002Fa>\n\n  \u003Cbr>\n\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fag2oss\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Fcloudposse.svg?style=social&label=Follow%20%40ag2ai\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdocs.ag2.ai\u002F\">📚 Documentation\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fbuild-with-ag2\">💡 Examples\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fcontributor-guide\u002Fcontributing\">🤝 Contributing\u003C\u002Fa> |\n  \u003Ca href=\"#related-papers\">📝 Cite paper\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FpAbnFJrkgZ\">💬 Join Discord\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nAG2 was evolved from AutoGen. Fully open-sourced. We invite collaborators from all organizations to contribute.\n\u003C\u002Fp>\n\n> [!IMPORTANT]\n> **AG2 is on the path to v1.0.** The current framework will be tidied up through deprecations over the next few minor versions and moved to maintenance mode. The beta framework (`autogen.beta`) will become the official version of AG2 at v1.0.\n>\n> [Read the full release roadmap →](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Frelease-roadmap\u002F)\n\n# AG2: Open-Source AgentOS for AI Agents\n\nAG2 (formerly AutoGen) is an open-source programming framework for building AI agents and facilitating cooperation among multiple agents to solve tasks. AG2 aims to streamline the development and research of agentic AI. It offers features such as agents capable of interacting with each other, facilitates the use of various large language models (LLMs) and tool use support, autonomous and human-in-the-loop workflows, and multi-agent conversation patterns.\n\nThe project is currently maintained by a [dynamic group of volunteers](MAINTAINERS.md) from several organizations. Contact project administrators Chi Wang and Qingyun Wu via [support@ag2.ai](mailto:support@ag2.ai) if you are interested in becoming a maintainer.\n\n## Table of contents\n\n- [AG2: Open-Source AgentOS for AI Agents](#ag2-open-source-agentos-for-ai-agents)\n  - [Table of contents](#table-of-contents)\n  - [Getting started](#getting-started)\n    - [Installation](#installation)\n    - [Setup your API keys](#setup-your-api-keys)\n    - [Run your first agent](#run-your-first-agent)\n  - [Example applications](#example-applications)\n  - [Introduction of different agent concepts](#introduction-of-different-agent-concepts)\n    - [Conversable agent](#conversable-agent)\n    - [Orchestrating Multiple Agents](#orchestrating-multiple-agents)\n    - [Human in the Loop](#human-in-the-loop)\n    - [Tools](#tools)\n    - [Advanced agentic design patterns](#advanced-agentic-design-patterns)\n  - [Announcements](#announcements)\n  - [Code style and linting](#code-style-and-linting)\n  - [Related papers](#related-papers)\n  - [Contributors Wall](#contributors-wall)\n  - [Cite the project](#cite-the-project)\n  - [License](#license)\n\n## Getting started\n\nFor a step-by-step walk through of AG2 concepts and code, see [Basic Concepts](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fbasic-concepts\u002Finstalling-ag2\u002F) in our documentation.\n\n### Installation\n\nAG2 requires **Python version >= 3.10, \u003C 3.14**. AG2 is available via `ag2` (or its alias `autogen`) on PyPI.\n\n**Windows\u002FLinux:**\n```bash\npip install ag2[openai]\n```\n\n**Mac:**\n```bash\npip install 'ag2[openai]'\n```\n\nMinimal dependencies are installed by default. You can install extra options based on the features you need.\n\n### Setup your API keys\n\nTo keep your LLM dependencies neat and avoid accidentally checking in code with your API key, we recommend storing your keys in a configuration file.\n\nIn our examples, we use a file named **`OAI_CONFIG_LIST`** to store API keys. You can choose any filename, but make sure to add it to `.gitignore` so it will not be committed to source control.\n\nYou can use the following content as a template:\n\n```json\n[\n  {\n    \"model\": \"gpt-5\",\n    \"api_key\": \"\u003Cyour OpenAI API key here>\"\n  }\n]\n```\n\n### Run your first agent\n\nCreate a script or a Jupyter Notebook and run your first agent.\n\n```python\nfrom autogen import AssistantAgent, UserProxyAgent, LLMConfig\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\nassistant = AssistantAgent(\"assistant\", llm_config=llm_config)\n\nuser_proxy = UserProxyAgent(\"user_proxy\", code_execution_config={\"work_dir\": \"coding\", \"use_docker\": False})\n\nuser_proxy.run(assistant, message=\"Summarize the main differences between Python lists and tuples.\").process()\n```\n\n## Example applications\n\nWe maintain a dedicated repository with a wide range of applications to help you get started with various use cases or check out our collection of jupyter notebooks as a starting point.\n\n- [Build with AG2](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fbuild-with-ag2)\n- [Jupyter Notebooks](notebook)\n\n## Introduction of different agent concepts\n\nWe have several agent concepts in AG2 to help you build your AI agents. We introduce the most common ones here.\n\n- **Conversable Agent**: Agents that are able to send messages, receive messages and generate replies using GenAI models, non-GenAI tools, or human inputs.\n- **Human in the loop**: Add human input to the conversation\n- **Orchestrating multiple agents**: Users can orchestrate multiple agents with built-in conversation patterns such as swarms, group chats, nested chats, sequential chats or customize the orchestration by registering custom reply methods.\n- **Tools**: Programs that can be registered, invoked and executed by agents\n- **Advanced Concepts**: AG2 supports more concepts such as structured outputs, rag, code execution, etc.\n\n### Conversable agent\n\nThe [ConversableAgent](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fapi-reference\u002Fautogen\u002FConversableAgent) is the fundamental building block of AG2, designed to enable seamless communication between AI entities. This core agent type handles message exchange and response generation, serving as the base class for all agents in the framework.\n\nLet's begin with a simple example where two agents collaborate:\n- A **coder agent** that writes Python code.\n- A **reviewer agent** that critiques the code without rewriting it.\n\n```python\nimport logging\nfrom autogen import ConversableAgent, LLMConfig\n\n# Configure logging\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\n# Load LLM configuration\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# Define agents\ncoder = ConversableAgent(\n    name=\"coder\",\n    system_message=\"You are a Python developer. Write short Python scripts.\",\n    llm_config=llm_config,\n)\n\nreviewer = ConversableAgent(\n    name=\"reviewer\",\n    system_message=\"You are a code reviewer. Analyze provided code and suggest improvements. \"\n                   \"Do not generate code, only suggest improvements.\",\n    llm_config=llm_config,\n)\n\n# Start a conversation\nresponse = reviewer.run(\n            recipient=coder,\n            message=\"Write a Python function that computes Fibonacci numbers.\",\n            max_turns=10\n        )\n\nresponse.process()\n\nlogger.info(\"Final output:\\n%s\", response.summary)\n```\n\n---\n### Orchestrating Multiple Agents\n\nAG2 enables sophisticated multi-agent collaboration through flexible orchestration patterns, allowing you to create dynamic systems where specialized agents work together to solve complex problems.\n\nHere’s how to build a team of **teacher**, **lesson planner**, and **reviewer** agents working together to design a lesson plan:\n\n```python\nimport logging\nfrom autogen import ConversableAgent, LLMConfig\nfrom autogen.agentchat import run_group_chat\nfrom autogen.agentchat.group.patterns import AutoPattern\n\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# Define lesson planner and reviewer\nplanner_message = \"You are a classroom lesson planner. Given a topic, write a lesson plan for a fourth grade class.\"\nreviewer_message = \"You are a classroom lesson reviewer. Compare the plan to the curriculum and suggest up to 3 improvements.\"\n\nlesson_planner = ConversableAgent(\n    name=\"planner_agent\",\n    system_message=planner_message,\n    description=\"Creates or revises lesson plans.\",\n    llm_config=llm_config,\n)\n\nlesson_reviewer = ConversableAgent(\n    name=\"reviewer_agent\",\n    system_message=reviewer_message,\n    description=\"Provides one round of feedback to lesson plans.\",\n    llm_config=llm_config,\n)\n\nteacher_message = \"You are a classroom teacher. You decide topics and collaborate with planner and reviewer to finalize lesson plans. When satisfied, output DONE!\"\n\nteacher = ConversableAgent(\n    name=\"teacher_agent\",\n    system_message=teacher_message,\n    is_termination_msg=lambda x: \"DONE!\" in (x.get(\"content\", \"\") or \"\").upper(),\n    llm_config=llm_config,\n)\n\nauto_selection = AutoPattern(\n    agents=[teacher, lesson_planner, lesson_reviewer],\n    initial_agent=lesson_planner,\n    group_manager_args={\"name\": \"group_manager\", \"llm_config\": llm_config},\n)\n\nresponse = run_group_chat(\n    pattern=auto_selection,\n    messages=\"Let's introduce our kids to the solar system.\",\n    max_rounds=20,\n)\n\nresponse.process()\n\nlogger.info(\"Final output:\\n%s\", response.summary)\n```\n\n---\n\n### Human in the Loop\n\nHuman oversight is often essential for validating or guiding AI outputs.\nAG2 provides the `UserProxyAgent` for seamless integration of human feedback.\n\nHere we extend the **teacher–planner–reviewer** example by introducing a **human agent** who validates the final lesson:\n\n```python\nimport logging\nfrom autogen import ConversableAgent, LLMConfig, UserProxyAgent\nfrom autogen.agentchat import run_group_chat\nfrom autogen.agentchat.group.patterns import AutoPattern\n\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# Same agents as before, but now the human validator will pass to the planner who will check for \"APPROVED\" and terminate\nplanner_message = \"You are a classroom lesson planner. Given a topic, write a lesson plan for a fourth grade class.\"\nreviewer_message = \"You are a classroom lesson reviewer. Compare the plan to the curriculum and suggest up to 3 improvements.\"\nteacher_message = \"You are an experienced classroom teacher. You don't prepare plans, you provide simple guidance to the planner to prepare a lesson plan on the key topic.\"\n\nlesson_planner = ConversableAgent(\n    name=\"planner_agent\",\n    system_message=planner_message,\n    description=\"Creates or revises lesson plans before having them reviewed.\",\n    is_termination_msg=lambda x: \"APPROVED\" in (x.get(\"content\", \"\") or \"\").upper(),\n    human_input_mode=\"NEVER\",\n    llm_config=llm_config,\n)\n\nlesson_reviewer = ConversableAgent(\n    name=\"reviewer_agent\",\n    system_message=reviewer_message,\n    description=\"Provides one round of feedback to lesson plans back to the lesson planner before requiring the human validator.\",\n    llm_config=llm_config,\n)\n\nteacher = ConversableAgent(\n    name=\"teacher_agent\",\n    system_message=teacher_message,\n    description=\"Provides guidance on the topic and content, if required.\",\n    llm_config=llm_config,\n)\n\nhuman_validator = UserProxyAgent(\n    name=\"human_validator\",\n    system_message=\"You are a human educator who provides final approval for lesson plans.\",\n    description=\"Evaluates the proposed lesson plan and either approves it or requests revisions, before returning to the planner.\",\n)\n\nauto_selection = AutoPattern(\n    agents=[teacher, lesson_planner, lesson_reviewer],\n    initial_agent=teacher,\n    user_agent=human_validator,\n    group_manager_args={\"name\": \"group_manager\", \"llm_config\": llm_config},\n)\n\nresponse = run_group_chat(\n    pattern=auto_selection,\n    messages=\"Let's introduce our kids to the solar system.\",\n    max_rounds=20,\n)\n\nresponse.process()\n\nlogger.info(\"Final output:\\n%s\", response.summary)\n```\n\n---\n\n### Tools\n\nAgents gain significant utility through **tools**, which extend their capabilities with external data, APIs, or functions.\n\n```python\nimport logging\nfrom datetime import datetime\nfrom typing import Annotated\nfrom autogen import ConversableAgent, register_function, LLMConfig\n\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# Tool: returns weekday for a given date\ndef get_weekday(date_string: Annotated[str, \"Format: YYYY-MM-DD\"]) -> str:\n    date = datetime.strptime(date_string, \"%Y-%m-%d\")\n    return date.strftime(\"%A\")\n\ndate_agent = ConversableAgent(\n    name=\"date_agent\",\n    system_message=\"You find the day of the week for a given date.\",\n    llm_config=llm_config,\n)\n\nexecutor_agent = ConversableAgent(\n    name=\"executor_agent\",\n    human_input_mode=\"NEVER\",\n    llm_config=llm_config,\n)\n\n# Register tool\nregister_function(\n    get_weekday,\n    caller=date_agent,\n    executor=executor_agent,\n    description=\"Get the day of the week for a given date\",\n)\n\n# Use tool in chat\nchat_result = executor_agent.initiate_chat(\n    recipient=date_agent,\n    message=\"I was born on 1995-03-25, what day was it?\",\n    max_turns=2,\n)\n\nlogger.info(\"Final output:\\n%s\", chat_result.chat_history[-1][\"content\"])\n```\n\n### Advanced agentic design patterns\n\nAG2 supports more advanced concepts to help you build your AI agent workflows. You can find more information in the documentation.\n\n- [Structured Output](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fbasic-concepts\u002Fstructured-outputs)\n- [Ending a conversation](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Forchestration\u002Fending-a-chat\u002F)\n- [Retrieval Augmented Generation (RAG)](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Frag\u002F)\n- [Code Execution](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Fcode-execution)\n- [Tools with Secrets](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Ftools\u002Ftools-with-secrets\u002F)\n- [Pattern Cookbook (9 group orchestrations)](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Fpattern-cookbook\u002Foverview\u002F)\n\n## Announcements\n\n🔥 🎉 **Nov 11, 2024:** We are evolving AutoGen into **AG2**!\nA new organization [AG2AI](https:\u002F\u002Fgithub.com\u002Fag2ai) is created to host the development of AG2 and related projects with open governance. Check [AG2's new look](https:\u002F\u002Fag2.ai\u002F).\n\n📄 **License:**\nWe adopt the Apache 2.0 license from v0.3. This enhances our commitment to open-source collaboration while providing additional protections for contributors and users alike.\n\n🎉 May 29, 2024: DeepLearning.ai launched a new short course [AI Agentic Design Patterns with AutoGen](https:\u002F\u002Fwww.deeplearning.ai\u002Fshort-courses\u002Fai-agentic-design-patterns-with-autogen), made in collaboration with Microsoft and Penn State University, and taught by AutoGen creators [Chi Wang](https:\u002F\u002Fgithub.com\u002Fsonichi) and [Qingyun Wu](https:\u002F\u002Fgithub.com\u002Fqingyun-wu).\n\n🎉 May 24, 2024: Foundation Capital published an article on [Forbes: The Promise of Multi-Agent AI](https:\u002F\u002Fwww.forbes.com\u002Fsites\u002Fjoannechen\u002F2024\u002F05\u002F24\u002Fthe-promise-of-multi-agent-ai\u002F?sh=2c1e4f454d97) and a video [AI in the Real World Episode 2: Exploring Multi-Agent AI and AutoGen with Chi Wang](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RLwyXRVvlNk).\n\n🎉 Apr 17, 2024: Andrew Ng cited AutoGen in [The Batch newsletter](https:\u002F\u002Fwww.deeplearning.ai\u002Fthe-batch\u002Fissue-245\u002F) and [What's next for AI agentic workflows](https:\u002F\u002Fyoutu.be\u002Fsal78ACtGTc?si=JduUzN_1kDnMq0vF) at Sequoia Capital's AI Ascent (Mar 26).\n\n[More Announcements](announcements.md)\n\n## Code style and linting\n\nThis project uses [prek](https:\u002F\u002Fgithub.com\u002Fj178\u002Fprek) hooks to maintain code quality. Before contributing:\n\n1. Install prek:\n\n```bash\npip install prek\nprek install\n```\n\n2. The hooks will run automatically on commit, or you can run them manually:\n\n```bash\nprek run --all-files\n```\n\n## Related papers\n\n- [AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation](https:\u002F\u002Farxiv.org\u002Fabs\u002F2308.08155)\n\n- [EcoOptiGen: Hyperparameter Optimization for Large Language Model Generation Inference](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.04673)\n\n- [MathChat: Converse to Tackle Challenging Math Problems with LLM Agents](https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.01337)\n\n- [AgentOptimizer: Offline Training of Language Model Agents with Functions as Learnable Weights](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.11359)\n\n- [StateFlow: Enhancing LLM Task-Solving through State-Driven Workflows](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.11322)\n\n## Contributors Wall\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fag2ai_ag2_readme_96c7a3de91db.png\" \u002F>\n\u003C\u002Fa>\n\n## Cite the project\n\n```\n@software{AG2_2024,\nauthor = {Chi Wang and Qingyun Wu and the AG2 Community},\ntitle = {AG2: Open-Source AgentOS for AI Agents},\nyear = {2024},\nurl = {https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2},\nnote = {Available at https:\u002F\u002Fdocs.ag2.ai\u002F},\nversion = {latest}\n}\n```\n\n## License\n\nThis project is licensed under the [Apache License, Version 2.0 (Apache-2.0)](.\u002FLICENSE).\n\nThis project is a spin-off of [AutoGen](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fautogen) and contains code under two licenses:\n\n- The original code from https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fautogen is licensed under the MIT License. See the [LICENSE_original_MIT](.\u002Flicense_original\u002FLICENSE_original_MIT) file for details.\n\n- Modifications and additions made in this fork are licensed under the Apache License, Version 2.0. See the [LICENSE](.\u002FLICENSE) file for the full license text.\n\nWe have documented these changes for clarity and to ensure transparency with our user and contributor community. For more details, please see the [NOTICE](.\u002FNOTICE.md) file.\n","\u003Ca name=\"readme-top\">\u003C\u002Fa>\n\n\u003Cp align=\"center\">\n  \u003C!-- 图片 URL 指向 GitHub 托管的内容，确保在 PyPI 网站上正确显示。-->\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fag2ai\u002Fag2\u002F27b37494a6f72b1f8050f6bd7be9a7ff232cf749\u002Fwebsite\u002Fstatic\u002Fimg\u002Fag2.svg\" width=\"150\" title=\"悬停文本\">\n\n  \u003Cbr>\n  \u003Cbr>\n\n  \u003Ca href=\"https:\u002F\u002Fwww.pepy.tech\u002Fprojects\u002Fag2\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fag2ai_ag2_readme_f321d2a9ccb9.png\" alt=\"下载量\"\u002F>\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fautogen\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fag2?label=PyPI&color=green\">\n  \u003C\u002Fa>\n\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fag2.svg?label=\">\n\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Factions\u002Fworkflows\u002Fpython-package.yml\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Factions\u002Fworkflows\u002Fpython-package.yml\u002Fbadge.svg\">\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FpAbnFJrkgZ\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1153072414184452236?logo=discord&style=flat\">\n  \u003C\u002Fa>\n\n  \u003Cbr>\n\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fag2oss\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Fcloudposse.svg?style=social&label=Follow%20%40ag2ai\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdocs.ag2.ai\u002F\">📚 文档\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fbuild-with-ag2\">💡 示例\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fcontributor-guide\u002Fcontributing\">🤝 贡献\u003C\u002Fa> |\n  \u003Ca href=\"#related-papers\">📝 引用论文\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FpAbnFJrkgZ\">💬 加入 Discord\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nAG2 是由 AutoGen 发展而来，完全开源。我们诚邀各组织的合作者共同参与贡献。\n\u003C\u002Fp>\n\n> [!IMPORTANT]\n> **AG2 正在迈向 v1.0。** 当前框架将在接下来的几个小版本中通过弃用功能逐步优化，并转入维护模式。测试版框架（`autogen.beta`）将在 v1.0 时成为 AG2 的正式版本。\n>\n> [阅读完整的发布路线图 →](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Frelease-roadmap\u002F)\n\n# AG2：面向 AI 代理的开源 AgentOS\n\nAG2（原名 AutoGen）是一个开源编程框架，用于构建 AI 代理，并促进多个代理之间的协作以完成任务。AG2 致力于简化代理式 AI 的开发和研究。它提供了多种功能，包括能够相互通信的代理、对各种大型语言模型（LLM）的支持及工具使用支持、自主与人机协作的工作流，以及多代理对话模式。\n\n该项目目前由来自多家机构的[志愿者团队](MAINTAINERS.md)维护。如果您有意成为维护者，请通过[support@ag2.ai](mailto:support@ag2.ai)联系项目管理员 Chi Wang 和 Qingyun Wu。\n\n## 目录\n\n- [AG2：面向 AI 代理的开源 AgentOS](#ag2-open-source-agentos-for-ai-agents)\n  - [目录](#table-of-contents)\n  - [入门指南](#getting-started)\n    - [安装](#installation)\n    - [配置 API 密钥](#setup-your-api-keys)\n    - [运行你的第一个代理](#run-your-first-agent)\n  - [示例应用](#example-applications)\n  - [不同代理概念介绍](#introduction-of-different-agent-concepts)\n    - [可对话代理](#conversable-agent)\n    - [多代理编排](#orchestrating-multiple-agents)\n    - [人机协作](#human-in-the-loop)\n    - [工具](#tools)\n    - [高级代理设计模式](#advanced-agentic-design-patterns)\n  - [公告](#announcements)\n  - [代码风格与 linting](#code-style-and-linting)\n  - [相关论文](#related-papers)\n  - [贡献者墙](#contributors-wall)\n  - [引用本项目](#cite-the-project)\n  - [许可证](#license)\n\n## 入门指南\n\n有关 AG2 概念和代码的分步教程，请参阅我们的文档中的[基本概念](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fbasic-concepts\u002Finstalling-ag2\u002F)部分。\n\n### 安装\n\nAG2 需要 **Python 版本 >= 3.10, \u003C 3.14**。AG2 可通过 PyPI 上的 `ag2`（或其别名 `autogen`）获取。\n\n**Windows\u002FLinux:**\n```bash\npip install ag2[openai]\n```\n\n**Mac:**\n```bash\npip install 'ag2[openai]'\n```\n\n默认会安装最低依赖项。您可以根据需要的功能安装额外选项。\n\n### 配置 API 密钥\n\n为保持 LLM 依赖关系整洁，并避免意外提交包含 API 密钥的代码，我们建议将密钥存储在配置文件中。\n\n在我们的示例中，我们使用名为 **`OAI_CONFIG_LIST`** 的文件来存储 API 密钥。您可以选择任何文件名，但请务必将其添加到 `.gitignore` 中，以免被提交到版本控制系统。\n\n您可以使用以下内容作为模板：\n\n```json\n[\n  {\n    \"model\": \"gpt-5\",\n    \"api_key\": \"\u003Cyour OpenAI API key here>\"\n  }\n]\n```\n\n### 运行你的第一个代理\n\n创建一个脚本或 Jupyter Notebook，并运行你的第一个代理。\n\n```python\nfrom autogen import AssistantAgent, UserProxyAgent, LLMConfig\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\nassistant = AssistantAgent(\"assistant\", llm_config=llm_config)\n\nuser_proxy = UserProxyAgent(\"user_proxy\", code_execution_config={\"work_dir\": \"coding\", \"use_docker\": False})\n\nuser_proxy.run(assistant, message=\"总结 Python 列表和元组的主要区别。\").process()\n```\n\n## 示例应用\n\n我们维护了一个专门的仓库，其中包含各种应用，帮助您快速上手不同的用例，或者您可以从我们的 Jupyter 笔记本集合开始。\n\n- [用 AG2 构建](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fbuild-with-ag2)\n- [Jupyter 笔记本](notebook)\n\n## 不同代理概念介绍\n\nAG2 提供了多种代理概念，帮助您构建 AI 代理。以下是其中最常见的几种。\n\n- **可对话代理**：能够发送消息、接收消息并使用 GenAI 模型、非 GenAI 工具或人工输入生成回复的代理。\n- **人机协作**：在对话中加入人工输入。\n- **多代理编排**：用户可以利用内置的对话模式（如群体协作、群聊、嵌套聊天、顺序聊天等）编排多个代理，也可以通过注册自定义回复方法来自定义编排方式。\n- **工具**：可被代理注册、调用和执行的程序。\n- **高级概念**：AG2 还支持结构化输出、RAG、代码执行等功能等。\n\n### 可对话智能体\n\n[ConversableAgent](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fapi-reference\u002Fautogen\u002FConversableAgent) 是 AG2 的基础构建模块，旨在实现 AI 实体之间的无缝通信。这种核心智能体类型负责消息交换和响应生成，是框架中所有智能体的基类。\n\n我们从一个简单的示例开始，其中两个智能体协同工作：\n- 一个 **编码员智能体**，用于编写 Python 代码。\n- 一个 **评审员智能体**，用于对代码进行评审而不重写代码。\n\n```python\nimport logging\nfrom autogen import ConversableAgent, LLMConfig\n\n# 配置日志记录\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\n# 加载 LLM 配置\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# 定义智能体\ncoder = ConversableAgent(\n    name=\"coder\",\n    system_message=\"你是一名 Python 开发者。请编写简短的 Python 脚本。\",\n    llm_config=llm_config,\n)\n\nreviewer = ConversableAgent(\n    name=\"reviewer\",\n    system_message=\"你是一名代码评审员。请分析提供的代码并提出改进建议。不要生成代码，只需提出改进建议。\",\n    llm_config=llm_config,\n)\n\n# 开始对话\nresponse = reviewer.run(\n            recipient=coder,\n            message=\"编写一个计算斐波那契数列的 Python 函数。\",\n            max_turns=10\n        )\n\nresponse.process()\n\nlogger.info(\"最终输出：\\n%s\", response.summary)\n```\n\n---\n### 多智能体编排\n\nAG2 通过灵活的编排模式实现了复杂的多智能体协作，允许您创建由专业智能体协同工作的动态系统，以解决复杂问题。\n\n以下是如何构建一个由 **教师**、**课程规划师** 和 **评审员** 组成的团队，共同设计课程计划：\n\n```python\nimport logging\nfrom autogen import ConversableAgent, LLMConfig\nfrom autogen.agentchat import run_group_chat\nfrom autogen.agentchat.group.patterns import AutoPattern\n\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# 定义课程规划师和评审员\nplanner_message = \"你是一名课堂课程规划师。根据给定的主题，为四年级学生编写一份课程计划。\"\nreviewer_message = \"你是一名课堂课程评审员。将计划与课程标准进行比较，并提出最多三条改进建议。\"\n\nlesson_planner = ConversableAgent(\n    name=\"planner_agent\",\n    system_message=planner_message，\n    description=\"创建或修改课程计划。\",\n    llm_config=llm_config，\n)\n\nlesson_reviewer = ConversableAgent(\n    name=\"reviewer_agent\",\n    system_message=reviewer_message，\n    description=\"为课程计划提供一轮反馈。\",\n    llm_config=llm_config，\n)\n\nteacher_message = \"你是一名课堂教师。你决定主题，并与规划师和评审员合作，最终确定课程计划。满意后，请输出 DONE!\"\n\nteacher = ConversableAgent(\n    name=\"teacher_agent\",\n    system_message=teacher_message，\n    is_termination_msg=lambda x: \"DONE!\" in (x.get(\"content\", \"\") or \"\").upper(),\n    llm_config=llm_config，\n)\n\nauto_selection = AutoPattern(\n    agents=[teacher, lesson_planner, lesson_reviewer],\n    initial_agent=lesson_planner，\n    group_manager_args={\"name\": \"group_manager\", \"llm_config\": llm_config}，\n)\n\nresponse = run_group_chat(\n    pattern=auto_selection，\n    messages=\"让我们向孩子们介绍太阳系吧。\",\n    max_rounds=20，\n)\n\nresponse.process()\n\nlogger.info(\"最终输出：\\n%s\", response.summary)\n```\n\n---\n\n### 人机协作\n\n人类监督通常对于验证或指导 AI 输出至关重要。\nAG2 提供了 `UserProxyAgent`，用于无缝集成人工反馈。\n\n在此，我们将 **教师–规划师–评审员** 示例扩展为引入一名 **人类评审员**，对最终课程计划进行验证：\n\n```python\nimport logging\nfrom autogen import ConversableAgent、LLMConfig、UserProxyAgent\nfrom autogen.agentchat import run_group_chat\nfrom autogen.agentchat.group.patterns import AutoPattern\n\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# 与之前相同的智能体，但现在人类评审员会将任务传递给规划师，规划师会在收到“APPROVED”时终止流程\nplanner_message = \"你是一名课堂课程规划师。根据给定的主题，为四年级学生编写一份课程计划。\"\nreviewer_message = \"你是一名课堂课程评审员。将计划与课程标准进行比较，并提出最多三条改进建议。\"\nteacher_message = \"你是一位经验丰富的课堂教师。你不准备计划，而是为规划师提供关于关键主题的简单指导，以帮助其准备课程计划。\"\n\nlesson_planner = ConversableAgent(\n    name=\"planner_agent\",\n    system_message=planner_message，\n    description=\"在提交评审之前创建或修改课程计划。\",\n    is_termination_msg=lambda x: \"APPROVED\" in (x.get(\"content\", \"\") or \"\").upper(),\n    human_input_mode=\"NEVER\",\n    llm_config=llm_config，\n)\n\nlesson_reviewer = ConversableAgent(\n    name=\"reviewer_agent\",\n    system_message=reviewer_message，\n    description=\"在提交给人类评审员之前，为课程计划提供一轮反馈，然后返回给规划师。\",\n    llm_config=llm_config，\n)\n\nteacher = ConversableAgent(\n    name=\"teacher_agent\",\n    system_message=teacher_message，\n    description=\"在需要时提供关于主题和内容的指导。\",\n    llm_config=llm_config，\n)\n\nhuman_validator = UserProxyAgent(\n    name=\"human_validator\",\n    system_message=\"你是一名人类教育工作者，负责对课程计划进行最终批准。\",\n    description=\"评估拟议的课程计划，批准或要求修改，然后再返回给规划师。\",\n)\n\nauto_selection = AutoPattern(\n    agents=[teacher、lesson_planner、lesson_reviewer]，\n    initial_agent=teacher，\n    user_agent=human_validator，\n    group_manager_args={\"name\": \"group_manager\", \"llm_config\": llm_config}，\n)\n\nresponse = run_group_chat(\n    pattern=auto_selection，\n    messages=\"让我们向孩子们介绍太阳系吧。\",\n    max_rounds=20，\n)\n\nresponse.process()\n\nlogger.info(\"最终输出：\\n%s\", response.summary)\n```\n\n---\n\n### 工具\n\n通过 **工具**，智能体可以显著增强其功能，利用外部数据、API 或函数扩展其能力。\n\n```python\nimport logging\nfrom datetime import datetime\nfrom typing import Annotated\nfrom autogen import ConversableAgent、register_function、LLMConfig\n\nlogging.basicConfig(level=logging.INFO)\nlogger = logging.getLogger(__name__)\n\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# 工具：返回给定日期的星期几\ndef get_weekday(date_string: Annotated[str, \"格式：YYYY-MM-DD\"]) -> str:\n    date = datetime.strptime(date_string, \"%Y-%m-%d\")\n    return date.strftime(\"%A\")\n\ndate_agent = ConversableAgent(\n    name=\"date_agent\",\n    system_message=\"您负责为给定日期查找星期几。\",\n    llm_config=llm_config,\n)\n\nexecutor_agent = ConversableAgent(\n    name=\"executor_agent\",\n    human_input_mode=\"NEVER\",\n    llm_config=llm_config,\n)\n\n# 注册工具\nregister_function(\n    get_weekday,\n    caller=date_agent,\n    executor=executor_agent,\n    description=\"获取给定日期的星期几\",\n)\n\n# 在聊天中使用工具\nchat_result = executor_agent.initiate_chat(\n    recipient=date_agent,\n    message=\"我出生于1995年3月25日，那天是星期几呢？\",\n    max_turns=2,\n)\n\nlogger.info(\"最终输出：\\n%s\", chat_result.chat_history[-1][\"content\"])\n```\n\n### 高级代理设计模式\n\nAG2 支持更高级的概念，帮助您构建 AI 代理工作流。更多信息请参阅文档。\n\n- [结构化输出](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fbasic-concepts\u002Fstructured-outputs)\n- [结束对话](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Forchestration\u002Fending-a-chat\u002F)\n- [检索增强生成 (RAG)](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Frag\u002F)\n- [代码执行](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Fcode-execution)\n- [带密钥的工具](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Ftools\u002Ftools-with-secrets\u002F)\n- [模式手册（9种分组编排）](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Fpattern-cookbook\u002Foverview\u002F)\n\n## 公告\n\n🔥 🎉 **2024年11月11日：** 我们将 AutoGen 升级为 **AG2**！\n一个新的组织 [AG2AI](https:\u002F\u002Fgithub.com\u002Fag2ai) 已成立，用于在开放治理下托管 AG2 及相关项目的开发。请查看 [AG2 的全新面貌](https:\u002F\u002Fag2.ai\u002F)。\n\n📄 **许可证：**\n自 v0.3 版起，我们采用 Apache 2.0 许可证。这不仅增强了我们对开源协作的承诺，也为贡献者和用户提供了额外的保护。\n\n🎉 2024年5月29日：DeepLearning.ai 推出了新短课程 [使用 AutoGen 的 AI 代理设计模式](https:\u002F\u002Fwww.deeplearning.ai\u002Fshort-courses\u002Fai-agentic-design-patterns-with-autogen)，该课程由 Microsoft 和宾夕法尼亚州立大学合作开发，由 AutoGen 的创建者 [Chi Wang](https:\u002F\u002Fgithub.com\u002Fsonichi) 和 [Qingyun Wu](https:\u002F\u002Fgithub.com\u002Fqingyun-wu) 主讲。\n\n🎉 2024年5月24日：Foundation Capital 在《福布斯》上发表了文章 [多智能体 AI 的前景](https:\u002F\u002Fwww.forbes.com\u002Fsites\u002Fjoannechen\u002F2024\u002F05\u002F24\u002Fthe-promise-of-multi-agent-ai\u002F?sh=2c1e4f454d97)，并发布了一段视频 [现实世界中的 AI 第二集：与 Chi Wang 探讨多智能体 AI 和 AutoGen](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RLwyXRVvlNk)。\n\n🎉 2024年4月17日：Andrew Ng 在 [The Batch 新闻通讯](https:\u002F\u002Fwww.deeplearning.ai\u002Fthe-batch\u002Fissue-245\u002F) 中提到了 AutoGen，还在红杉资本的 AI Ascent 活动（3月26日）上分享了 [AI 代理工作流的未来发展方向](https:\u002F\u002Fyoutu.be\u002Fsal78ACtGTc?si=JduUzN_1kDnMq0vF)。\n\n[更多公告](announcements.md)\n\n## 代码风格与 lint 检查\n\n该项目使用 [prek](https:\u002F\u002Fgithub.com\u002Fj178\u002Fprek) 钩子来维护代码质量。在提交贡献之前：\n\n1. 安装 prek：\n\n```bash\npip install prek\nprek install\n```\n\n2. 钩子会在每次提交时自动运行，或者您可以手动运行：\n\n```bash\nprek run --all-files\n```\n\n## 相关论文\n\n- [AutoGen：通过多智能体对话实现下一代大语言模型应用](https:\u002F\u002Farxiv.org\u002Fabs\u002F2308.08155)\n\n- [EcoOptiGen：大型语言模型生成推理的超参数优化](https:\u002F\u002Farxiv.org\u002Fabs\u002F2303.04673)\n\n- [MathChat：利用大语言模型代理对话解决难题](https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.01337)\n\n- [AgentOptimizer：以函数作为可学习权重对语言模型代理进行离线训练](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2402.11359)\n\n- [StateFlow：通过状态驱动的工作流提升大语言模型的任务解决能力](https:\u002F\u002Farxiv.org\u002Fabs\u002F2403.11322)\n\n## 贡献者墙\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fag2ai_ag2_readme_96c7a3de91db.png\" \u002F>\n\u003C\u002Fa>\n\n## 引用本项目\n\n```\n@software{AG2_2024,\nauthor = {Chi Wang 和 Qingyun Wu 以及 AG2 社区},\ntitle = {AG2：面向 AI 代理的开源 AgentOS},\nyear = {2024},\nurl = {https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2},\nnote = {可在 https:\u002F\u002Fdocs.ag2.ai\u002F 获取},\nversion = {最新版}\n}\n```\n\n## 许可证\n\n本项目采用 [Apache License, Version 2.0 (Apache-2.0)](.\u002FLICENSE) 许可证。\n\n本项目是从 [AutoGen](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fautogen) 分支出来的，包含两种许可证下的代码：\n\n- 来自 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fautogen 的原始代码采用 MIT 许可证。详细信息请参阅 [LICENSE_original_MIT](.\u002Flicense_original\u002FLICENSE_original_MIT) 文件。\n\n- 本分支中的修改和新增内容采用 Apache License, Version 2.0 许可证。完整的许可文本请参阅 [LICENSE](.\u002FLICENSE) 文件。\n\n我们已记录这些变更，以确保透明度，并向用户和贡献者社区清晰地说明情况。更多详情请参阅 [NOTICE](.\u002FNOTICE.md) 文件。","# AG2 快速上手指南\n\nAG2（前身为 AutoGen）是一个开源编程框架，用于构建 AI 智能体（Agents）并促进多智能体协作以解决复杂任务。它支持与大语言模型（LLM）交互、工具调用、自主工作流以及人机协同模式。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows, Linux 或 macOS\n*   **Python 版本**：>= 3.10 且 \u003C 3.14\n*   **API Key**：您需要拥有大模型服务商（如 OpenAI）的 API Key。\n\n## 安装步骤\n\nAG2 可通过 PyPI 安装。根据您的操作系统，运行以下命令：\n\n**Windows \u002F Linux:**\n```bash\npip install ag2[openai]\n```\n\n**macOS:**\n```bash\npip install 'ag2[openai]'\n```\n\n> **提示**：国内用户若遇到下载速度慢的问题，建议使用国内镜像源加速安装：\n> ```bash\n> pip install ag2[openai] -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 配置 API Keys\n\n为了安全地管理 API Key 并避免将其硬编码在代码中，建议创建一个配置文件。\n\n1.  在项目根目录下创建一个名为 `OAI_CONFIG_LIST` 的文件。\n2.  **重要**：将该文件名添加到 `.gitignore` 中，防止泄露密钥。\n3.  填入以下 JSON 内容模板：\n\n```json\n[\n  {\n    \"model\": \"gpt-5\",\n    \"api_key\": \"\u003Cyour OpenAI API key here>\"\n  }\n]\n```\n\n## 基本使用\n\n### 运行第一个智能体\n\n创建一个 Python 脚本（例如 `main.py`）或 Jupyter Notebook，复制以下代码即可启动一个简单的双智能体协作任务：一个负责编写代码，另一个负责执行和反馈。\n\n```python\nfrom autogen import AssistantAgent, UserProxyAgent, LLMConfig\n\n# 加载配置文件中的 LLM 设置\nllm_config = LLMConfig.from_json(path=\"OAI_CONFIG_LIST\")\n\n# 创建助手智能体\nassistant = AssistantAgent(\"assistant\", llm_config=llm_config)\n\n# 创建用户代理智能体（负责执行代码）\n# work_dir: 代码执行目录，use_docker: 是否使用 Docker (False 表示直接在本地运行)\nuser_proxy = UserProxyAgent(\"user_proxy\", code_execution_config={\"work_dir\": \"coding\", \"use_docker\": False})\n\n# 启动对话：用户代理向助手发送消息并处理回复\nuser_proxy.run(assistant, message=\"Summarize the main differences between Python lists and tuples.\").process()\n```\n\n### 核心概念简述\n\n*   **ConversableAgent**：AG2 的基础构建块，能够发送\u002F接收消息并利用 LLM 生成回复。\n*   **多智能体编排**：支持群聊（Group Chat）、顺序聊天等模式，让多个专用智能体协作解决复杂问题。\n*   **人机协同 (Human in the Loop)**：通过 `UserProxyAgent` 轻松引入人类反馈，对 AI 的输出进行验证或指导。\n*   **工具支持**：智能体可以注册、调用和执行外部工具或代码。\n\n更多高级用法（如自定义多智能体模式、RAG 集成等），请参考官方文档或示例仓库 [build-with-ag2](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fbuild-with-ag2)。","某电商数据团队需要每日自动抓取竞品价格、分析波动趋势并生成带图表的分析报告发送给运营总监。\n\n### 没有 ag2 时\n- **流程割裂严重**：开发人员需分别编写爬虫脚本、数据分析代码和邮件发送逻辑，三个环节独立运行，一旦中间出错需人工介入重启。\n- **异常处理困难**：当爬虫因反爬机制失败或 LLM 输出格式错误时，缺乏自动重试或自我修正机制，导致任务直接中断。\n- **多模型协作复杂**：难以让擅长代码的模型与擅长分析的模型动态交互，通常只能硬编码固定流程，无法应对灵活的分析需求。\n- **人工干预频繁**：每次生成报告前都需要人工检查数据准确性，无法实现真正的“无人值守”自动化。\n\n### 使用 ag2 后\n- **多代理自动协同**：构建“爬虫代理”、“分析代理”和“报告代理”，三者自动对话协作，爬虫获取数据后直接交给分析代理，完成后触发报告生成，全流程无缝衔接。\n- **具备自愈能力**：若代码执行报错，ag2 内的代理会自动识别错误信息并尝试重新编写代码修复，大幅减少任务中断率。\n- **动态工具调用**：不同代理可根据任务需求自主调用搜索、代码解释器或绘图工具，无需预设死板流程，灵活应对各种数据异常情况。\n- **人机回路可选**：仅在关键决策点（如数据异常波动过大）暂停并请求人类确认，其余时间完全自动化运行，显著释放人力。\n\nag2 通过将分散的脚本转化为能自主沟通、协作且具备自愈能力的智能体网络，将原本耗时数小时的人工运维工作转变为稳定高效的全自动闭环。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fag2ai_ag2_733012e5.png","ag2ai","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fag2ai_e1e0e82a.png","",null,"https:\u002F\u002Fag2.ai\u002F","https:\u002F\u002Fgithub.com\u002Fag2ai",[80,84,88,92,96,99,103,106,109,112],{"name":81,"color":82,"percentage":83},"Python","#3572A5",58.1,{"name":85,"color":86,"percentage":87},"MDX","#fcb32c",24.4,{"name":89,"color":90,"percentage":91},"Jupyter Notebook","#DA5B0B",16.8,{"name":93,"color":94,"percentage":95},"Jinja","#a52a22",0.2,{"name":97,"color":98,"percentage":95},"HTML","#e34c26",{"name":100,"color":101,"percentage":102},"JavaScript","#f1e05a",0.1,{"name":104,"color":105,"percentage":102},"Mako","#7e858d",{"name":107,"color":108,"percentage":102},"CSS","#663399",{"name":110,"color":111,"percentage":102},"Shell","#89e051",{"name":113,"color":114,"percentage":115},"Just","#384d54",0,4410,589,"2026-04-17T08:57:01","Apache-2.0","Windows, Linux, macOS","未说明",{"notes":123,"python":124,"dependencies":125},"该工具主要作为编程框架运行，依赖外部大语言模型（LLM）API（如 OpenAI），而非本地部署大型模型，因此文中未提及具体的 GPU、显存或内存硬件需求。安装时可通过 `pip install ag2[openai]` 获取包含 OpenAI 支持的最小化依赖版本。建议将 API 密钥存储在配置文件中并加入 .gitignore 以避免泄露。",">=3.10, \u003C3.14",[126,127],"ag2 (或 autogen)","openai (可选额外依赖)",[14,13,15,35],[130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,65],"a2a","agent-framework","llm","python","agentic","ai","llms","mcp","multi-agent","multi-agent-system","genai","agentic-ai","ai-agents-framework","aiagents","open-source","2026-03-27T02:49:30.150509","2026-04-18T00:45:53.462101",[148,153,158,163,168,173],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},38331,"如何在初始化 Agent 时正确使用 LLMConfig 上下文管理器？","建议使用 `with llm_config:` 上下文管理器来初始化 Agent，而不是直接在构造函数中传入配置。这样可以更好地管理配置作用域，特别是在嵌套场景下。示例代码：\n```python\nllm_config = LLMConfig(model=\"gpt-4o-mini\", api_key=os.environ[\"OPENAI_API_KEY\"])\nwith llm_config:\n    assistant = AssistantAgent(name=\"assistant\")\n```\n此外，初始化 `LLMConfig` 时应直接使用关键字参数（如 `api_type`, `model`），而不是通过 `config_list` 传递。如果 `where` 方法的参数是只包含一个字符串的列表，应直接使用该字符串。","https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fissues\u002F1412",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},38332,"为什么在 Swarm Agents 中无法获取 chat_result.cost（成本信息）？","这是因为 Swarm 功能已被弃用（deprecated）。维护者表示不再修复此问题，而是计划通过新的遥测（telemetry）方案来提供更 robust 的成本和信息收集方式。建议用户关注后续的遥测功能更新，不再依赖旧的 Swarm 成本统计方法。","https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fissues\u002F103",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},38333,"如何为 LLMConfig 获得更好的 IDE 类型提示支持？","社区正在推动将 `LLMConfig` 设计得更加类型化（typed），以便用户在使用时能获得完整的 IDE 支持和类型检查。未来的设计建议允许直接传入强类型的配置字典或特定的配置条目对象。例如：\n```python\n# 单个配置\nLLMConfig({\"model\": \"gpt-5\", \"api_token\": ...})\n\n# 多个配置\nLLMConfig({\"model\": \"gpt-5\", \"api_token\": ...}, {\"model\": \"gpt-o3\", \"api_token\": ...})\n```\n这将使用户无需猜测所需的键或查阅文档即可正确连接 LLM。","https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fissues\u002F1946",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},38334,"Swarm 聊天模式是否还支持添加 send_introductions 功能？","不支持。由于 Swarm 模式已经被弃用（deprecated），相关的功能请求（如在 `initiate_swarm_chat` 中启用 `send_introductions`）不再被处理。维护者建议如果需要类似功能，应在新的 Group Chat 实现中提出需求或寻找替代方案。","https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fissues\u002F1610",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},38335,"在 Bedrock 上使用结构化输出时报错\"tool not found\"是什么原因？","这是一个已知问题，尽管之前的 PR 试图通过在 `tool_choice` 中强制加入 `__structured_output` 工具来修复，但这可能导致模型在所有回复中都尝试使用结构化格式，从而产生副作用。当 Agent 调用该工具时，可能会抛出\"Function __structured_output not found\"错误。目前该问题在特定模型（如 anthropic.claude-3-7-sonnet）和配置下仍然存在，建议避免在该配置下强制使用结构化输出工具，或等待官方进一步修复。","https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fissues\u002F2243",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},38336,"设置 human_input_mode=\"ALWAYS\" 时，GroupChat 为什么会陷入无限循环且不提示人工输入？","这是一个已报告的 Bug。当按照官方文档设置 `human_input_mode=\"ALWAYS\"` 时，循环可能不会正确暂停以请求人工输入，导致程序挂起。这通常与自动终止条件和人类输入模式的交互逻辑有关。建议检查是否使用了最新的代码版本，或者暂时避免在复杂的自动终止场景中同时使用 `ALWAYS` 模式，直到该问题得到修复。","https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fissues\u002F1756",[179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274],{"id":180,"version":181,"summary_zh":182,"released_at":183},306503,"v0.11.5","## 亮点\n\n### 🎉 主要特性\n\n- 🖥️ **AG2 CLI** – AG2 的全新命令行界面！一个功能齐全的 CLI，用于使用 AG2 构建、运行、测试和部署多智能体应用。[查看文档](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fcli\u002F)！\n- 🖥️ **A2UIAgent** – 一款结合了 A2A 和 [A2UI](https:\u002F\u002Fa2ui.org\u002F) 协议的参考智能体，用于构建动态的、由智能体驱动的前端界面。兼容 [A2UI](https:\u002F\u002Fa2ui.org\u002F) 的最新 v0.9 协议版本。[查看文档！](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Freference-agents\u002Fa2uiagent\u002F) 并参阅 [完整代码示例](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fbuild-with-ag2\u002Ftree\u002Fmain\u002Fa2ui\u002Fflutter)\n\n### 测试版特性\n\n- [路线图进展](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fbeta\u002Froadmap\u002F)\n- 📊 **遥测** – 新增遥测支持，用于监控和分析。\n- 🔧 **通过 ResponseSchema 实现结构化输出** – 增加了使用 `ResponseSchema` 的结构化输出支持，使智能体响应更加可预测。\n- 🔧 **RedisStream** – 新增 Redis 流支持，用于实现可扩展的消息处理。\n- 🔧 **基于工具的作用域中间件钩子** – 新增作用域限定在特定工具上的中间件钩子，以实现更细粒度的控制。\n- 🔧 **WebFetchTool** – 新增用于获取网页内容的工具，并为 `WebSearchTool` 增加了域名过滤功能。\n- 🧠 **MemoryTool** – 新增用于智能体内存管理的工具，已集成到现有工具架构中。\n- 🖼️ **图像生成工具** – 新增用于生成图像的工具。\n- 💻 **Shell Tool** – 新增用于执行 Shell 命令的工具。\n- 🔧 使用 `dataclass_transform` 重构了 `BaseEvent`。\n- 🔧 引入了 justfile，重构了依赖项和 CI 配置，并改进了测试版工具。\n\n### 错误修复\n\n- 🔧 **测试版：ToolCallEvent 和 ToolErrorEvent** – 修复了事件处理中的三个 bug。\n- 🔧 **测试版：空工具调用参数** – 修复了消息映射器中对空工具调用参数的处理问题。\n- 🔧 **测试版：Anthropic 令牌使用量** – 修复了 Anthropic 的使用令牌及缓存的令牌使用量观测问题。\n- 🔧 **测试版：Anthropic pause_turn** – 修复了 `pause_turn` 的处理逻辑。\n- 🔧 **消息平台工具** – 修复了在循环前未正确初始化 `sent_message_id` 的问题。\n- 🔧 **Slack 工具** – 修正了文档字符串、安全地访问字典以及 mypy 类型检查的问题。\n\n### 文档更新\n\n- 📔 新增 [发布路线图](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Frelease-roadmap\u002F)。\n- 📔 新增 [Arcade.dev + AG2 集成](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fblog\u002F2026\u002F03\u002F19\u002FArcade\u002F) 博客文章。\n- 📔 将 [Bindu](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fecosystem\u002Fbindu\u002F) 添加到生态系统集成中。\n- 🔧 将用户指南中的 Mermaid 图表转换为图片。\n\n## 变更内容\n* fix(beta): 由 @amabito 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2493 中修复了 ToolCallEvent 和 ToolErrorEvent 中的三个 bug\n* docs: 由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2503 中添加了发布路线图\n* feat(beta): 由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2495 中新增了通过 ResponseSchema 的结构化输出支持\n* docs(blog): 由 @faridun-ag2 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpu 中添加了 Arcade.dev + AG2 集成的博客文章","2026-04-04T23:58:58",{"id":185,"version":186,"summary_zh":187,"released_at":188},306504,"v0.11.4","## 亮点\n\n### 🔒 安全加固\n\n本次发布包含由 @amabito 贡献的多项重要安全修复：\n\n- **Shell 命令注入** – `ShellExecutor` 现在使用 `shlex.split` 并设置 `shell=False`，以防止命令注入攻击。\n- **路径遍历防护** – MCP 资源 URI 和文件操作现在会针对路径遍历攻击进行验证。\n- **敏感密钥脱敏** – `FileLogger` 的输出现在会脱敏处理敏感密钥，以防止凭据泄露。\n\n### AG2 Beta 版本改进\n\n- 🛠️ **人机交互中间件钩子** – 新增 `on_human_input` 中间件钩子，可在代理对话过程中拦截、转换或记录人工输入。[文档](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fbeta\u002Fmiddleware\u002F#on_human_input)\n- 🛠️ **工具调用** – 工具现在可以返回 `ToolResult(..., final=True)`，以跳过后续的 LLM 调用并立即结束本轮对话。同时，工具事件也被重构为专用类型，以便在所有提供商中实现更清晰的运行时处理。[文档](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fbeta\u002Ftools\u002F#returning-a-final-tool-result)\n- 🔧 **ClientTool 流修复** – `ClientTool.register` 现在能够正确地将 `ClientToolCall` 事件发送到流中。\n- ⚡ **代码执行工具** – 新增用于代码执行能力的工具及相应 Schema（感谢 @vvlrff）。\n\n### 错误修复\n\n- 🔧 **Gemini 内容处理** – 修复了 Gemini 客户端中对缺少 `content` 键的消息的处理问题。\n\n### 文档更新\n\n- 📔 在文档中添加了指向 [AG2 Playground](https:\u002F\u002Fplayground.ag2.ai) 的链接。\n- 📔 修复了重定向模板中的 `robots.txt` 和 `og:url` 的 SEO 问题（感谢 @VasiliyRad）。\n- 📔 更新了 Beta 版本的文档，以反映最新的事件和工具 API。\n\n## 变更内容\n* 修复（Beta）：在 `ClientTool.register` 中将 `ClientToolCall` 发送至流中，由 @amabito 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2476 中完成。\n* CI：添加 PR 标签工作流，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2479 中完成。\n* 功能（Beta）：新增 `on_human_input` 中间件钩子，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2477 中完成。\n* 修复 SEO 问题：添加 `robots.txt` 并修复重定向模板中的 `og:url`，由 @VasiliyRad 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2473 中完成。\n* 文档：在文档中添加 Playground 链接，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2480 中完成。\n* 修复：在 `ShellExecutor` 中使用 `shlex.split` 时设置 `shell=False`，由 @amabito 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2481 中完成。\n* 修复：对 MCP 资源 URI 进行 sanitization，以防止路径遍历攻击，由 @amabito 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2482 中完成。\n* 修复：对 `subfolder_path` 和 `file_name` 进行路径遍历验证，由 @amabito 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2483 中完成。\n* 修复：在 `FileLogger` 输出中脱敏处理敏感密钥，由 @amabito 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2485 中完成。\n* 修复：处理 Gemini 客户端中缺少 `'content'` 键的消息，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2489 中完成。\n* 功能：新增代码执行工具及相关 Schema，用于代码执行功能…，由 @vvlrff 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2490 中完成。\n* 文档（Beta）：同步文档与事件和工具","2026-03-17T23:46:59",{"id":190,"version":191,"summary_zh":192,"released_at":193},306505,"v0.11.3","## 亮点\n\n### 🎉 AG2 Beta — 真实世界智能体的新基石\n\n本次发布推出了 **AG2 Beta**（`autogen.beta`），这是基于对原有架构经验教训的重新设计。AG2 Beta 为生产级智能体系统提供了更强大的基础，具备以下特性：\n\n- 🌊 **流式与事件驱动架构** – 每次对话都在一个 `MemoryStream` 上运行，这是一种发布\u002F订阅事件总线，能够隔离状态、支持实时流式处理，并使智能体在并发用户之间安全地重复使用。\n- 🔌 **多提供商大模型支持** – 统一的 `ModelConfig` 协议，配备针对 **OpenAI**（Chat Completions & Responses API）、**Anthropic**、**Google Gemini**、**阿里巴巴 DashScope (Qwen)** 和 **Ollama** 的专用客户端——全部采用官方提供商 SDK。\n- 🛠️ **依赖注入与类型化工具** – 工具会根据类型提示自动生成 JSON Schema。通过 `fast_depends` 进行依赖注入，工具和提示钩子可以使用 `Annotated[T, Inject(\"name\")]` 清晰地声明依赖关系。\n- 🧪 **一流的测试支持** – `TestConfig` \u002F `TestClient` 提供预设的大模型响应，用于单元测试，无需任何网络调用。\n- 🔧 **中间件管道** – 可扩展的中间件系统，内置历史记录限制、令牌数限制和大模型重试功能。\n\nAG2 Beta 与现有的 AG2 模块并行运行——**现有代码不会发生破坏性变更**。此外，AG2 Beta 智能体还可以用于现有的群聊编排场景！\n\n阅读 [博客文章](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fblog\u002F2026\u002F03\u002F16\u002FAG2-Beta\u002F) 以了解完整的动机和设计细节，或深入 [AG2 Beta 文档](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fbeta\u002Fmotivation\u002F) 和 [路线图](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fbeta\u002Froadmap\u002F)。\n\n特别感谢 @Lancetnik！\n\n以下是当前 AG2 版本中的更新内容……\n\n### 主要特性\n\n- 🔍 **QuickResearchTool** – 新增并行网络研究工具，使智能体能够同时从多个来源搜索和整合信息（感谢 @bassilkhilo-ag2）。\n- 🌊 **Gemini 客户端流式传输** – 为 Gemini 客户端添加了流式传输支持。\n- 🔄 **Mistral V2 API** – Mistral 客户端已更新至 Mistral V2 API。\n- 🐟 **TinyFish 抓取器集成** – 新增与 TinyFish 抓取器的集成，用于网页内容提取（感谢 @jsun-m）。\n\n### 大模型客户端修复\n\n- 🔧 **流式工具调用修复** – 修复了流式过程中工具调用类型字段拼接的问题（感谢 @jnMetaCode）。\n- 🔧 **Gemini 思考签名** – 修复了 Gemini 思考签名的处理问题。\n- 🔧 **Anthropic 用户代理** – 为 Anthropic API 调用添加了 User-Agent 头部（感谢 @mikelambert）。\n\n### Bug 修复\n\n- 🔧 **空对话安全性** – 修复了在空对话中调用 `last_message()` 时出现的 `IndexError`（感谢 @jnMetaCode）。\n- 🔧 **AgentOptimizer LLMConfig 处理** – 修复了 `AgentOptimizer` 中对 `LLMConfig` 对象的处理问题（感谢 @jnMetaCode）。\n- 🔧 **令牌计数工具** – 向 `token_count_utils` 添加了缺失的模型条目（感谢 @jnMetaCode）。\n\n### 文档","2026-03-16T01:15:44",{"id":195,"version":196,"summary_zh":197,"released_at":198},306506,"v0.11.2","## 亮点\n\n### 功能增强\n\n- 🔧 **额外头部支持** – 在 `OpenAILLMConfigEntry` 和 `AzureOpenAILLMConfigEntry` 中新增了 `extra_headers` 支持，允许为 API 请求添加自定义 HTTP 头部。\n\n### LLM 客户端修复\n\n- 🔧 **Gemini 并行工具调用** – 修复了 Gemini 客户端对并行工具调用的支持。\n- 🔧 **Gemini 结构化输出** – 修复了在使用 `additionalProperties` 时 Gemini 的结构化输出问题。\n- 🔧 **OpenAI 响应客户端** – 修复了空字符串内容的处理以及对新阶段键的支持。\n\n### 错误修复\n\n- 🔧 **RandomAgentTarget 验证** – 修复了 `ensure_handoff_agents_in_group` 中的验证逻辑。\n- 🔧 **异步工具执行** – 修复了在异步执行中等待可等待工具结果的问题。\n- 🔧 **组工具执行器** – 在上下文变量注入中保留了异步包装器。\n- 🔧 **异常处理** – 将裸露的 `except` 语句替换为 `except Exception`（感谢 @haosenwang1018）。\n\n### 文档更新\n\n- 📔 新增 [CopilotKit 快速入门](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fag-ui\u002F)，并同步了 AG-UI 集成文档。\n- 📔 新增 [AG-UI 博客文章](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fblog\u002F)。\n- 🔧 改进了文档构建，并修复了链接问题。\n- 🔧 移除了 Mintlify 依赖。\n\n## 变更内容\n* docs: 为无标题页面添加标题，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2412 中完成\n* docs: 整理文档构建和内容，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2415 中完成\n* docs: 并行生成笔记本并修复链接，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2416 中完成\n* docs: 移除 Mintlify，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2417 中完成\n* fix: OpenAI 响应客户端改为使用空字符串内容，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2419 中完成\n* fix: 支持 Gemini 客户端中的并行工具调用，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2420 中完成\n* docs: 移除 Spider 笔记本，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2422 中完成\n* feat: 为 OpenAILLMConfigEntry 和 AzureOpenAILLMConfigEntry 添加 extra_headers 支持，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2424 中完成\n* fix: 修复 ensure_handoff_agents_in_group 中 RandomAgentTarget 的验证问题，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2423 中完成\n* fix: 修复 Gemini 在使用 additionalProperties 时的结构化输出问题，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2421 中完成\n* docs(ag-ui): 添加 CopilotKit 快速入门，并同步 AG-UI 集成文档，由 @blove 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2414 中完成\n* chore: 更改测试中使用的 PDF 文件，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2427 中完成\n* docs: AG-UI 博客，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2413 中完成\n* chore: 更新 Google Analytics 标签，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2429 中完成\n* docs: 修复损坏的 AG-UI 标记，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2431 中完成\n* fix: 在 Responses 客户端中处理新的 OpenAI 阶段键，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2432 中完成\n* fix: 将 3 处裸露的 except 替换为 except Exception（感谢 @haosenw","2026-02-27T20:29:05",{"id":200,"version":201,"summary_zh":202,"released_at":203},306507,"v0.11.1","## 亮点\n\n### 🎉 主要功能\n\n- 🌊 **A2A 流式传输** – 完全支持 Agent2Agent 通信的流式传输，涵盖服务器端和客户端。LLM 文本流现已与 A2A 实现打通，可为远程代理提供实时响应。[开始使用](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fa2a\u002F)\n\n- 🙋 **A2A HITL 事件** – 在 Agent2Agent 通信中处理人机协作事件，从而在您的代理流程中实现交互式审批工作流。[开始使用](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fa2a\u002F)\n\n- 🖥️ **AG-UI 消息流式传输** – 在 AG-UI 前端实时显示代理响应。采用全新的基于事件的流式架构，实现流畅的增量文本更新。[开始使用](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fag-ui\u002F)\n\n- 📡 **OpenAI Responses v2 客户端** – 已迁移到 OpenAI 的 Responses v2 API，无需手动管理对话历史即可实现有状态对话；内置工具（网络搜索、图像生成、apply_patch）；全面访问推理模型功能（o3 思考令牌）；支持多模态应用、结构化输出，并增强了成本和令牌跟踪功能。[完整指南](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_v2_responses_client\u002F)\n\n### 错误修复\n\n- 🔧 **ToolCall TypeError** – 修复了 ToolCall 返回类型上的 TypeError。\n- 🐳 **Docker 错误信息** – 改进了 Docker 未运行时的错误提示信息。\n- 🔧 **OpenAI Responses v2 客户端优化** – 对新的 Responses v2 客户端进行了小幅修复和改进。\n\n### 文档与维护\n\n- 📔 更新了 mem0 示例。\n- 🔧 升级了依赖项。\n- 🔧 将 Pydantic 中的 `copy` 迁移至 `model_copy`。\n\n## 变更内容\n* 更新 CMBAgent 博客文章作者所属机构为剑桥大学，由 @qingyun-wu 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2396 中完成。\n* 支持从 LLM 向 A2A 流式传输文本，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2394 中完成。\n* 修复：ToolCall 返回类型上的 TypeError，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2380 中完成。\n* 修复示例代码，并改进 Docker 未运行时的错误提示信息，由 @VasiliyRad 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2402 中完成。\n* 功能：A2A 流式客户端，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2403 中完成。\n* 功能：支持 AG-UI 消息流式传输，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2404 中完成。\n* 支持 Crawl4AI 0.8.x，由 @VasiliyRad 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2405 中完成。\n* 功能：处理 AgentService HITL 事件，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2406 中完成。\n* 功能：迁移到 OpenAI Responses v2，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2357 中完成。\n* 更新 mem0 示例，由 @VasiliyRad 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2407 中完成。\n* 修复：OpenAI Responses v2 客户端优化，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2408 中完成。\n* 杂项：升级依赖项，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2409 中完成。\n* Pydantic 中的 copy 迁移至 model_copy，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2410 中完成。\n* 版本升级至 0.11.1，由 @marklysze 在 htt","2026-02-16T00:26:10",{"id":205,"version":206,"summary_zh":207,"released_at":208},306508,"v0.11.0","## 亮点\n\n### 🎉 主要特性\n\n- 🖥️ **AG-UI 协议集成** – AG2 现在原生支持 [AG-UI 协议](https:\u002F\u002Fdocs.ag-ui.com\u002F)，这是代理与用户交互的开放标准。借助流式响应、共享状态同步、工具调用渲染以及人机协作工作流，您可以基于 AG2 代理构建动态、实时的前端界面。轻松对接 CopilotKit 及其他兼容 AG-UI 的前端。[开始使用](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fag-ui\u002F)\n\n- 📊 **OpenTelemetry 跟踪与监控** – 为您的多代理工作流提供全面可观测性！AG2 现已支持 OpenTelemetry 跟踪，使您能够监控、调试和分析本地及远程 A2A 代理之间的交互过程。包含 LLM 层面的 token 使用量和成本信息。可使用 Jaeger、Honeycomb 等行业标准工具以及其他 OTEL 兼容后端进行观测。[开始使用](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Ftracing\u002Fopentelemetry\u002F)\n\n### LLM 增强\n- 🔄 **Anthropic V1 客户端流式传输** – 新增对 Anthropic V1 客户端的流式传输及非测试版支持，提升了响应处理能力和兼容性。\n\n### 错误修复\n- 🤝 **A2A 消息支持** – 修复了 Anthropic 和 OpenAI 客户端，使其支持无角色的消息，以用于代理间通信（A2A）。\n\n### 重要：弃用内容\n- 关于 LLMConfig 相关的弃用信息，请参阅此 PR：[https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2397](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2397)\n\n### 文档与维护\n- 📔 新增文档：[MCP 客户端会话管理器](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Ftools\u002Fmcp\u002Fmcp_client_session_manager\u002F)指南。\n- 📔 新增文档：在工具章节中添加了[内置工具文档](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Ftools\u002Fag2-built-in-tools-support\u002F)。\n- 📔 清理并简化了[快速入门](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fquick-start\u002F)。\n- 🔗 修复了文档中的链接。\n\n## 变更内容\n* 由 @mihai-eng 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2365 中完成的快速入门示例清理与简化\n* 由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2315 中实现的 AG-UI 原生支持\n* 由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2368 中实现的 AG-UI 状态事件支持\n* 由 @Maglctea 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2383 中从文档中移除 LLMConfig 中的 config_list 参数\n* 由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2385 中将 ag-ui 添加到文档所需模块列表中\n* 由 @Maglctea 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2388 中修复文档中的链接\n* 由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2378 中新增 MCP 客户端会话管理器文档\n* 由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2376 中补充工具章节中缺失的专用内置工具文档\n* 由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2309 中实现的跟踪与监控功能\n* 由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2389 中实现的 Anthropic V1 客户端流式传输及非测试版支持\n* 修复了 Anthropic 和 OpenAI 客户端的问题","2026-02-10T09:07:43",{"id":210,"version":211,"summary_zh":212,"released_at":213},306509,"v0.10.5","## 亮点\n\n### 功能增强\n- 🚀 **支持 GPT 5.2 Codex 模型** – 新增对 OpenAI 的 GPT 5.2 Codex 模型的支持，为您的智能体带来更强大的编码能力。\n\n- 🐚 **支持 GPT 5.1 Shell 工具** – Responses API 现已支持 Shell 工具，使智能体能够与命令行界面交互，用于文件系统诊断、构建\u002F测试流程以及复杂的智能体编码工作流。  \n  请查看博客文章：[Shell 工具与多内建工具执行](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fblog\u002F2025\u002F12\u002F24\u002FAG2-Shell-Tool-and-multi-in-built-tool-execution\u002F)。\n\n- 🔬 **RemyxCodeExecutor** – 针对科研论文执行的全新代码执行器，扩展了 AG2 在科学和研究工作流中的能力。  \n  请参阅更新后的代码执行文档：[代码执行](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Fcode-execution\u002F)。\n\n### 文档更新\n- 📔 新指南：[Google Vertex AI 部署](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fdeployments\u002Fdeploy-an-agent-to-vertexai\u002F)\n- 📝 新博客文章：[Gemini 思考配置](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fblog\u002F2025\u002F12\u002F29\u002FAG2-Gemini-Thinking-Config-Support\u002F)\n- 📝 新博客文章：[Shell 工具与多内建工具执行](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fblog\u002F2025\u002F12\u002F24\u002FAG2-Shell-Tool-and-multi-in-built-tool-execution\u002F)\n- 🔧 修复了编排基础概念的相关文档。\n\n### 问题修复\n- 🔒 **安全修复** – 修复了多个 CVE（CVE-2026-23745、CVE-2026-23950、CVE-2026-24842），以提升安全防护水平。\n- 🤖 **Gemini A2A 消息支持** – 修复了 Gemini 客户端，使其支持不含 `role` 字段的 A2A 消息。\n- ⚡ **GroupToolExecutor 异步处理程序** – 为 `GroupToolExecutor` 添加了异步回复处理程序，以更好地支持异步工作流。\n- 🔧 **Anthropic BETA_BLOCKS_AVAILABLE 导入问题** – 修复了 Anthropic Beta 块的导入问题。\n- 👥 **GroupChat 智能体名称验证** – 现在会验证 GroupChat 中的智能体名称是否唯一，以避免冲突。\n- 🪟 **OpenAI Shell 工具 Windows 路径处理** – 修复了 Shell 工具对 Windows 路径的解析问题。\n- 🔄 **异步运行事件修复** – 防止在使用异步 `run` 时出现重复的 `using_auto_reply` 事件。\n\n## 变更内容\n* 修复：[严重级别 高] CVE-2026-23745，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2340 中完成\n* 修复：在 GroupChat 中验证智能体名称的唯一性，由 @Jing-yilin 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2333 中完成\n* 功能：新增 RemyxCodeExecutor，用于科研论文执行，由 @salma-remyx 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2141 中完成\n* 修复：CVE-2026-23950，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2350 中完成\n* 文档：新增 Google Vertex AI 部署指南，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2305 中完成\n* 文档：关于 Gemini 思考配置的博客文章，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2303 中完成\n* 修复：Anthropic BETA_BLOCKS_AVAILABLE 的导入问题，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2326 中完成\n* 修复编排基础概念相关问题，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F 中完成","2026-01-30T20:34:21",{"id":215,"version":216,"summary_zh":217,"released_at":218},306510,"v0.10.4","## 亮点\n- 🕹️ **单步执行** - 强大的全新编排功能 `run_iter`（以及 `run_group_chat_iter`），允许开发者按事件逐个暂停并逐步执行代理工作流。这使得精细化调试、人工介入验证以及对执行循环的精确控制成为可能。\n- ☁️ **AWS Bedrock 的“思考模式”与可靠性** - Bedrock 客户端的重大升级：\n    - **可靠性**：新增内置的**指数退避与重试机制**，解决了 Bedrock Converse API 上的限流问题。\n    - **高级配置**：支持 `additionalModelRequestFields`，通过 `BedrockConfigEntry` 直接启用如 **Claude 3.7 Sonnet 的“思考模式”** 等高级模型特性及其他供应商特定参数。\n- 💰 **精准的群聊成本追踪** - 成本可观测性的一项关键增强。此前，群聊可能仅追踪管理者或最后一位代理的成本；此次更新确保群聊会话中**所有**参与代理的成本都能被正确汇总。\n- 🤗 **HuggingFace 模型提供商** - 新增专门的集成指南和支持文档，帮助用户更轻松地使用 HuggingFace 模型提供商，从而更好地利用开源模型。\n- 🐍 **Python 3.14 兼容准备** - 添加了对 Python 3.14 的 `devcontainer.json` 支持，为下一代 Python 开发环境做好准备。\n- 📚 **文档与博客** - 全面的新资源包括：\n    - **日志事件**：深入探讨代理事件的跟踪与调试。\n    - **MultiMCPSessionManager**：管理多个模型上下文协议会话的指南。\n    - **应用补丁工具**：关于如何使用补丁应用工具的教程。\n\n## 变更内容\n* 修复：为群聊运行设置 RunResponse 中的代理信息，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2274 中完成。\n* 杂项：在 RunResponseProtocol 中添加 @runtime_checkable 装饰器，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2273 中完成。\n* 修复：文档中的意外字符，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2282 中完成。\n* 修复：Claude 评论相关问题，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2285 中完成。\n* 文档：博客文章《日志事件》，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2286 中发布。\n* 文档：博客文章《MultiMCPSessionManager》，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2287 中发布。\n* 文档：修复 A2A 文档解析错误，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2281 中完成。\n* 避免导入时出现 Pydantic 已弃用警告，由 @majiayu000 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2272 中完成。\n* 处理缺失的 A2A 任务开始事件，由 @majiayu000 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2275 中完成。\n* 文档：修复导航日志事件问题，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2280 中完成。\n* 文档：统一 ReferenceAgent，由 @yashdeepkumar 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2268 中完成。\n* 文档：修复 DocAgent 性能导航问题，由 @yashdeepkumar 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2294 中完成。\n* 修复：横幅图片，由 @priyansh4320 完成。","2026-01-15T00:08:14",{"id":220,"version":221,"summary_zh":222,"released_at":223},306511,"v0.10.3","## 亮点\n\n### 功能增强\n- 🚀 **OpenAI GPT 5.2 支持** – 新增对 OpenAI 最新 GPT-5.2 模型的支持，包括全新的 `xhigh` 推理强度级别，以提升复杂任务的处理性能。\n- 🛠️ **OpenAI GPT 5.1 `apply_patch` 工具支持** – Responses API 现已支持 `apply_patch` 工具，能够以 V4A diff 格式进行结构化代码编辑，适用于多文件重构、缺陷修复及精确的代码修改。\n教程笔记本请参阅：[GPT 5.1 apply_patch with AG2](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_gpt5.1_apply_patch_example\u002F)。\n- 🧠 **Gemini ThinkingConfig 支持** – 将思考\u002F推理配置（ThinkingConfig）扩展至 Google Gemini 模型，允许用户控制模型推理的深度和延迟。\n教程笔记本请参阅：[Gemini Thinking with AG2](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_gemini_thinking_config_example\u002F)。\n- ✨ **Gemini 3 思考签名** – 为 Gemini 3 模型的函数添加了思考签名支持，从而更好地捕获推理轨迹并用于下游处理。\n- 📊 **事件日志增强** – 事件打印现通过日志系统路由，使您能够更灵活地控制代理输出及调试信息。\n\n### Bug 修复与文档更新\n- 🔧 **Anthropic Beta API 工具格式** – 修复了 Anthropic Beta API 的工具格式问题，使工具调用更加可靠。\n- 🔩 **Bedrock 结构化输出** – 修正了使用 `response_format` API 时 Bedrock 结构化输出的工具选择处理问题。\n- ⚙️ **Gemini FunctionDeclaration** – 现在为 Gemini 的 `FunctionDeclaration` 参数使用正确的 Schema 对象，从而提高函数调用的可靠性。\n- 🛠️ **OpenAI V2 客户端工具调用提取** – 修复了 OpenAI V2 客户端中从 `message_retrieval` 提取工具调用的逻辑。\n- 🔄 **长周期任务处理** – 修正了长时间运行代理任务的异步处理问题。\n- 🖼️ 修复了 **MultimodalConversableAgent** 中 `\u003Cimg>` 标签的处理问题。\n- ✅ **异步 default_auto_reply 验证** – 解决了使用异步 `default_auto_reply` 时出现的验证错误。\n- 📔 更新了笔记本和文档，简化了 LLMConfig 的使用方法。\n\n## 变更内容\n* 版本升级至 0.10.2，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2239 中完成。\n* [增强] 修复 OpenAI V2 客户端从 message_retrieval 中提取工具调用的逻辑，由 @randombet 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2214 中完成。\n* 功能：将事件打印路由至日志系统，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2217 中完成。\n* 修复：处理 MultimodalConversableAgent 中的 img 标签，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2247 中完成。\n* 杂项：Google GenAI 版本升级，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2240 中完成。\n* 功能：新增 OpenAI GPT 5.2 支持，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2250 中完成。\n* 文档：修复 LLMConfig 赋值问题，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2252 中完成。\n* 修复：验证","2025-12-19T21:38:03",{"id":225,"version":226,"summary_zh":227,"released_at":228},306512,"v0.10.2","## 亮点\n- 🧠 Anthropic 结构化输出 - AG2 现在支持 Anthropic 的全新结构化输出 API，通过约束解码实现模式保证的响应。\n请查看教程笔记本，了解结构化输出如何在多种 AG2 编排模式中工作：[Anthropic 结构化输出与 AG2](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fblob\u002Fmain\u002Fnotebook\u002Fagentchat_anthropic_structured_outputs.ipynb)。\n- ⚙️ 新增对 Bedrock 结构化输出的一流支持，使用 response_format API。\n- 🔧 ThinkingBlock 功能增强 - ThinkingBlock 现在支持针对 Anthropic 客户端的文本提取逻辑，从而更好地捕获推理轨迹并进行下游处理。\n- 🧩 Pydantic 结构化输出适用于 OpenAI（Completions v2）\n- 🌐 A2A 客户端拦截器支持\n- 📔 文档更新\n- 🛠️🪲 安全性和错误修复\n\n## 变更内容\n* docs: 修复 DocAgent 文档，并由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2206 中修复表格相关文档。\n* 由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2093 中添加交接事件。\n* [增强] 将 Golden_Retriever 图片 URL 替换为简单的 Base64 字符串图片，由 @randombet 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2207 中完成。\n* feat: 在 404 错误中添加地址信息，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2210 中实现。\n* [增强] 为 OpenAICompletionsClient 添加 Pydantic 结构化输出，由 @randombet 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2208 中完成。\n* 增加从 ThinkingBlock 提取文本的逻辑，由 @ManuelPeixotoCegid 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2139 中实现。\n* feat: 支持 A2A 客户端拦截器，由 @Lancetnik 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2231 中完成。\n* [特性] 使用 JSON 输出的 Anthropic 结构化输出，由 @randombet 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2220 中实现。\n* fix: 修复异步调用中缺失的 await 以及 Bedrock 的 KeyError，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2221 中完成。\n* Fix: 使用 GitHub 静态图片替换用于测试的 Wiki 图片，由 @randombet 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2236 中完成。\n* 修复 google-sdk 依赖版本无上限的问题，由 @randombet 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2237 中完成。\n* feat:[response_format] Bedrock 客户端结构化输出，由 @priyansh4320 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2226 中实现。\n* fix: 修复使用 OpenAI 客户端时结构化输出与流式传输无法同时生效的问题，由 @marklysze 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2234 中完成。\n\n## 新贡献者\n* @ManuelPeixotoCegid 在 https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2139 中做出了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.10.1...v0.10.2","2025-12-05T23:21:16",{"id":230,"version":231,"summary_zh":232,"released_at":233},306513,"v0.10.1","## Highlights\r\n- 🧠 New OpenAI Client Architecture - the first of our V2 client architectures, providing a foundation for multi-modal messages and access to thinking\u002Freasoning tokens. Fully compatible with agents using V1 clients. Check out our [Image input\u002Foutput](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_openai_v2_client_image\u002F) and [V1 and V2 client compatibility](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_v1_v2_client_compatibility\u002F) notebooks!\r\n- ⚙️ FunctionTarget in group chats - use a function to determine the target\r\n- 🧠 OpenAI GPT-5.1 support\r\n- 🌐 A2A updates and fixes\r\n- 📔 Documentation updates\r\n- 🛠️🪲 Security and bug fixes\r\n\r\n## What's Changed\r\n* feat: Implement new FunctionTarget by @gabriel-eidelman in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2031\r\n* fix: empty a2a message by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2163\r\n* feat: add A2A Card to Agent builder by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2165\r\n* documentation: Add multimcpclientsessionmanager notebook example by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2168\r\n* fix UnboundLocalError in function_target by @gabriel-eidelman in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2169\r\n* [MISC] Fix mypy errors by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2167\r\n* fix: claude-code-review OIDC handshake for forked branches by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2171\r\n* Add A2A Protocol Support blog post by @sam-ag2 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2170\r\n* docs: AG2xA2A banner image by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2183\r\n* chore: update Anthropic Sonnet model to 4.5 for tests by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2186\r\n* Feat\u002Fa2a hitl by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2187\r\n* docs: Update Agent-to-Agent to Agent2Agent branding by @sam-ag2 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2193\r\n* Fix: OpenAI , azure, gemini tests and update credentials by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2188\r\n* Restructured llm configurations by @Ruchita-debug in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2195\r\n* [Feature] New client architecture with OAI completions API client by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2182\r\n* fix: chromadb and sentence-transformers package versions by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2202\r\n* feat: add gpt 5.1 , codex and search models configs by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2205\r\n\r\n## New Contributors\r\n* @gabriel-eidelman made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2031\r\n* @sam-ag2 made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2170\r\n* @Ruchita-debug made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2195\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.10.0...v0.10.1","2025-11-14T22:32:01",{"id":235,"version":236,"summary_zh":237,"released_at":238},306514,"v0.10.0","## Highlights in 0.10!\r\n\r\n🌐 **Remote Agents with A2A Protocol** – AG2 now supports the open standard **Agent2Agent (A2A)** protocol, enabling your AG2 agents to discover, communicate, and collaborate with agents across different platforms, frameworks, and vendors. Build truly interoperable multi-agent systems that work seamlessly with agents from LangChain, CrewAI, and other frameworks. [Get started with Remote Agents!](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fa2a\u002F)\r\n\r\n🛡️ **Safe Guards in Group Chat** – comprehensive fine-grained security control now available in group chats, [documentation](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Forchestration\u002Fgroup-chat\u002Fsafeguards\u002F)\r\n\r\n📚 **Flow Diagrams** – Flow diagrams for all AG2 orchestrations, [example](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Fpattern-cookbook\u002Foverview\u002F)\r\n\r\n🐛 **Bug Fixes & Stability**\r\n\r\n## What's Changed\r\n* misc: Update policy-guided safeguard to support initiate_group_chat API by @jiancui-research in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2121\r\n* misc: Add Claude Code GitHub Workflow by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2146\r\n* misc: Disable Claude code review on Draft PRs by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2147\r\n* feat: Enable list[dict] type for message['content'] for two-agent chat and group chat APIs by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2145\r\n* chore: Remove custom client multimodal tests by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2151\r\n* fix: claude code review for forked branches by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2149\r\n* feat: RemoteAgents by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2055\r\n* fix: Tools detection for OpenAI o1 + LLM Tools\u002FFunctions merging by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2161\r\n* docs: add process message before send hook to documentation by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2154\r\n* Bump version to 0.10 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2162\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.10...v0.10.0","2025-10-22T22:03:15",{"id":240,"version":241,"summary_zh":242,"released_at":243},306515,"v0.9.10","## Highlights\r\n🛡️ Maris Security Framework - Introducing policy-guided safeguards for multi-agent systems with configurable communication flow guardrails, supporting both regex and LLM-based detection methods for comprehensive security controls across agent-to-agent and agent-to-environment interactions. [Get started](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Forchestration\u002Fgroup-chat\u002Fsafeguards\u002F)\r\n\r\n🏗️ YepCode Secure Sandbox - New secure, serverless code execution platform integration enabling production-grade sandboxed Python and JavaScript execution with automatic dependency management. [Get started](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_yepcode_executor\u002F)\r\n\r\n🔧 Enhanced Azure OpenAI Support - Added new **\"minimal\"** reasoning effort support for Azure OpenAI, expanding model capabilities and configuration options.\r\n\r\n🐛 Security & Stability Fixes - Multiple security vulnerability mitigations (CVE-2025-59343, CVE-2025-58754) and critical bug fixes including memory overwrite issues in DocAgent and async processor improvements.\r\n\r\n📚 Documentation & Examples - New [web scraping tutorial with Oxylabs](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_webscraping_with_oxylabs\u002F) and updated API references\r\n\r\n⚠️ LLMConfig API Updates - *Important deprecation* of legacy `LLMConfig` contextmanager, `.current`, and `.default` methods in future release v0.11.0\r\n\r\n## What's Changed\r\n* fix: remove temperature & top_p restriction by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2054\r\n* chore: apply ruff c4 rule by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2056\r\n* chore(deps): bump the pip group with 10 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2042\r\n* chore: remove useless python versions check by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2057\r\n* Add YepCode secure sandbox code executor by @marcos-muino-garcia in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1982\r\n* [Enhancement] Falkor db SDK update and clean up by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2045\r\n* Create agentchat_webscraping_with_oxylabs.ipynb by @zygimantas-jac in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2027\r\n* chore(deps): bump the pip group with 11 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2064\r\n* refactor: ConversableAgent improvements by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2059\r\n* [documentation]: fix cluttered API references by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2069\r\n* [documentation]: updates SEO by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2068\r\n* [documentation]:fix broken notebook markdown by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2070\r\n* chore(deps): bump the pip group with 8 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2073\r\n* refactor: deprecate LLMConfig contextmanager, .current, .default by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2028\r\n* Bugfix: memory overwrite on DocAgent by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2075\r\n* Added config for Joggr by @VasiliyRad in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2088\r\n* fix:[deps resolver,rag] use range instead of explicit versions by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2072\r\n* Replace asyncer to anyio by @kodsurfer in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2035\r\n* feat: add minimal reasoning effort support for AzureOpenAI by @joaorato in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2094\r\n* chore(deps): bump the pip group with 10 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2092\r\n* chore(deps): bump the github-actions group with 4 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2091\r\n* follow-up of the AG2 Community Talk: \"Maris: A Security Controlled Development Paradigm for Multi-Agent Collaboration Systems\" by @jiancui-research in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2074\r\n* Updated README by @VasiliyRad in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2085\r\n* Add document for the policy-guided safeguard (Maris) by @jiancui-research in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2099\r\n* Updated use of NotGiven in realtime_test_utils by @VasiliyRad in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2116\r\n* Add blog post for Cascadia AI Hackathon Winner by @allisonwhilden in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2115\r\n* fix(io): make console input non-blocking in async processor by @ashm-dev in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2111\r\n* Documentation\u002FBugfix\u002Fmitigate: LLMConfig declaration, models on temperature CVE-2025-59343, CVE-2025-58754 and some weaknesses by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2117\r\n* [Fix] Update websurfer header to bypass block by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2120\r\n* [Bugfix] Fix yepcode build error by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2118\r\n* [docs] update config list filtering examples to allow string or list by @aakash232 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2109\r\n* fix: correct typo in NVIDIA 10-K document by @viktorking7 in h","2025-10-03T07:44:44",{"id":245,"version":246,"summary_zh":247,"released_at":248},306516,"v0.9.9","## Highlights\r\n🪲 Bug fixes - including package version comparison fix\r\n📔 Documentation updates\r\n\r\n## What's Changed\r\n* Package build updates by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2033\r\n* Fix Markdown Formatting in Verbosity Example Notebook by @BlocUnited in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2038\r\n* Fix markdown formatting in GPT-5 verbosity example notebook by @BlocUnited in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2039\r\n* Fix: Correct package dependency version comparisons by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2047\r\n* Bugfix: Auto-selection during manual selection group chat causes exce… by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2040\r\n* [Enhancement] Update graphrag_trip_planne notebook by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2041\r\n* docs: Update references to Python 3.9 to 3.10 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2032\r\n* Version bump to 0.9.8.post1 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2034\r\n* Bump version to 0.9.9 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2051\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.8...v0.9.9","2025-08-20T00:36:10",{"id":250,"version":251,"summary_zh":252,"released_at":253},306517,"v0.9.8.post1","## Highlights from v0.9.8\r\n🧠 Full GPT-5 Support – All GPT-5 variants are now supported, including gpt-5, mini, and nano. [Try it here](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_gpt-5_verbosity_example\u002F)\r\n🐍 Python 3.9 Deprecation – With Python 3.9 nearing end-of-support, AG2 now requires Python 3.10+.\r\n🛠️ MCP Attribute Bug Fixed – No more hiccups with MCP attribute handling.\r\n🔒 Security & Stability – Additional security patches and bug fixes to keep things smooth and safe.\r\n\r\n## What's Changed\r\n* Package build updates by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2033\r\n* docs: Update references to Python 3.9 to 3.10 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2032\r\n* Version bump to 0.9.8.post1 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2034\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.8...v0.9.8.post1","2025-08-15T05:07:26",{"id":255,"version":256,"summary_zh":257,"released_at":258},306518,"v0.9.8","## Highlights\r\n🧠 Full GPT-5 Support – All GPT-5 variants are now supported, including gpt-5, mini, and nano. [Try it here](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_gpt-5_verbosity_example\u002F)\r\n🐍 Python 3.9 Deprecation – With Python 3.9 nearing end-of-support, AG2 now requires Python 3.10+.\r\n🛠️ MCP Attribute Bug Fixed – No more hiccups with MCP attribute handling.\r\n🔒 Security & Stability – Additional security patches and bug fixes to keep things smooth and safe.\r\n\r\n## What's Changed\r\n* fix: LLMConfig Validation Error on 'stream=true' by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1953\r\n* Update conversable_agent.py by @lazToum in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1966\r\n* Docs:[Grok usecase] Analysis on large SBOMs by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1970\r\n* fix: Update Arize Phoenix AutoGen documentation link by @reallesee in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1942\r\n* Repo: Adjust schedule for workflows requiring review by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1972\r\n* feat: MCPClientSessionManager class for multi-stdio sessions by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1967\r\n* lint: fix ExceptionGroup imports by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1979\r\n* Bump the pip group across 1 directory with 25 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1973\r\n* fix: Correct variable name in generate_mkdocs.py by @lechpzn in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1977\r\n* docs: add CONTRIBUTING.md refers documentation by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1980\r\n* docs: polish badges by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1984\r\n* docs: fix list rendering in contribution guide part of docs by @danfimov in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1987\r\n* lint: fix mypy by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1998\r\n* docs: fix broken markup at Contributing page by @danfimov in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1986\r\n* chore: fix typo in comment sections by @kks-code in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1991\r\n* feat:[MCPClientSessionManager] can manage SSE and Stdio session both by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1983\r\n* feat: update gpt-5 model configs by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1999\r\n* fix: proccess messages without content by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1988\r\n* Update waldiez.mdx by @ounospanas in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2004\r\n* fix: remove Windows restriction for LocalJupyterServer by @Shepard2154 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2006\r\n* feat: Add gpt-5 minimal reasoning to chat.completion by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2007\r\n* feat: Add verbosity support for GPT-5, GPT-5-mini, GPT-5-nano by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2002\r\n* Bump astral-sh\u002Fsetup-uv from 5 to 6 in the github-actions group by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1735\r\n* fix: improve openai response format handling for json_object type by @lemorage in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1992\r\n* feat: make LLMConfig init method typed by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2014\r\n* Introduced \"Proxy\" Configuration for Gemini (Non Vertex AI). by @DebajitKumarPhukan in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1949\r\n* fix: Error when calling with azureopenai by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1993\r\n* mcp_proxy: FastMCP init uses name= (not title=) by @bassilkhilo-ag2 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2018\r\n* Update agentchat_websockets.ipynb by @auslaner in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2023\r\n* Bump the pip group with 8 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2013\r\n* Cerebras, support for reasoning_effort, minor typos by @maxim-saplin in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2016\r\n* chore(ci): upgrade checkout to v5 by @rejected-l in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2015\r\n* chore: drop python3.9 support by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1981\r\n* Bugfix: Non-terminating chat on ConversableAgent by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1958\r\n* refactor: type LLMConfig with TypedDicts by @Lancetnik in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2019\r\n* Update conversable_agent by @lazToum in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2003\r\n* refactor: handle evolved ChatCompletion schema by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F2029\r\n* Version bump to 0.9.7 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1968\r\n\r\n## New Contributors\r\n* @reallesee made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1942\r\n* @Lancetnik made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1979\r\n* @lechpzn made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1977\r\n* @danfimov made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1987\r\n* @kks-code made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1991\r\n* @Shepard2154 made their first contribution in https:\u002F\u002Fgithub.com\u002Fag","2025-08-15T03:36:16",{"id":260,"version":261,"summary_zh":262,"released_at":263},306519,"v0.9.7","## Highlights\r\n* 🔎 AG2 welcomes xAI's Grok and its live search! [Try it out](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_grok_example\u002F)\r\n* ⚙️ [Static and dynamic tool registration](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagent_tools_run_examples\u002F) for two-agent chats\r\n* 🧠 Support for the `seed` parameter on `LLMConfig` with Gemini models\r\n* 🛠️ Security and bug fixes\r\n\r\n## What's Changed\r\n* Improve documentation and test coverage for filter_config function by @bfdykstra in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1923\r\n* Bugfix: Register MCP Tools Like MCP Resources by @JamesVorder in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1950\r\n* fix: Ollama LLMConfig ValidationError on 'native_tool_calls' by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1951\r\n* mitigate: Vulnerability CVE-2024-6982 by @priyansh4320 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1963\r\n* Add support for seed parameter for Gemini client by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1955\r\n* [Enhancement] Add comprehensive Grok integration support by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1962\r\n* [Enhancement] Fix functions not register for execution for run and a_run methods by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1954\r\n* Update sqlite_logger.py by @lazToum in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1957\r\n* Create waldiez.mdx by @ounospanas in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1943\r\n\r\n## New Contributors\r\n* @bfdykstra made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1923\r\n* @JamesVorder made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1950\r\n* @priyansh4320 made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1951\r\n* @ounospanas made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1943\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.6...v0.9.7","2025-07-25T08:46:50",{"id":265,"version":266,"summary_zh":267,"released_at":268},306520,"v0.9.6","## What's Changed\r\n* Release image update by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1931\r\n* change para name to avoid collision by @qingyun-wu in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1937\r\n* feat: Add configurable routing method to LLMConfig and OpenAIWrapper by @sonichi in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1936\r\n* Support container_create_kwargs in DockerCommandLineCodeExecutor by @salma-remyx in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1929\r\n* Python code execution tool (System\u002FVenv\u002FDocker) by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1371\r\n* Add Claude Code CLI to devcontainer setup by @sonichi in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1938\r\n\r\n## New Contributors\r\n* @salma-remyx made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1929\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.5...v0.9.6","2025-07-08T14:52:59",{"id":270,"version":271,"summary_zh":272,"released_at":273},306521,"v0.9.5","## Highlights\r\n🖼️ **Image generation and understanding**\r\nUse our OpenAI Responses API integration to generate images and for image understanding.\r\n  - [Getting started](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fmodels\u002Fopenai_responses\u002F)\r\n  - [Image Generation notebook](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_oai_responses_image\u002F)\r\n  - [Tool use](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_oai_responses_api_tool_call\u002F) and [Structured output](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_oai_responses_api_structured_output\u002F) notebooks\r\n  - We're just getting started with integrating the Responses API into AG2 so keep an eye out on future releases which will enable use within group chats and the `run` interface.\r\n  - Here's one we created using the [Image Generation notebook](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuse-cases\u002Fnotebooks\u002Fnotebooks\u002Fagentchat_oai_responses_image\u002F)\r\n![0.9.5!](https:\u002F\u002Fmedia.githubusercontent.com\u002Fmedia\u002Fag2ai\u002Fag2\u002Frefs\u002Fheads\u002Fmain\u002Fnotebook\u002Fopenai_responses_style_3.png)\r\n\r\n🌊 **MCP Notebook Updates**\r\nMCP notebooks have been updated covering Streamable-HTTP transport, API Key \u002F HTTP \u002F OAuth authentication, and incorporating MCP with AG2. [Intro](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Ftools\u002Fmcp\u002Fclient\u002F?h=mcp#introduction-to-mcp), [general notebooks](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Ftree\u002F49c8f8bd2dc594c751bd03f1964afd08e55495d9\u002Fnotebook\u002Fmcp), and [security](https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Ftree\u002F49c8f8bd2dc594c751bd03f1964afd08e55495d9\u002Fnotebook\u002Fmcp\u002Fsecurity).\r\n\r\n♥️ Thanks to all the contributors and collaborators that helped make the release happen!\r\n\r\n## What's Changed\r\n* MCP notebook and documentation fixes by @qingyun-wu in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1925\r\n* [Feature] OAI responses api with multimodal input & output by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1917\r\n* Test updates for LLM testing by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1930\r\n* Update version to 0.9.5 by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1928\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.4...v0.9.5","2025-07-04T03:04:26",{"id":275,"version":276,"summary_zh":277,"released_at":278},306522,"v0.9.4","## 🌟 Highlights\r\n🛡️ **Guardrails for AG2 GroupChat Are Here!!!**\r\nTake control of your multi-agent workflows with Guardrails – a powerful new feature that lets you enforce execution constraints, validate outputs, and keep your agentic orchestration safe and reliable.\r\n🔍 Dive into the docs: [docs.ag2.ai ➜ Guardrails](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Forchestration\u002Fgroup-chat\u002Fguardrails\u002F)\r\n\r\n🌊 **Streamable-HTTP for Lightning-Fast MCP**\r\n⚡ Streamable-HTTP is now supported as a transport protocol for MCP clients — enabling real-time, incremental streaming with improved responsiveness and reliability.\r\n(Going forward, replacing HTTP+SSE from protocol version 2024-11-05, according to Anthropic.)\r\n🔎 Spec from Anthropic: [streamable-http @ modelcontextprotocol.io](https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-03-26\u002Fbasic\u002Ftransports#streamable-http)\r\n📘 AG2 Guide: [MCP Client Intro @ AG2 Docs](https:\u002F\u002Fdocs.ag2.ai\u002Flatest\u002Fdocs\u002Fuser-guide\u002Fadvanced-concepts\u002Ftools\u002Fmcp\u002Fclient\u002F?h=mcp#introduction-to-mcp)\r\n\r\n♥️ Thanks to all the contributors and collaborators that helped make the release happen!\r\n\r\n## What's Changed\r\n* feat: Add sender and recipient fields to TerminationEvent by @r4881t in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1908\r\n* feat: support context manager usage for LLMConfig by @mukundkumarjha in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1777\r\n* Add searxng tool and websurfer by @dcieslak19973 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1907\r\n* Ag2 1905 add firecrawl web tool 20250620 by @dcieslak19973 in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1909\r\n* Add streamable-http option to mcp client by @sternakt in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1914\r\n* Update link index.mdx by @eeemmmmmm in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1915\r\n* Fix Gemini tool call message handling and handle failed responses with empty-content by @marklysze in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1916\r\n* Introduce guardrails by @giorgossideris in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1840\r\n* [Bug fix] Add guardrails page to the sidebar by @randombet in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1920\r\n* Bump to v0.9.4 by @qingyun-wu in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1921\r\n\r\n## New Contributors\r\n* @r4881t made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1908\r\n* @mukundkumarjha made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1777\r\n* @eeemmmmmm made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1915\r\n* @randombet made their first contribution in https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fpull\u002F1920\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fag2ai\u002Fag2\u002Fcompare\u002Fv0.9.3...v0.9.4","2025-06-28T05:21:03"]