【微科普】AI Agent是什么:用50行Python看懂智能体如何调用工具与自主完成任务
2026年,AI圈最火的词不是"大模型",而是AI Agent。智源研究院发布的《2026十大AI技术趋势》中,多智能体系统被列为决定应用上限的关键基础设施。但到底什么是Agent?它和普通调用大模型API有什么区别?本文用一段极简Python代码,带你彻底看懂。
一、为什么2026年是Agent元年?
如果你最近用过Cursor、Claude Code或者GitHub Copilot X,会发现一个明显变化:AI不再只是"回答问题",而是开始"执行任务"——它会自己读文件、跑命令、调API、修Bug。
这就是AI Agent(智能体)的核心特征:具备自主规划、调用工具、执行动作的能力。
根据《2026十大AI技术趋势》报告,行业共识是:
-
多智能体系统决定应用上限,MCP、A2A等通信协议趋于标准化,Agent间拥有了通用"语言"
-
AI编程从"人机配对"升级为1个协调者+N个专家Agent并行开发(实现、测试、安全、部署)
-
代表工具:Cursor 2.0、Claude Code、GitHub Copilot X
📌 一句话区分:普通LLM调用是"你问它答";AI Agent是"你给目标,它自己拆解步骤、调工具、拿结果"。
二、AI Agent的三大核心模块
一个标准的Agent通常由三部分组成:
-
感知模块:通过NLP、CV等技术从环境获取信息
-
认知与决策模块:以LLM为"大脑",负责规划、记忆、推理
-
行动模块:调用API、执行代码、操作文件系统
下面我们用Python写一个最小可用Agent,让它具备"感知→决策→行动"的完整闭环。
三、50行Python实现一个极简Agent
这个例子让Agent完成一个具体任务:查询天气并生成建议。它会自己判断是否需要调用工具,并执行。
import json
import requests
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
# ===== 工具定义 =====
def get_weather(city: str) -> str:
"""模拟天气API调用"""
# 实际项目中这里调用真实天气API
weather_data = {
"北京": "晴,25℃",
"上海": "多云,28℃",
"深圳": "雷阵雨,30℃"
}
return weather_data.get(city, f"{city}:天气未知")
# 把工具包装成Agent可识别的格式
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名"}
},
"required": ["city"]
}
}
}
]
# ===== Agent核心循环 =====
def run_agent(user_goal: str):
messages = [{"role": "user", "content": user_goal}]
print(f"🎯 用户目标:{user_goal}\n")
# Agent循环:最多5步
for step in range(5):
# 1. 认知与决策:LLM判断是否调用工具
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
tools=tools,
tool_choice="auto"
)
msg = response.choices[0].message
# 2. 如果没有工具调用,说明Agent认为任务完成
if not msg.tool_calls:
print(f"✅ Agent最终回答:{msg.content}")
return msg.content
# 3. 行动模块:执行工具调用
messages.append(msg)
for tool_call in msg.tool_calls:
func_name = tool_call.function.name
args = json.loads(tool_call.function.arguments)
print(f"🔧 第{step+1}步:Agent调用工具 [{func_name}] 参数={args}")
# 执行对应的Python函数
if func_name == "get_weather":
result = get_weather(**args)
print(f" └─ 工具返回:{result}")
# 将工具结果反馈给LLM
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
# ===== 测试 =====
run_agent("我明天要去上海出差,应该穿什么衣服?")
运行输出:
🎯 用户目标:我明天要去上海出差,应该穿什么衣服?
🔧 第1步:Agent调用工具 [get_weather] 参数={'city': '上海'}
└─ 工具返回:多云,28℃
✅ Agent最终回答:上海明天多云,气温28℃,建议穿短袖+薄外套,记得带伞以防下雨。
四、这段代码揭示了Agent的本质
回顾上面的代码,Agent的"智能"体现在三个关键环节:
1. 自主决策(认知模块)
LLM通过tool_choice="auto"自己判断:这个问题需要查天气吗? 如果需要,调用哪个工具?传什么参数?——这一切都是LLM自主决定的,而不是硬编码的if-else。
2. 工具调用(行动模块)
Agent通过标准格式(tools定义)感知到环境中有get_weather这个能力,并按JSON Schema规范传参。这正是MCP协议要做的事——让Agent能标准化的对接外部工具。
3. 反馈闭环
工具返回结果后,Agent将其作为新消息继续推理,直到认为任务完成。这个"调用→反馈→再推理"的循环,就是Agent与普通LLM调用的根本区别。
五、2026年Agent的实战应用场景
根据行业趋势,当前Agent最火热的应用方向:
-
AI编程:Cursor、Claude Code等工具让Agent跨文件改代码、跑测试、修Bug
-
多智能体协作:1个协调者+N个专家Agent(实现、测试、安全、部署)并行开发
-
浏览器Agent:OpenAI已在内测浏览器Agent,AI开始替你上网操作
-
端侧Agent:手机端运行7B模型(如Llama 3 8B INT4)已成现实,端侧AI Agent开始替代部分云API调用
六、避坑指南(实战血泪经验)
⚠️ 新手最容易踩的3个坑:
-
无限循环陷阱:Agent可能因为"觉得任务没完成"而一直调用工具。务必设置
max_steps上限(如上面代码的range(5)) -
工具描述要精准:
description写不清楚,LLM就会调错工具或传错参数。这个描述是写给AI看的,不是写给人看的 -
提示注入风险:如果Agent能执行代码或调用API,恶意输入可能操控Agent行为。AI Coding安全已成为2026年的新热点
七、总结与互动
AI Agent的本质,是给LLM装上"手脚"——让它不仅能"想",还能"做"。2026年,随着MCP协议标准化、多智能体系统成熟、端侧模型普及,Agent将从Demo走向真实的工业与服务场景。
作为开发者,现在最该掌握的技能是:学会写"规格说明",把问题说清楚,然后管好AI的执行过程。
💡 留个互动话题:你在实践中还遇到过哪些Agent开发的坑?或者你最希望Agent帮你自动化什么任务?欢迎在评论区分享。
更多推荐



所有评论(0)