ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

用 LangChain 搭一个能调用工具的 Agent:3 步跑通完整闭环

用 LangChain 搭一个能调用工具的 Agent:3 步跑通完整闭环 用 LangChain 搭一个能调用工具的 Agent3 步跑通完整闭环【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain如果你需要让大模型做超出聊天的事——查内部文档、调 API、按固定格式输出结果从零写编排循环、重试逻辑和上下文管理成本不低。LangChain 是一个 agent 工程平台它把聊天模型、工具调用、消息流转这些组件抽象成统一接口你负责组装它负责胶水层。这篇讲清楚最小闭环怎么跑通以及仓库里真正值得看的几处源码。一键装好依赖并跑通第一行调用LangChain 是 Python monorepo用 uv 管理依赖每个 libs/ 下的包都有独立的 pyproject.toml 和 uv.lock。拉下代码后装依赖、跑单测只需两条命令git clone https://gitcode.com/GitHub_Trending/la/langchain cd langchain/libs/langchain_v1 uv sync --group test make test模型调用本身三行就够from langchain.chat_models import init_chat_model model init_chat_model(openai:gpt-5.5) result model.invoke(Hello, world!)init_chat_model是模型互换的入口参数是提供商:模型名格式的字符串换成anthropic:claude或ollama:llama3这类写法就能切到其他厂商调用代码不用动。实现见 chat_models/base.py。仓库里还按提供商拆了集成包libs/partners/ 下 openai、anthropic、ollama、qdrant 等十几个包各自独立发版只装你用的那家即可不用背全部依赖。3 行代码创建一个带工具的 Agent模型能跑之后通常下一步是让它调工具。仓库提供的create_agent工厂是主要入口签名是模型 工具列表 可选中间件它内部用状态图StateGraph组织模型思考 → 发起工具调用 → 回填工具结果 → 再思考的循环from langchain.agents import create_agent from langchain.tools import tool tool def get_weather(city: str) - str: 查询指定城市的天气。 return f{city}晴24℃ agent create_agent(openai:gpt-5.5, tools[get_weather]) print(agent.invoke({messages: [{role: user, content: 北京今天多少度}]}))tool装饰器会从类型注解和 docstring 生成 JSON Schema 交给模型理解所以函数签名和中文 docstring 要写清楚。这个循环不是手写 for 循环——工厂源码在 agents/factory.py想改执行顺序、看状态怎么流转从这里的 StateGraph 节点定义入手。给 Agent 装配 20 多个现成中间件真正体现平台而不是胶水库的地方是中间件系统。Agent 执行链路上能插入的横切逻辑官方在 middleware/ 目录里直接给了一份清单翻一下文件列表就是能力地图summarization上下文太长自动摘要、pii敏感信息脱敏、model_retry 与 model_fallback重试和降级到备用模型、human_in_the_loop关键动作前转人工确认、todo让 Agent 维护任务清单、tool_error工具抛错时把错误喂回模型而不是崩溃。自定义也很直接实现一个 AgentMiddleware 类在 wrap_model_call 或工具调用前后挂逻辑传进create_agent即可。这意味着控制 Token 消耗审计每次工具调用这类需求不用 fork 框架。限流、缓存与消息体系怎么配生产环境的三件套在 core 包里都有现成抽象限流RateLimiter 系列基于令牌桶挂在模型调用上防突发请求打爆 API 配额实现在 core/rate_limiters.py缓存caches 模块把相同输入直接返回历史输出做成可插拔组件重复查询不再消耗 Token见 core/caches.py消息HumanMessage / AIMessage / ToolMessage / SystemMessage 是贯穿所有组件的统一类型各组件之间流转的消息就是它们类型定义集中在 core/messages/ 目录。向量检索、文档加载器也在 core 里做 RAG 时接口是现成的不用自己封装。本地验证与进一步探索改完代码在对应包目录uv sync --all-groups同步全部包的依赖make test跑离线单测——core 包的 Makefile 会显式清掉 LangSmith 追踪环境变量保证单测不碰网络。要写测试时注意惯例unit_tests/ 禁网络请求integration_tests/ 才允许真实调用。下一步值得做的几件事把第一个 Agent 的中间件从默认换成 summarization model_retry观察长对话下的 Token 变化读 agents/factory.py 里 StateGraph 的节点与边定义理解工具循环的状态流转如果你的流程超出模型—工具二选一循环需要条件跳转、并行分支就该看 LangGraph 这个低层编排框架了。【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表