第 3 卷
怎么造一份新的?两条路:手写文件,即建目录写 agent.cordis.yml,或者用 copy()
复制既有的一份。
怎么挂载?只能放在创建 Agent 的 setup(agentCtx) 钩子里:Agent 还没发布时挂载,失败就整次创建回滚。
怎么既隔离、又共享?每份 preset 各占一个以自己 id 命名的独立 scope,彼此够不着。
Agent 认父到其中一份,就只看得到那一份。同一份 preset 下的多个 Agent 则共享常驻的那一份实例,靠各自状态分开存互不干扰。宿主 ctx 没加入任何 preset,一个都看不到。
这背后真正的变化是每个 Agent 不再共用一套工具与人设,而是各挂一份可命名、可复制的预组装;多份 preset 各归各的 scope、彼此够不着,同一份下的多个 Agent 又共享一份常驻
实例。下一讲,我们让一个 agent 自己续跑一个长任务:Goal。
注:本讲 GitHub 链接
思考题
动手实操:打开 preset-demo.ts。
- 把 coder 那一份的工具名从 run_command 改成 run_code,重跑。会发生什么?
sess-coder 建成了吗?这个 demo 没写 try/catch,失败会以未捕获异常终止进程,报错埋在堆栈的 reason / [cause] 字段里。
- 在 main() 末尾补一行,用不传第二个参数的 on() 组装一个 agent 并打印它。它默认挂
了哪个 preset?
欢迎把你的运行结果分享出来。如果你觉得这节课对你有帮助,也欢迎分享给其他朋友,我们下节课再见!
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。