
大模型 Agent 不是“会聊天的机器人”,而是能感知目标、规划步骤、调用工具、根据反馈迭代的智能体。专业开发的核心,不是把 Prompt 写得更花哨,而是把不确定性关进工程框架:状态可追踪、工具可管控、失败可恢复、成本可约束。
一个可落地的 Agent 通常包含四层:
主流框架有 LangChain/LangGraph、AutoGen、CrewAI、OpenAI Assistants API。但无论用哪个,底层都是“ReAct 循环”的变体。
以下代码使用 OpenAI Python SDK 实现一个最小可运行 Agent,包含计算器和天气查询两个工具。
import json, os, re
from openai import OpenAI
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
TOOLS = [
{
"type": "function",
"function": {
"name": "calculator",
"description": "计算数学表达式,例如 (12+8)*3",
"parameters": {
"type": "object",
"properties": {"expression": {"type": "string"}},
"required": ["expression"]
}
}
},
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}
]
def calculator(expression: str) -> str:
if not re.fullmatch(r"[0-9+\-*/().\s]+", expression):
return "表达式包含不允许的字符"
try:
return str(eval(expression, {"__builtins__": {}}, {}))
except Exception as e:
return f"计算失败: {e}"
def get_weather(city: str) -> str:
data = {"北京": "晴,25℃", "上海": "多云,28℃", "深圳": "阵雨,30℃"}
return data.get(city, f"暂无{city}的天气数据")
TOOL_MAP = {"calculator": calculator, "get_weather": get_weather}
def run_agent(user_input: str, max_steps: int = 5):
messages = [
{"role": "system", "content": "你是严谨助手。需要计算或天气时调用工具,不要编造。"},
{"role": "user", "content": user_input}
]
for _ in range(max_steps):
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
tools=TOOLS,
tool_choice="auto",
temperature=0.2
)
msg = resp.choices[0].message
messages.append(msg)
if not msg.tool_calls:
return msg.content
for call in msg.tool_calls:
fn = call.function.name
args = json.loads(call.function.arguments)
result = TOOL_MAP[fn](**args)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": result
})
return "达到最大步数,任务未完成"
if __name__ == "__main__":
print(run_agent("北京天气怎么样?顺便算一下 (12+8)*3"))这段代码展示了 Agent 的基本闭环:LLM 决策 → 工具执行 → 结果回填 → 继续推理。生产环境需要把 eval 替换为安全计算库,把模拟天气换成真实 API,并加入超时、重试和限流。
1. 状态管理:用 LangGraph 等框架把循环建模为状态图,支持中断、恢复、人工审批。
2. 工具安全:工具必须最小权限,代码执行要放沙箱,禁止直接执行用户输入。所有工具调用记录审计日志。
3. 可观测性:记录每步的 prompt、token、耗时、工具入参出参。可接入 LangSmith、OpenTelemetry。
4. 成本控制:设置最大步数、最大 token、单次预算;小模型做路由,大模型做复杂推理。
5. 评估体系:用固定测试集评估任务完成率、工具调用准确率、幻觉率,而不是只看“回答像不像人”。
6. 合规红线:遵守平台条款、隐私法规、开源许可证;不开发用于欺诈、攻击、骚扰的 Agent;AI 生成内容按需标注。
大模型 Agent 的专业开发,本质是把 LLM 的不确定性封装进可观测、可控制、可恢复的工程系统。先跑通一个最小工具调用循环,再逐步加入记忆、规划、多 Agent 协作和生产级治理。代码不复杂,难的是对边界、成本和安全的持续把控。从今天起,把你的第一个 Agent 循环写出来,比看十篇概念文章更有价值。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。