ag2

GitHub
4.4k 589 简单 1 次阅读 今天Apache-2.0开发框架Agent图像语言模型
AI 解读 由 AI 自动生成,仅供参考

AG2(前身为 AutoGen)是一款开源的 AI 智能体操作系统,旨在简化多智能体协作应用的开发与研究。它核心解决了让多个 AI 智能体高效沟通、自主协作以解决复杂任务的问题,支持从简单的对话交互到涉及代码执行、工具调用的自动化工作流。

AG2 特别适合开发者、研究人员以及希望构建高级 AI 应用的技术团队使用。通过它,用户可以轻松编排多个智能体,让它们像团队成员一样分工合作:有的负责规划,有的负责写代码,有的负责审查结果。其独特的技术亮点包括灵活的“人机协同”模式,允许人类在关键节点介入决策;支持接入多种大语言模型(LLM);以及提供丰富的预设对话模式,能够模拟现实中的协作场景。

作为一个完全开源的项目,AG2 正朝着 1.0 版本稳步演进,致力于成为构建下一代自主 AI 系统的基石。无论你是想探索多智能体前沿研究,还是希望快速落地企业级自动化方案,AG2 都提供了强大而灵活的框架支持,帮助你将创意转化为现实。

使用场景

某电商数据团队需要每日自动抓取竞品价格、分析波动趋势并生成带图表的分析报告发送给运营总监。

没有 ag2 时

  • 流程割裂严重:开发人员需分别编写爬虫脚本、数据分析代码和邮件发送逻辑,三个环节独立运行,一旦中间出错需人工介入重启。
  • 异常处理困难:当爬虫因反爬机制失败或 LLM 输出格式错误时,缺乏自动重试或自我修正机制,导致任务直接中断。
  • 多模型协作复杂:难以让擅长代码的模型与擅长分析的模型动态交互,通常只能硬编码固定流程,无法应对灵活的分析需求。
  • 人工干预频繁:每次生成报告前都需要人工检查数据准确性,无法实现真正的“无人值守”自动化。

使用 ag2 后

  • 多代理自动协同:构建“爬虫代理”、“分析代理”和“报告代理”,三者自动对话协作,爬虫获取数据后直接交给分析代理,完成后触发报告生成,全流程无缝衔接。
  • 具备自愈能力:若代码执行报错,ag2 内的代理会自动识别错误信息并尝试重新编写代码修复,大幅减少任务中断率。
  • 动态工具调用:不同代理可根据任务需求自主调用搜索、代码解释器或绘图工具,无需预设死板流程,灵活应对各种数据异常情况。
  • 人机回路可选:仅在关键决策点(如数据异常波动过大)暂停并请求人类确认,其余时间完全自动化运行,显著释放人力。

ag2 通过将分散的脚本转化为能自主沟通、协作且具备自愈能力的智能体网络,将原本耗时数小时的人工运维工作转变为稳定高效的全自动闭环。

运行环境要求

操作系统
  • Windows
  • Linux
  • macOS
GPU

未说明

内存

未说明

依赖
notes该工具主要作为编程框架运行,依赖外部大语言模型(LLM)API(如 OpenAI),而非本地部署大型模型,因此文中未提及具体的 GPU、显存或内存硬件需求。安装时可通过 `pip install ag2[openai]` 获取包含 OpenAI 支持的最小化依赖版本。建议将 API 密钥存储在配置文件中并加入 .gitignore 以避免泄露。
python>=3.10, <3.14
ag2 (或 autogen)
openai (可选额外依赖)
ag2 hero image

快速开始



下载量

📚 文档 | 💡 示例 | 🤝 贡献 | 📝 引用论文 | 💬 加入 Discord

AG2 是由 AutoGen 发展而来,完全开源。我们诚邀各组织的合作者共同参与贡献。

[!IMPORTANT] AG2 正在迈向 v1.0。 当前框架将在接下来的几个小版本中通过弃用功能逐步优化,并转入维护模式。测试版框架(autogen.beta)将在 v1.0 时成为 AG2 的正式版本。

阅读完整的发布路线图 →

AG2:面向 AI 代理的开源 AgentOS

