极简工具箱

免费在线工具 · 本地计算 · 无需上传

AI Agent 怎么落地:工具调用、循环与边界

Agent 不是「更聪明的聊天」,而是「模型能调用工具、看到结果、继续决策」的循环。它的风险也来自这个循环:一旦方向错了,会自己越走越远。

广告位(百度联盟)

一、最小闭环

用户提问
  → 模型决定:直接回答 / 调用工具
  → 执行工具,把结果回填给模型
  → 模型再决定:继续调用 / 给最终答案

这就是 function calling(工具调用)的基本机制。模型本身不执行代码,它只输出「我要调用哪个工具、参数是什么」,由你的程序去执行。

二、工具定义长什么样

{
  "name": "search_orders",
  "description": "按用户 ID 查询订单列表,最多返回 20 条",
  "parameters": {
    "type": "object",
    "properties": {
      "user_id": {"type": "string", "description": "用户 ID,纯数字"},
      "status": {"type": "string", "enum": ["paid", "shipped", "all"]}
    },
    "required": ["user_id"]
  }
}

三个要点:

三、循环要有限制

没有上限的循环 = 没有上限的成本与风险。

for step in range(MAX_STEPS):        # 例如 6 步
    resp = model(messages, tools=tools)
    if not resp.tool_calls:
        return resp.content
    for call in resp.tool_calls:
        result = run_tool(call.name, call.args)
        messages.append(tool_result(call.id, result))
return fallback_answer()             # 超步数兜底

同时要限制:

四、失败处理

工具会失败,模型也会「编造」参数。必须做的:

五、什么该人工确认

高风险操作必须加确认环节:

做法:模型只输出「建议执行的动作」,由用户点确认后才真正执行。这不是技术限制,而是产品设计——让 Agent 有能力,但把最终决定权留给人。

六、什么时候不该用 Agent

判断标准:任务是否需要「根据中间结果动态决定下一步」。是,才考虑 Agent;否,用工作流。

七、可观测性

上线后必须能回答:

所以要记录完整的消息轨迹(trace),并按任务 ID 串联。没有轨迹的 Agent 出问题基本无法排查。

八、评估

小结

Agent = 模型 + 工具 + 循环;工具描述决定用对与否,参数用 enum 约束;循环必须设步数、token、时间上限;高风险操作要人工确认;流程固定的任务用工作流而不是 Agent。

本文相关工具(本地计算,无需上传)

更多使用教程