分享
详解循环工程:来自 LangChain 开发者 Sydney Runkle 的完整分享
输入“/”快速插入内容
详解循环工程:来自 LangChain 开发者 Sydney Runkle 的完整分享
用户4242
用户4242
6月18日修改
原帖链接:
https://x.com/sydneyrunkle/status/2066928783534289358
智能体之所以有用,是因为它们能通过在真实世界中采取行动,帮我们自动化完成工作。但要让智能体稳定地做出有价值的工作,只靠好模型还不够:还需要一个精心设计、适配一组任务的harness 。
核心智能体算法很简单:给 LLM 上下文,让它循环调用工具,直到任务完成。这是最基础的循环。但驱动智能体的循环远不止这一种。@swyx 最近写了一篇很好的文章,讲的是
"loopcraft: the art of stacking loops"
,也就是通过堆叠和扩展循环来构建更有效的智能体。
下面是我们如何理解这套堆叠结构,以及如何用 LangChain 的基础组件对每一层进行工具化。
循环 1:智能体
最核心的智能体,就是一个模型不断调用工具,直到任务完成。
智能体循环
这正是 LangChain 的
create_agent
提供的能力。选择任意模型,接入工具,你就有了一个可以工作的智能体循环。工具让智能体拥有在真实世界中采取行动的能力。
以我们的内部文档智能体为例,后文会继续用它作为示例。在第一层循环里,它会收到一条文档改进请求,模型规划并起草修改,然后使用工具克隆仓库、读取文件、写文档、打开 PR,等等。
内部文档智能体示例
第 2 层:验证循环
智能体循环能把工作做起来,但它第一次生成的结果不一定正确,也不一定稳定。当一致性很重要时,通常值得在外面包一层验证循环,用来检查输出;如果输出不达标,就把反馈送回模型。
验证循环
验证循环会加入一个评分器:它根据评分规则检查智能体输出;如果失败,就把结果和反馈一起送回去。评分器可以是确定性的,也可以是智能体式的,这里经典例子就是用 LLM 充当评审。