AG2(原名 AutoGen)是一个开源编程框架,用于构建 AI 代理,并促进多个代理之间的协作以完成任务。AG2 致力于简化代理式 AI 的开发和研究。它提供了多种功能,包括能够相互通信的代理、对各种大型语言模型(LLM)的支持及工具使用支持、自主与人机协作的工作流,以及多代理对话模式。

该项目目前由来自多家机构的志愿者团队维护。如果您有意成为维护者,请通过support@ag2.ai联系项目管理员 Chi Wang 和 Qingyun Wu。

目录

入门指南

有关 AG2 概念和代码的分步教程,请参阅我们的文档中的基本概念部分。

安装

AG2 需要 Python 版本 >= 3.10, < 3.14。AG2 可通过 PyPI 上的 ag2(或其别名 autogen)获取。

Windows/Linux:

pip install ag2[openai]

Mac:

pip install 'ag2[openai]'

默认会安装最低依赖项。您可以根据需要的功能安装额外选项。

配置 API 密钥

为保持 LLM 依赖关系整洁,并避免意外提交包含 API 密钥的代码,我们建议将密钥存储在配置文件中。

在我们的示例中,我们使用名为 OAI_CONFIG_LIST 的文件来存储 API 密钥。您可以选择任何文件名,但请务必将其添加到 .gitignore 中,以免被提交到版本控制系统。

您可以使用以下内容作为模板:

[
  {
    "model": "gpt-5",
    "api_key": "<your OpenAI API key here>"
  }
]

运行你的第一个代理

创建一个脚本或 Jupyter Notebook,并运行你的第一个代理。

from autogen import AssistantAgent, UserProxyAgent, LLMConfig

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

assistant = AssistantAgent("assistant", llm_config=llm_config)

user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding", "use_docker": False})

user_proxy.run(assistant, message="总结 Python 列表和元组的主要区别。").process()

示例应用

我们维护了一个专门的仓库,其中包含各种应用,帮助您快速上手不同的用例,或者您可以从我们的 Jupyter 笔记本集合开始。

不同代理概念介绍

AG2 提供了多种代理概念,帮助您构建 AI 代理。以下是其中最常见的几种。

  • 可对话代理:能够发送消息、接收消息并使用 GenAI 模型、非 GenAI 工具或人工输入生成回复的代理。
  • 人机协作:在对话中加入人工输入。
  • 多代理编排:用户可以利用内置的对话模式(如群体协作、群聊、嵌套聊天、顺序聊天等)编排多个代理,也可以通过注册自定义回复方法来自定义编排方式。
  • 工具:可被代理注册、调用和执行的程序。
  • 高级概念:AG2 还支持结构化输出、RAG、代码执行等功能等。

可对话智能体

ConversableAgent 是 AG2 的基础构建模块,旨在实现 AI 实体之间的无缝通信。这种核心智能体类型负责消息交换和响应生成,是框架中所有智能体的基类。

我们从一个简单的示例开始,其中两个智能体协同工作:

  • 一个 编码员智能体,用于编写 Python 代码。
  • 一个 评审员智能体,用于对代码进行评审而不重写代码。
import logging
from autogen import ConversableAgent, LLMConfig

# 配置日志记录
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# 加载 LLM 配置
llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

# 定义智能体
coder = ConversableAgent(
    name="coder",
    system_message="你是一名 Python 开发者。请编写简短的 Python 脚本。",
    llm_config=llm_config,
)

reviewer = ConversableAgent(
    name="reviewer",
    system_message="你是一名代码评审员。请分析提供的代码并提出改进建议。不要生成代码,只需提出改进建议。",
    llm_config=llm_config,
)

# 开始对话
response = reviewer.run(
            recipient=coder,
            message="编写一个计算斐波那契数列的 Python 函数。",
            max_turns=10
        )

response.process()

logger.info("最终输出:\n%s", response.summary)

多智能体编排

AG2 通过灵活的编排模式实现了复杂的多智能体协作,允许您创建由专业智能体协同工作的动态系统,以解决复杂问题。

以下是如何构建一个由 教师课程规划师评审员 组成的团队,共同设计课程计划:

