首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Agent 开发实战:搭一个会调用工具的智能体

Agent 开发实战:搭一个会调用工具的智能体

原创
作者头像
搜weiranit
发布于 2026-09-10 15:00:52
发布于 2026-09-10 15:00:52
1450
举报

很多人把 Agent 想得很复杂,以为要先学 LangChain、AutoGPT、多智能体框架。其实最小可用的 Agent 只需要四个东西:大模型、工具、循环、记忆。用 Python 写,核心代码可以很少。

一、Agent 的最小公式

一个 Agent 的本质是:

Agent = LLM + Tools + Loop + Memory

大模型负责理解和决策;工具负责与外部世界交互;循环让模型可以“思考—行动—观察—再思考”;记忆让多轮对话和任务状态得以保留。把这四件事跑通,你就已经有了一个 Agent 原型。

二、极简实战:天气助手

下面这段代码实现了一个能查天气的 Agent。它只有 30 行左右,却包含了工具调用和循环:

代码语言:javascript
复制
import json
from openai import OpenAI

client = OpenAI(api_key="你的密钥")

def get_weather(city: str) -> str:
    return {"北京": "晴,25℃", "上海": "多云,27℃"}.get(city, "暂无数据")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "查询城市天气",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

messages = [{"role": "user", "content": "北京今天天气怎么样?"}]

while True:
    resp = client.chat.completions.create(
        model="gpt-4o-mini", messages=messages, tools=tools
    )
    msg = resp.choices[0].message
    messages.append(msg)

    if not msg.tool_calls:
        print(msg.content)
        break

    for call in msg.tool_calls:
        args = json.loads(call.function.arguments)
        result = get_weather(args["city"])
        messages.append({
            "role": "tool",
            "tool_call_id": call.id,
            "content": result,
        })

运行逻辑很清晰:模型先判断需要调用 get_weather,返回工具调用请求;程序执行工具,把结果放回 messages;模型拿到天气数据后,再生成最终回答。这个过程就是 Agent 最核心的 ReAct 循环。

三、工程化要补什么

上面只是 Demo,真实项目还要补五件事:

  1. 工具设计:工具名、描述、参数要清晰,否则模型容易调错。
  2. 记忆管理:短期记忆用消息列表,长期记忆可接向量数据库。
  3. 规划能力:复杂任务可先让模型拆解步骤,再逐步执行。
  4. 评估与日志:记录每次工具调用、耗时、失败原因和最终结果。
  5. 安全边界:危险操作要加权限校验和人工确认,不能全交给模型。

四、常见坑

最常见的问题是无限循环。模型可能反复调用同一个工具,所以必须设置最大轮次。其次是参数幻觉,模型可能编造不存在的城市或字段,因此工具内部要做校验。还有密钥泄露、提示词注入、工具越权等风险,生产环境必须隔离和限权。

五、最佳实践

从单工具、单任务开始,不要一上来就做多智能体。工具描述写清楚输入输出,循环设置上限,所有调用留日志。先让 Agent 在低风险场景稳定跑通,再逐步扩展到查询、检索、写操作和自动化流程。

结语

Agent 开发实战并不神秘。少量代码就能跑通“模型决策 + 工具调用 + 循环反馈”的闭环。真正决定成败的,不是框架多复杂,而是工具是否可靠、边界是否清晰、评估是否到位。代码可以少,工程不能少。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、Agent 的最小公式
  • 二、极简实战:天气助手
  • 三、工程化要补什么
  • 四、常见坑
  • 五、最佳实践
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档