Agent 自学指南1 - 别只会"Hi"了:给大模型装上手脚,5分钟变身 Agent
作者:互联网
2026-04-17
前言
在开始写代码之前,先回答一个问题:Agent 到底是什么?
这个词被用滥了,各家有各家的说法。Anthropic 在 Building Effective Agents 里给出了一个相对清晰的定义,他们先区分了两个容易混淆的概念:
翻译过来就是:Workflow 是按剧本走的,每一步都是提前写死的;Agent 是自己决定怎么走的,根据当前情况动态选择下一步该做什么。
Anthropic 进一步描述了 Agent 的运作方式:
简单说:Agent 接到任务 → 自主规划 → 调用工具获取环境反馈 → 根据反馈决定下一步 → 直到任务完成。
其中最关键的一个能力是工具调用(Tool Use)。没有工具,LLM 只能说;有了工具,LLM 才能做。这篇就从这里开始。
那我们就从这里开始,写一个最简单的 Agent。本处使用langchain的执行环境。
用 LangChain 写一个会查天气的 Agent
我们来实现一个最小的 Agent:给它一个查天气的工具,然后让它自己决定什么时候调用。
安装依赖
pip install langchain langchain-openai
定义工具
@tool
def get_weather(city: str) -> str:
"""查询指定城市的当前天气。"""
mock_data = {
"北京": "晴,气温 12°C,微风",
"上海": "多云,气温 18°C,东南风 3 级",
"广州": "小雨,气温 22°C,湿度 85%",
}
return mock_data.get(city, f"暂无 {city} 的天气数据")
@tool 是 LangChain 提供的装饰器,它会把函数的名称和 docstring 自动转成模型可以理解的工具描述。docstring 写得越清晰,模型调用得越准确,这点不能省。
初始化模型和 Agent
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langchain.agents import create_agent
import os
# 设置 OpenAI API Key
os.environ["OPENAI_API_KEY"] = "xxx" #改成自己的API_KEY
tools = [get_weather]
llm = ChatOpenAI(model="gpt-4", temperature=0)
# 使用新版 LangChain 的 create_agent
agent = create_agent(llm, tools)
{agent_scratchpad} 是 Agent 的"草稿纸",用来记录中间的思考过程和工具调用结果,不能删。verbose=True 会把每一步的推理过程打印出来,调试阶段建议开着。
运行
result = agent_executor.invoke({"input": "北京今天天气怎么样?"})
print(result["output"])
输出大概长这样:
> Entering new AgentExecutor chain...
Invoking: `get_weather` with `{'city': '北京'}`
晴,气温 12°C,微风
北京今天天气晴朗,气温 12°C,有微风,适合外出。
> Finished chain.
模型自己判断需要调用 get_weather,传入正确的参数,拿到结果之后再组织成自然语言回答。这就是最基本的 Agent 闭环。
小结
这篇做了两件事:
- 借 Anthropic 的定义说清楚了 Agent 和 Workflow 的区别——关键在于谁来决定下一步
- 用 LangChain 写了一个最小的工具调用 Agent,把"说"和"做"的闭环跑通了
下一篇会深入工具这个话题,看看在tool调用上Agent内部实际做了什么,以及除了自定义函数,还能给 Agent 装上哪些更强的手脚。
参考资料:Building Effective Agents — Anthropic
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
DeepAgents 快速上手教程
当AI迈入Harness时代:以MiniMax为样本看智能体云端新基建
Claude Opus 4.6 正式发布:Agent 时代的编程王者与长上下文革命
从"会写SQL"到"懂业务":智能问数Agent的三层Grounding实践
UI UX Pro Max:给 AI 请个设计师
浅谈Agent上下文工程
Claude Agent SDK 使用指南:流式 vs 单次消息模式 (Streaming vs Single Mode)
开源项目 OpenSpec:如何用 RAG + Multi-Agent 生成企业级长文档
Spring AI 多模态实战:手把手教你构建图像理解应用
飞哥学习人工智能之路第三讲:CNN、RNN与Transformer
AI精选