import logging
from autogen import ConversableAgent, LLMConfig
from autogen.agentchat import run_group_chat
from autogen.agentchat.group.patterns import AutoPattern

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

# 定义课程规划师和评审员
planner_message = "你是一名课堂课程规划师。根据给定的主题,为四年级学生编写一份课程计划。"
reviewer_message = "你是一名课堂课程评审员。将计划与课程标准进行比较,并提出最多三条改进建议。"

lesson_planner = ConversableAgent(
    name="planner_agent",
    system_message=planner_message,
    description="创建或修改课程计划。",
    llm_config=llm_config,
)

lesson_reviewer = ConversableAgent(
    name="reviewer_agent",
    system_message=reviewer_message,
    description="为课程计划提供一轮反馈。",
    llm_config=llm_config,
)

teacher_message = "你是一名课堂教师。你决定主题,并与规划师和评审员合作,最终确定课程计划。满意后,请输出 DONE!"

teacher = ConversableAgent(
    name="teacher_agent",
    system_message=teacher_message,
    is_termination_msg=lambda x: "DONE!" in (x.get("content", "") or "").upper(),
    llm_config=llm_config,
)

auto_selection = AutoPattern(
    agents=[teacher, lesson_planner, lesson_reviewer],
    initial_agent=lesson_planner,
    group_manager_args={"name": "group_manager", "llm_config": llm_config},
)

response = run_group_chat(
    pattern=auto_selection,
    messages="让我们向孩子们介绍太阳系吧。",
    max_rounds=20,
)

response.process()

logger.info("最终输出:\n%s", response.summary)

人机协作

人类监督通常对于验证或指导 AI 输出至关重要。 AG2 提供了 UserProxyAgent,用于无缝集成人工反馈。

在此,我们将 教师–规划师–评审员 示例扩展为引入一名 人类评审员,对最终课程计划进行验证:

import logging
from autogen import ConversableAgent、LLMConfig、UserProxyAgent
from autogen.agentchat import run_group_chat
from autogen.agentchat.group.patterns import AutoPattern

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

# 与之前相同的智能体,但现在人类评审员会将任务传递给规划师,规划师会在收到“APPROVED”时终止流程
planner_message = "你是一名课堂课程规划师。根据给定的主题,为四年级学生编写一份课程计划。"
reviewer_message = "你是一名课堂课程评审员。将计划与课程标准进行比较,并提出最多三条改进建议。"
teacher_message = "你是一位经验丰富的课堂教师。你不准备计划,而是为规划师提供关于关键主题的简单指导,以帮助其准备课程计划。"

lesson_planner = ConversableAgent(
    name="planner_agent",
    system_message=planner_message,
    description="在提交评审之前创建或修改课程计划。",
    is_termination_msg=lambda x: "APPROVED" in (x.get("content", "") or "").upper(),
    human_input_mode="NEVER",
    llm_config=llm_config,
)

lesson_reviewer = ConversableAgent(
    name="reviewer_agent",
    system_message=reviewer_message,
    description="在提交给人类评审员之前,为课程计划提供一轮反馈,然后返回给规划师。",
    llm_config=llm_config,
)

teacher = ConversableAgent(
    name="teacher_agent",
    system_message=teacher_message,
    description="在需要时提供关于主题和内容的指导。",
    llm_config=llm_config,
)

human_validator = UserProxyAgent(
    name="human_validator",
    system_message="你是一名人类教育工作者,负责对课程计划进行最终批准。",
    description="评估拟议的课程计划,批准或要求修改,然后再返回给规划师。",
)

auto_selection = AutoPattern(
    agents=[teacher、lesson_planner、lesson_reviewer],
    initial_agent=teacher,
    user_agent=human_validator,
    group_manager_args={"name": "group_manager", "llm_config": llm_config},
)

response = run_group_chat(
    pattern=auto_selection,
    messages="让我们向孩子们介绍太阳系吧。",
    max_rounds=20,
)

response.process()

logger.info("最终输出:\n%s", response.summary)

工具

通过 工具,智能体可以显著增强其功能,利用外部数据、API 或函数扩展其能力。

