几乎每个“构建人工智能代理”的教程都以相同的方式结束:模型调用工具,工具返回数据,模型使用数据进行响应。这在演示中是有效的。
教程中没有展示的是:当工具超时时会发生什么。或者当模型连续三次调用同一个工具时。或者当模型在用户无意的情况下调用了具有破坏性的工具时。或者当工具返回错误而模型仍然编造出一个响应时。
这些并非边缘情况——它们是生产环境中代理的正常操作条件。以下是我在部署每个代理时用来处理这些情况的五种模式。
模式一:明确的工具调用预算
默认情况下,大多数代理框架会让模型无限期地调用工具,直到它决定停止并作出响应。这在演示中没问题。但在生产环境中,这意味着一个行为异常的代理可能在任何人注意到之前,循环执行数十次应用程序接口调用,从而产生高昂的费用。
解决方法是为每一轮对话设置严格的工具调用预算。
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
async function runAgentWithBudget(
messages: Anthropic.MessageParam[],
tools: Anthropic.Tool[],
maxToolCalls = 5
): Promise<{ content: string; toolCallCount: number; hitBudget: boolean }> {
let toolCallCount = 0;
let currentMessages = [...messages];
while (true) {
const response = await client.messages.create({
model: "claude-sonnet-4-5",
max_tokens: 2048,
tools,
messages: currentMessages,
});
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。