开发范式与框架
比较 ReAct、Plan-and-Solve、Reflection 及常见 Agent 框架的使用边界。
开发范式与框架
这篇记录 Hello-Agents 第四章、第六章中的执行范式和框架示例。范式描述任务怎么推进,框架提供实现这些流程的组件。
执行范式
ReAct
在推理、行动、观察之间循环:根据当前状态选择动作,调用工具,读取结果,再决定下一步。任务完成或达到预算上限时停止。
适合需要搜索、计算、调用 API,并根据反馈调整路径的任务。代价是多轮模型调用的延迟与成本,以及工具参数、结果解析和状态管理的复杂度。
Plan-and-Solve
先拆出步骤,再按计划执行,把前一步结果交给后一步。适合任务路径相对明确、需要保持整体目标一致的场景。
初始计划可能遗漏条件;执行中获得新信息后,需要允许调整计划。
Reflection
先执行或生成初稿,再评审并修订:Execution → Reflection → Refinement。
保留每轮结果与反馈,便于追踪修改依据。它适合允许迭代的代码、方案和创作任务;改进效果取决于反馈质量,需要限制轮数,避免无效反复修改。
框架提供什么
模型接入、工具执行、状态存储和流程控制等公共组件可以复用。选择框架时,重点看它是否适合任务的状态流转、并发、调试和恢复需求。
| 框架 | 课程中关注的机制 | 课程示例 |
|---|---|---|
| AutoGen | autogen-core、autogen-agentchat,通过消息组织异步多角色协作 | 软件团队协作开发价格展示 Web 应用 |
| AgentScope | 消息驱动、组合式架构,以及状态和并发执行管理 | 狼人杀中的结构化输出、并发投票和异常处理 |
| CAMEL | Role-Playing 与 Inception Prompting,通过角色设定推动协作 | 心理学家与作家合作撰写科普内容 |
| LangGraph | Nodes、Edges 和 State 显式表达流程,支持条件路由与循环 | 三步问答助手、add_conditional_edges 条件路由 |
选型时先明确流程:是开放式协作,还是需要显式控制每个状态。再比较接入复杂度、运行成本和可观测性,用实际任务验证;课程示例不代表某个框架在所有同类任务上都更好。