Hello-Agents 第六章:框架开发实践(精读笔记)

来源DataWhale《Hello-Agents》第六章 · GitHub

本文定位:压缩版学习笔记——用表格 + 要点概括教材逻辑;完整原文、长代码与日志请以官方章节与仓库 code 为准。


本章在讲什么

手写 ReAct / Plan-and-Solve 适合理解原理;要做多个、复杂、可维护的智能体应用,应转向框架:把主循环、状态、工具、记忆、日志与观测等共性抽掉,你只写业务。本章用四个代表性框架 + 四个完整案例对比「怎么协作、怎么控流程」。


6.1 为什么需要框架

价值要点
分层模型层 / 工具层 / 记忆层解耦,便于替换实现。
可观测Callbacks(如 on_llm_starton_tool_endon_agent_finish)系统化追踪,优于到处 print
代际LangChain、LlamaIndex 偏第一代通用范式;新一代更强调多智能体协作复杂工作流控制

6.1.2 四框架总览(教材表 6.1 压缩)

框架一句话协作与控制
AutoGen多智能体 群聊对话与消息驱动轮替;角色 + 规则,任务在自动对话中推进。
AgentScope消息驱动 的多智能体平台Msg 为中心,Hub/Pipeline 编排;强调工程化、并发、分布式。
CAMEL双智能体角色扮演Role-Playing + Inception Prompting(初始结构化提示),少写流程多靠协议约束对话。
LangGraph有向图 / 状态机节点 = 步骤(调 LLM、工具),边 = 跳转;天然支持循环,适合 Reflection、分支与回退。

更细的维度对比 + 使用场景 + 选型一句话见文末 四框架对比与使用场景(选型速查)


6.2 AutoGen

哲学:以对话组织协作,复杂任务 ≈ 多角色自动群聊。

机制(教材以 0.7.4 为例)

  • 分层:autogen-core(底层)+ autogen-agentchat(对话应用 API)。
  • 异步优先:多路 LLM 等待时不阻塞。
  • AssistantAgent:绑 LLM,靠 System Message 定角色与交接话术。
  • UserProxyAgent:既可代表用户,又可执行代码/工具;常负责发 TERMINATE 结束协作。
  • 多智能体协调:RoundRobinGroupChatparticipants 顺序发言;TextMentionTerminationmax_turns 防死循环。

案例:软件开发团队

  • 角色:产品经理 → 工程师 → 代码审查 → 用户代理。
  • 任务:用 Streamlit比特币价格 Web(需求—实现—审查—验收闭环)。
  • 非 OpenAI 兼容端点:可在 OpenAIChatCompletionClient 里配 model_info 声明能力边界。

优劣

  • :贴近人类协作、角色复用、人在回路自然。
  • :对话不确定易跑偏;调试靠长对话历史(「对话式调试」)。

6.3 AgentScope

哲学工程化优先——组合式架构 + 消息而非单纯函数调用链;偏「智能体操作系统」。

结构(教材分层)

  • 基础:MessageMemoryModel APITool
  • 智能体层:ReAct、钩子、并行工具、异步等。
  • 协作:MsgHub 路由;Pipeline 顺序/并发编排。
  • 上层:Runtime、Studio 等工具链。

消息驱动的收益:异步解耦、位置透明(本地/远程)、易观测、可持久化与重试。

智能体:继承 AgentBase,核心实现 reply(Msg) -> Msg;可选 observe

MsgHub:点对点 / 广播 / 组播;可落库(如 SQLite、MongoDB);跨节点 RPC 对开发者透明。

案例:三国狼人杀

  • 三层:游戏控制类(全局状态与阶段)、MsgHub(一切对话与私聊频道)、DialogAgent + 提示词(游戏规则 + 三国人物性格)。
  • 狼人夜:MsgHub 建狼人私密频道;讨论后轮询 fanout_pipeline 并行收「击杀投票」,贴近「同时投票」。
  • Pydantic 结构化输出(如讨论、女巫行动)把规则写进字段与校验,减少胡编。
  • 容错:单智能体异常时用默认结构化结果,游戏不中断。

优劣

  • :并发与规则约束强,适合复杂多智能体、要稳定跑在生产形态的场景。
  • :学习异步与消息范式成本高;简单对话可能过度工程;生态仍在长。

6.4 CAMEL

哲学轻架构、重提示——两个互补角色 + Inception Prompting,用协议(一次一步、完成标记等)约束自主多轮对话。

角色模型(经典)

  • AI User:提需求、拆步骤(如「交易员」)。
  • AI Assistant:执行与产出(如「Python 程序员」)。

案例:拖延症科普电子书

  • RolePlayingassistant_role_name / user_role_name / task_prompt);作家推结构,心理学家给实证内容。
  • 循环:init_chat() → 反复 step();出现 <CAMEL_TASK_DONE> 则结束。
  • 协作阶段(教材描述):对齐框架 → 内容生产循环 → 润色与事实核对 → 收尾。

