当前位置: 首页 > news >正文

AutoGen 核心 Agent 聊天与对话模式

AutoGen 核心:Agent 聊天与对话模式

一、概念速查

AgentChat 架构核心接口

接口 / 类角色说明
BaseAgentAgent 基类定义 name、messages、on_messages 等核心协议
ChatAgent聊天 Agent扩展 BaseAgent,支持 generate_reply 和 generate_stream
AssistantAgent助手 Agent使用 LLM 生成回复,可配置工具调用
ToolAgent工具 Agent执行具体工具函数,不依赖 LLM
GroupChat群聊管理器维护多 Agent 对话历史的共享缓冲区
GroupChatManager群聊调度器控制发言顺序和轮次,终止条件判断
Team运行容器驱动 Agent 执行和对话循环的统一入口
BaseTool工具基类定义工具 schema、执行函数、错误处理

代码示例:最小双 Agent 对话

fromautogen_agentchat.agentsimportAssistantAgentfromautogen_agentchat.teamsimportRoundRobinGroupChatfromautogen_agentchat.messagesimportTextMessagefromautogen_ext.models.openaiimportOpenAIChatCompletionClient model=OpenAIChatCompletionClient(model="gpt-4o-mini")planner=AssistantAgent(name="planner",model_client=model,system_message="你是一个项目规划师,负责制定任务计划。回复要简洁、结构化。",)executor=AssistantAgent(name="executor",model_client=model,system_message="你是一个执行者,根据计划逐步执行。每步完成后等待下一步指示。",)team=RoundRobinGroupChat([planner,executor])result=awaitteam.run(task="写一篇 500 字的博客大纲")formessageinresult.messages:print(f"{message.source}:{message.content}\n")

消息类型

fromautogen_agentchat.messagesimportTextMessage,ToolCallMessage,ToolResultMessage# 文本消息TextMessage(content="你好",source="user")# 工具调用请求ToolCallMessage(content="",source="assistant",tool_calls=[{"id":"1","function":{"name":"search","arguments":'{"q":"AutoGen"}'}}],)# 工具调用结果ToolResultMessage(content="搜索结果:...",source="tool",tool_call_id="1",)

二、底层原理

AutoGen v2 的执行架构

RoundRobin

Selector

MagenticOne

ToolCall

TextMessage

Team.run(task)

Team 驱动循环

选择下一个 Agent

轮流发言

LLM 选择发言人

Manager 统一调度

Agent.on_messages()

Agent 内部处理

返回类型

执行工具

消息加入历史

ToolResult 加入历史

终止条件?

Team.run() 返回

AutoGen v2 的核心架构围绕Team作为运行容器展开。Team 内部维护一个消息循环,循环中调用 Agent 的on_messages方法,Agent 返回消息后 Team 将其追加到对话历史,然后判断终止条件。

Agent 内部的消息处理流程

Agent.on_messages()被调用时:

  1. 将新消息追加到Agent._messages内部缓冲区
  2. 调用 LLM 生成回复(如果是 AssistantAgent)
  3. 如果 LLM 返回 tool call 请求,暂停文本生成,执行工具函数
  4. 工具结果通过ToolResultMessage返回,再次调用 LLM
  5. 重复步骤 2-4 直到 LLM 的回复不包含工具调用
  6. 返回最终消息

这种"LLM → 工具 → LLM"的内循环对用户完全透明,Team 层面看到的只是 Agent 最终输出的一条消息。

RoundRobinGroupChat 调度逻辑

classRoundRobinGroupChat(Team):def__next_speaker(self):idx=self._current_turn%len(self._participants)self._current_turn+=1returnself._participants[idx]

轮询调度是最简单的多 Agent 对话模式。它不考虑发言内容的相关性,仅按固定顺序轮转。虽然简单,但在结构化任务(如"规划→执行→审查"三轮流水线)中效果出奇好。

SelectorGroupChat 的智能调度

Selector 模式使用 LLM 来决定下一个发言人。调度 prompt 包含以下信息:

  • 当前对话历史
  • 每个 Agent 的 name 和 system_message
  • 下一位发言者的选择标准(“谁最适合处理当前上下文中的下一步?”)

LLM 的选择结果被限制在参与者列表内,无效选择会触发重试。这种模式的精度取决于 LLM 的推理能力,GPT-4o-mini 级别的模型通常需要配合 fallback 轮询机制。

