Agent 的循环是怎样运行的?为什么要限制最大步数?
先自己想一想,再看参考要点
参考要点
- 把工具调用放进一个循环就得到了 Agent:模型思考下一步做什么并返回工具调用请求,应用执行工具,把结果作为观察放回消息列表,再调用模型,直到模型返回文本而不是调用请求(ReAct)
- 模型不保存状态,每次调用都要发送完整的消息历史,每一步新增调用请求和工具结果两条消息,步数越多 Token 消耗越多
- 什么时候结束由模型判断,但它可能一直不停或者反复调用同一个工具,所以代码中必须限制最大步数,超过时转人工处理
- 工具执行出错时不抛出异常,而是把错误写成文字作为工具结果返回,模型可以修正参数、换一个工具或者向用户说明,超时、限流这类错误先由代码重试