生产级 Agent 框架设计与实现
李号双
eBay 资深架构师
140 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 3 讲/共 38 讲
Plan 蓝图:把步骤关系从代码里抽出来 (1讲)
生产级 Agent 框架设计与实现
15
15
1.0x
00:00/00:00
登录|注册

01|导读:从最小循环推导出整台机器的样子

你好,我是李号双。
在开篇词里,我们把一台生产级 Agent 框架逐层拆开,最后留下了一个只有几行的 Agent Loop。那次拆解回答的是:拿掉这些部件以后,系统会失去什么。
从这一讲开始,我们把方向反过来。先假装不知道 Plan、Run、Scheduler 这些答案,只看眼前这个最简单的循环:它调用模型,执行工具,把结果写回上下文,然后继续下一轮。
messages = [{"role": "user", "content": task}]
while True:
reply = llm.chat(messages)
if not reply.tool_calls:
return reply.text
for call in reply.tool_calls:
messages.append(run_tool(call))
接下来要回答的是另一个问题:这些框架部件,为什么会从这个循环里一步步长出来?
我们先从第一个缺口开始:这个循环跑到一半时,它的“执行进度”究竟存在哪里?

执行进度,原本藏在进程内存里

答案是:存在进程的内存里。更具体地说,是当前代码执行到了哪一行、while 循环转了几圈、函数嵌套形成的调用栈,还有那些局部变量。这些东西合在一起,你可以粗略地理解成“程序计数器加调用栈”。
它有三个天生的特点:隐式、瞬时、不可序列化。你没法把“当前执行到 while 的第三行、栈上有哪些局部变量”直接存进数据库,也没法把它传到另一台机器上。进程一关,这些就全没了。
想清楚这一点,你就会发现有一连串的能力,在真实系统里非有不可,但这个最小循环里一个都做不到:
跑到一半进程崩了,能不能从断点接着跑,而不是从头再来?
执行一个会产生后果的操作前,能不能先停下来等人审批,几小时后再继续?
某个耗时步骤能不能挪到另一台机器上去跑?
能不能回到十分钟前的某个状态,换个选择重新走一遍?
运维能不能实时看到它现在干到哪一步、每步花了多少 token?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《生产级 Agent 框架设计与实现》
,新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部