import logging
from datetime import datetime
from typing import Annotated
from autogen import ConversableAgent、register_function、LLMConfig

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

llm_config = LLMConfig.from_json(path="OAI_CONFIG_LIST")

# 工具:返回给定日期的星期几
def get_weekday(date_string: Annotated[str, "格式:YYYY-MM-DD"]) -> str:
    date = datetime.strptime(date_string, "%Y-%m-%d")
    return date.strftime("%A")

date_agent = ConversableAgent(
    name="date_agent",
    system_message="您负责为给定日期查找星期几。",
    llm_config=llm_config,
)

executor_agent = ConversableAgent(
    name="executor_agent",
    human_input_mode="NEVER",
    llm_config=llm_config,
)

# 注册工具
register_function(
    get_weekday,
    caller=date_agent,
    executor=executor_agent,
    description="获取给定日期的星期几",
)

# 在聊天中使用工具
chat_result = executor_agent.initiate_chat(
    recipient=date_agent,
    message="我出生于1995年3月25日,那天是星期几呢?",
    max_turns=2,
)

logger.info("最终输出:\n%s", chat_result.chat_history[-1]["content"])

高级代理设计模式

AG2 支持更高级的概念,帮助您构建 AI 代理工作流。更多信息请参阅文档。

公告

🔥 🎉 2024年11月11日: 我们将 AutoGen 升级为 AG2! 一个新的组织 AG2AI 已成立,用于在开放治理下托管 AG2 及相关项目的开发。请查看 AG2 的全新面貌

📄 许可证: 自 v0.3 版起,我们采用 Apache 2.0 许可证。这不仅增强了我们对开源协作的承诺,也为贡献者和用户提供了额外的保护。

🎉 2024年5月29日:DeepLearning.ai 推出了新短课程 使用 AutoGen 的 AI 代理设计模式,该课程由 Microsoft 和宾夕法尼亚州立大学合作开发,由 AutoGen 的创建者 Chi WangQingyun Wu 主讲。

🎉 2024年5月24日:Foundation Capital 在《福布斯》上发表了文章 多智能体 AI 的前景,并发布了一段视频 现实世界中的 AI 第二集:与 Chi Wang 探讨多智能体 AI 和 AutoGen

🎉 2024年4月17日:Andrew Ng 在 The Batch 新闻通讯 中提到了 AutoGen,还在红杉资本的 AI Ascent 活动(3月26日)上分享了 AI 代理工作流的未来发展方向

更多公告

代码风格与 lint 检查

该项目使用 prek 钩子来维护代码质量。在提交贡献之前:

  1. 安装 prek:
pip install prek
prek install
  1. 钩子会在每次提交时自动运行,或者您可以手动运行:
prek run --all-files

相关论文

贡献者墙

引用本项目

@software{AG2_2024,
author = {Chi Wang 和 Qingyun Wu 以及 AG2 社区},
title = {AG2:面向 AI 代理的开源 AgentOS},
year = {2024},
url = {https://github.com/ag2ai/ag2},
note = {可在 https://docs.ag2.ai/ 获取},
version = {最新版}
}

许可证

本项目采用 Apache License, Version 2.0 (Apache-2.0) 许可证。

本项目是从 AutoGen 分支出来的,包含两种许可证下的代码:

我们已记录这些变更,以确保透明度,并向用户和贡献者社区清晰地说明情况。更多详情请参阅 NOTICE 文件。

版本历史

v0.11.52026/04/04
v0.11.42026/03/17
v0.11.32026/03/16
v0.11.22026/02/27
v0.11.12026/02/16
v0.11.02026/02/10
v0.10.52026/01/30
v0.10.42026/01/15
v0.10.32025/12/19
v0.10.22025/12/05
v0.10.12025/11/14
v0.10.02025/10/22
v0.9.102025/10/03
v0.9.92025/08/20
v0.9.8.post12025/08/15
v0.9.82025/08/15
v0.9.72025/07/25
v0.9.62025/07/08
v0.9.52025/07/04
v0.9.42025/06/28

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

159.3k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|昨天
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|1周前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像