很多人把 Agent 想得很复杂,以为要先学 LangChain、AutoGPT、多智能体框架。其实最小可用的 Agent 只需要四个东西:大模型、工具、循环、记忆。用 Python 写,核心代码可以很少。
一个 Agent 的本质是:
Agent = LLM + Tools + Loop + Memory
大模型负责理解和决策;工具负责与外部世界交互;循环让模型可以“思考—行动—观察—再思考”;记忆让多轮对话和任务状态得以保留。把这四件事跑通,你就已经有了一个 Agent 原型。
下面这段代码实现了一个能查天气的 Agent。它只有 30 行左右,却包含了工具调用和循环:
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,真实项目还要补五件事:
最常见的问题是无限循环。模型可能反复调用同一个工具,所以必须设置最大轮次。其次是参数幻觉,模型可能编造不存在的城市或字段,因此工具内部要做校验。还有密钥泄露、提示词注入、工具越权等风险,生产环境必须隔离和限权。
从单工具、单任务开始,不要一上来就做多智能体。工具描述写清楚输入输出,循环设置上限,所有调用留日志。先让 Agent 在低风险场景稳定跑通,再逐步扩展到查询、检索、写操作和自动化流程。
Agent 开发实战并不神秘。少量代码就能跑通“模型决策 + 工具调用 + 循环反馈”的闭环。真正决定成败的,不是框架多复杂,而是工具是否可靠、边界是否清晰、评估是否到位。代码可以少,工程不能少。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。