终止条件的三种配置

条件配置方式行为
最大轮次max_turns=N达到 N 轮对话后强制终止
终止消息Agent 回复中包含指定关键词识别到终止信号结束
自定义函数termination_condition=callable每次新消息后评估,返回 True 即终止

三、架构设计原则

1. 消息即通信协议

Agent 之间不直接调用方法,只交换消息。这种设计让 Agent 实现完全解耦——你可以用任何语言实现 Agent,只要它理解统一的 Message 协议。工具调用通过ToolCallMessage/ToolResultMessage对实现,天然支持异步。

2. 运行容器与 Agent 逻辑分离

Team 负责调度、终止判断、消息路由;Agent 只负责"收到消息→生成响应"。职责边界清晰。这种分离使你可以为同一组 Agent 切换不同的调度策略而无需修改 Agent 本身。

3. 工具内循环对调度层透明

Agent 内部可能调用多个工具(工具内循环),但调度层(Team)只看到 Agent 返回的一条消息。这降低了调度层的复杂度——无论 Agent 内部做了多少步推理和工具调用,调度层只需等待最终结果。

4. 流式优先

所有 Agent 的回复都支持流式输出。generate_stream方法返回迭代器,Team 在完整消息可用前就可以逐 token 转发。这对用户体验至关重要:在需要长时间推理的场景中,用户不需要等待全部推理完成就能看到中间输出。

5. 可观测性内置

Team 执行过程中产生的所有消息都保存在result.messages中。每条消息包含 source、content、type 和时间戳,完整记录了 Agent 的思考链和工具调用。配合 LangFuse 或自定义回调,可以构建完整的 Agent 审计日志。

http://www.jsqmd.com/news/1072295/

相关文章:

  • 2026 年企业级大模型API聚合网关选型实录:十款主流平台技术横评与场景匹配
  • 2026年最新选购参考:天学网和科大讯飞到底哪个更适合入手?
  • 三年累亏超3亿、现金流持续为负,思必驰凭什么再闯科创板?
  • 6个本科绿牌专业薪资大揭秘,3S专业就业差距在哪?
  • 告别GitHub英文困扰:5分钟实现中文界面的完整指南
  • AI教材写作必备:低查重AI工具,助你快速打造精品教材!
  • 2026年AI聚合平台大揭秘!哪家公司更胜一筹?
  • 手把手教你从0到1搭建一个AI Agent(智能体)
  • 深度解密:掌握微信数据库AES-256-CBC加密逆向工程核心技术
  • 工业品短视频推广/必打标+必触达+必搜到,工业品短视频推广整套降本打法
  • NS-USBLoader终极指南:3步搞定Switch游戏管理与系统破解
  • AI 时代软件工程巨变:瓶颈转移、角色模糊,未来何去何从?
  • 显卡驱动彻底清理终极指南:为什么你需要Display Driver Uninstaller?
  • 2026气液增压器品牌格局重塑:国际、台系与国产的三方博弈
  • 终极QQ音乐解密工具qmcdump:三步解锁加密音乐自由播放
  • 洛雪音乐六音音源终极修复指南:5分钟恢复完整音乐体验
  • 知名的GPRC5D(Detergent)膜蛋白厂家名声
  • 不再依赖L6和C2C12:云克隆大鼠骨骼肌细胞(SkMC)原代细胞为肌肉研究提供“未经改造”的真实视角
  • 如何快速上手AlienFX Tools:Alienware灯光、风扇和电源控制的终极指南
  • 论文修改记录优化方案,AI识别能力带来更清晰整理体验
  • Windows Cleaner终极指南:3分钟解决C盘爆红的免费神器
  • 5分钟掌握大麦抢票脚本:告别手动抢票的终极指南
  • 彻底搞懂 SLF4J 桥接模块:让老日志 API 乖乖听话
  • 口碑优良的贴标机厂家,高效生产背后的秘密
  • NS-USBLoader终极指南:3分钟搞定Switch文件传输与RCM注入
  • Altium Designer 在PCB布局时,如何隐藏器件位号丝印
  • 塔米德数智科技本土: AI 全域营销服务商,解析 GEO 优化落地价值
  • Windows Cleaner终极指南:如何快速解决C盘空间不足的完整方案
  • OBS多平台直播插件:obs-multi-rtmp一键同步推流终极指南
  • ComfyUI换脸插件:3分钟掌握AI面部交换的终极技巧