教材亦提到:CAMEL 生态在扩展(多模态、工具、多后端、与 LangChain / CrewAI / AutoGen 等互通)。

优劣

  • :双专家深度协作、代码量少、行为可很灵活。
  • :强依赖提示质量、难定位失败原因;大规模多智能体、硬流程、极高并发分别不如 AutoGen 群聊路由、LangGraph 图、AgentScope 消息架构。

6.5 LangGraph

哲学:把执行流画成 StateGraph——共享 StateNode 返回部分更新、Edge / conditional_edges 决定下一步;循环一等公民。

三要素TypedDict 状态;节点函数;普通边 + 条件边(路由函数返回下一节点名或 END)。

案例:三步搜索问答助手

  1. Understand:从用户话里提炼 user_query + search_query
  2. Search:教材示例为 Tavily;失败则 step=search_failed
  3. Answer:成功则结合检索生成;失败则回退为「仅凭模型知识」并说明情况。

图结构:线性 START → understand → search → answer → END;可挂 checkpointer(如 InMemorySaver)做状态持久化。本仓库实现与差异见 langgraph_search_assistant.md

优劣

  • :流程显式、可审计、可预测;易插人在回路;条件边做反思/重试/回退。
  • :样板多;偏「怎么跑」而非开放式群聊涌现;调试要懂全图与状态传递

6.6 本章小结(两条主轴)

  1. 涌现式协作 vs 显式控制
    AutoGen、CAMEL:靠角色与目标,协作从对话里长出来——像人,但更难预测。
    LangGraph:每一步和分支写死——像流程引擎,可靠、可观测,少一点惊喜。

  2. 工程化
    不论选哪种协作范式,上生产都要面对并发、容错、分布式;AgentScope 这条线把「能跑」往「能稳定服务」推。


四框架对比与使用场景(选型速查)

下表把四个框架放在同一套维度下对照,便于按任务形态工程要求快速缩小范围(与教材 6.6「涌现 vs 显式」「工程化」两条主轴一致)。

维度AutoGenAgentScopeCAMELLangGraph
协作隐喻多角色 群聊,轮替发言消息总线(Hub / Pipeline),可广播、可并行双人 专家对话,角色互补有向图:节点是步骤,边是跳转
控制方式发言顺序 + 终止条件;流程多从对话 涌现显式消息模式 + 编排;易表达 并发 与阶段Inception Prompting 协议约束每轮说什么显式 状态机;条件边 做分支与 循环
工程化 / 运维中等;异步 Team,观测可接 Callback:持久化、分布式 RPC、Runtime/Studio偏轻;双智能体为主,生态在扩展与 LangChain 生态结合;checkpointer 便于持久与回放
上手与代码量定义角色 + 群聊即可,概念直观需适应 异步 + 消息;结构更「平台化」少代码;成败高度依赖 提示设计样板多(State / Node / Edge);简单问答也偏啰嗦
可预测性中低(LLM 对话易跑偏)中高(结构化输出 + 容错可拉高)中(协议在、模型仍可能误解)(路径由图决定,易审计)
典型适用场景3+ 角色流水线:迷你「产品—开发—测—审」、研讨式任务、人在回路验收高并发 / 多智能体实时交互、仿真与博弈、要落库与分布式双专家深度共创:写作+领域专家、需求+实现、长程迭代固定 SOP:审批链、合规步骤、检索—回答—反思循环、需可追溯流程
不太适合要强审计的刚性流程(无额外设计时)只想快速试两个 bot 对话(易觉重)多方群聊路由、毫秒级海量 QPS、纯流程引擎需求强依赖「开放式闲聊涌现」、角色很多的圆桌社会仿真

按场景一句话指向(可与教材末习题「应用 A/B/C」对照思考):

  • 高并发、7×24、水平扩展的多租户客服 / 网关类:优先考虑 AgentScope(消息与分布式),或基础设施自建 + 轻量编排;单靠双智能体 CAMEL 往往不够。
  • 「研究员 + 写手」长期共写、自主推进章节CAMELAutoGen(若要多角色插话)更合适;要每一步可审计则往 LangGraph 靠。
  • 金融风控式「资料 → 风控 → 合规 → 人审 → 决策」LangGraph 最贴;AutoGen 需额外约束才不易跑偏。

参考文献(教材)

[1] AutoGen (COLM 2024) · [2] AgentScope (arXiv:2402.14034) · [3] CAMEL (NeurIPS 2023) · [4] LangGraph · [5] AutoGen UserProxyAgent 文档


精读笔记 · 替代不了原文章节;需要长代码与完整日志请打开官方第六章。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