ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LangChain 快速上手:用 create_agent 搭出第一个会调工具的 AI 代理

LangChain 快速上手:用 create_agent 搭出第一个会调工具的 AI 代理 LangChain 快速上手用 create_agent 搭出第一个会调工具的 AI 代理【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain如果你需要让大模型不只是聊天而是真正去干活——查天气、检索数据库、调用内部 API——你会很快发现模型调用循环、工具分发、失败重试、输出格式校验这些细节都得自己写。LangChain 就是为这件事而生的 Python 开源框架它提供一组稳定的基础抽象和现成的代理工厂几行代码就能跑起一个能调用工具的 agent并且可以在 OpenAI、Anthropic、Ollama 等模型之间低成本切换。为什么选它三件不想手写的事直接用各家模型 SDK 写 agent最先撞上的问题是接口碎片化每个厂商的鉴权方式、消息格式、工具调用协议都不一样。LangChain 用init_chat_model统一了入口传一个provider:model格式的字符串如openai:gpt-5.5就能拿到一个行为一致的模型对象业务代码不用跟着厂商 SDK 重写。第二个问题是 agent 主循环。模型决定调哪个工具→执行工具→把结果喂回模型→判断是否继续这条链路涉及状态管理、终止条件、并行工具执行手写成状态机很容易出 bug。LangChain 的create_agent直接返回一个编译好的状态图把模型调用、工具绑定、结构化输出解析都封装在里面。第三是稳定性。线上 agent 会遇到限流、超时、工具异常LangChain 把这些做成了可插拔的中间件常见的包括ModelRetryMiddleware/ModelFallbackMiddleware失败重试与备用模型切换HumanInTheLoopMiddleware关键动作前暂停等人工确认PIIMiddleware自动识别并打码敏感信息ToolCallLimitMiddleware限制单轮工具调用次数防止跑飞核心能力一个工厂函数一层中间件create_agent是整个库的核心入口参数设计很克制model接受字符串或模型实例tools可以直接传普通 Python 函数自动包装成工具system_prompt设定角色response_format传入 Pydantic 模型即可获得类型化的结构化输出checkpointer则负责跨轮次的记忆和中断恢复。中间件是它的差异化设计。你可以通过wrap_model_call、wrap_tool_call或before_model等钩子拦截模型请求和工具执行改工具列表、注入日志、实现熔断都不用碰 agent 主逻辑。多个中间件按顺序叠成栈各管一摊互不干扰。对不需要 agent 的简单场景底层还有Runnable协议提示词、模型、输出解析器可以用管道符串成链任何实现该协议的组件都能互相拼接。一个完整工作流天气查询代理先看最精简的形态。先用一个普通函数定义工具再交给工厂def check_weather(location: str) - str: Return the weather forecast for a location. return fIts sunny in {location}agent create_agent( modelopenai:gpt-4o, tools[check_weather], system_promptYou are a helpful weather assistant., )运行时传入消息列表agent.stream会按节点产出更新你可以逐块打印模型思考和工具执行过程inputs {messages: [{role: user, content: Whats the weather in SF?}]} for chunk in agent.stream(inputs, stream_modeupdates): print(chunk)背后的执行顺序是中间件前置钩子→模型调用→检查返回里有没有tool_calls→有则并行执行工具并把结果写回消息列表→没有则走收尾钩子退出。如果加了 checkpointer 并设置interrupt_beforeagent 还能在指定节点暂停、等人审核后从断点续跑这套机制适合审批类或长流程任务。LangChain 快速开始安装、选模型、看仓库安装只有一条命令随后跑通第一个模型调用uv add langchainfrom langchain.chat_models import init_chat_model model init_chat_model(openai:gpt-5.5) result model.invoke(Hello, world!)想深入源码可以克隆仓库git clone https://gitcode.com/GitHub_Trending/la/langchain仓库是 monorepo三层结构对应三种使用深度libs/core/是可独立使用的稳定抽象Runnable、BaseChatModel、消息与工具类型libs/langchain_v1/是面向使用者的create_agent、中间件和模型工厂各厂商实现放在 libs/partners/ 下并独立发版升级某个 provider 不影响核心。整体说明见 README.md仓库自带的开发导读在 openwiki/从架构到测试策略都有文档。上手前要知道成本、边界与常见误区每多一轮模型→工具循环就多一次模型调用token 消耗会随任务复杂度线性增长。工具特别多时建议配上LLMToolSelectorMiddleware先筛选可用工具既能省 token 也减少模型选错工具的概率。边界上一次性问答直接invoke模型即可不必套 agent如果工作流是确定性的多阶段管道、需要精细控制延迟和分支可以下沉到 LangGraph 层面建模create_agent本身就是基于它构建的。常见误区有三个。其一langchain-classic包是旧版兼容层新项目应直接使用langchain其二中间件里动态加的工具如果没有注册进工具执行节点会直接报错要么提前注册要么自己实现wrap_tool_call处理执行其三别信任模型口述的 JSON用response_format让框架解析并校验失败时还能配置自动重试。下一步建议很明确先按上面的快速开始跑通模型调用再定义你自己的第一个工具函数交给create_agent遇到行为不符合预期时打开openwiki/里对应的执行流程文档对照排查。工具、模型、中间件都能独立替换你的第一版 agent 跑起来之后扩展方向会非常清晰。【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进