智能体状态机

goose 发布已经很久了。狗年都比不上智能体年。goose 比通用的智能体式 AI 还稍微早一点。这一切背后最初的想法是:如果把一个 shell 会话的控制权交给 LLM,会发生什么?
结果,有意思的事发生了。模型写一条命令,命令跑起来,结果回到对话里,模型再决定下一步做什么。我们的工具调用从那场实验里自然长出来,如今坐在大多数编程智能体中心的智能体循环也是如此。
后来工具调用有了正式形态,MCP 出现了。批准、上下文管理、待办列表、Top of Mind、子代理、重试、钩子、技能、配方和转向也跟着来了。最初的智能体循环却还在。每加一个功能,就多一个分支、一个局部变量,或一个特例。一轮之内可能同时有十几种不同的关切在起作用,而且彼此影响。取消必须知道当前在跑的是推理还是工具。压缩必须理解提供商错误和用量。工具可以改写提示词。停止钩子可以把一份已经完成的回答变回更多工作。循环开始缠成一团意大利面。


