# 大语言模型函数调用与 Agent 开发导览

本文主要掌握大语言模型的函数调用与Agent开发,涵盖了:LangChain内置工具、工具包、自定义工具创建、LLM使用函数调用、不支持函数调用的LLM解决方案、函数调用提取结构化数据、Agent基础开发、传统Agent组件的缺陷等。

# 01. 大语言模型工具上手与定义

掌握掌握LangChain构建自定义工具的3种方案,以及不同方案之间的差异性。

掌握掌握LangChain内置工具与工具包的快速上手,实现利用OpenAI+Dall·E实现自然语言绘图功能。

掌握掌握封装基于第三方API及内置工具的工具,涵盖了高德天气预报、谷歌搜索工具。

# 02. 大语言模型函数调用原理及应用

掌握掌握大语言模型函数调用的作用与应用,了解不支持函数回调的模型兼容方案及对应的注意事项。

掌握掌握利用大语言模型函数调用实现数据格式化与规范提取技巧,以及LangChain底层实现。

# 03. Agent智能体初识与开发

深入了解什么是Agent智能体以及智能体的组成,以及智能体与大语言模型函数回调的关联。

掌握掌握使用LangChain传统Agent组件实现ReACT架构的智能体,让大语言模型拥有搜索+天气预报查询功能。

掌握LangChain内置封装的Agent组件并快速上手,了解LangChain传统Agent组件的缺陷与不可控性。

# 最新版 LangChain 用法提示

  • 新版 LangChain 更推荐用 LCEL、Runnable、ChatModel.bind_tools()、结构化输出和 LangGraph 来组织复杂链路;老式 Chain、部分 AgentExecutor 写法可以读懂,但新项目应优先选择更清晰的图或 Runnable 编排。

  • 工具调用相关代码要区分两层:模型是否原生支持 tool/function calling,以及业务侧如何定义工具 schema、参数校验、错误兜底和观测日志。

  • 如果示例中的导入路径和你当前安装版本不同,优先查当前版本包内导出位置;常见迁移方向是从 langchain 拆到 langchain-core、langchain-community、langchain-openai、langgraph 等包。

# 拓展

  • 工具或插件不要只看能不能调通,更要看是否可观测、可限流、可重试、可审计。联网类工具还要处理超时、空结果、搜索噪声和结果时效性。

  • Agent 场景里,Prompt 只是调度策略的一部分;工具描述、参数 schema、历史状态、错误反馈、停止条件和人工介入点同样会影响最终稳定性。

# 常见问题

  • 为什么模型没有调用工具?常见原因是工具描述不清晰、参数 schema 过宽或过窄、用户问题不需要工具、模型本身不支持工具调用,或者工具绑定位置不对。

  • 为什么工具调用后回答仍然不准?先看工具返回是否正确,再看工具结果是否被放回模型上下文,最后检查输出解析、历史消息和异常兜底是否覆盖了真实错误。

# 面试题

  • 解释函数调用、工具调用和 Agent 的区别。

  • LangChain 中 tool schema 的作用是什么?为什么参数校验对生产环境很重要?

  • ReACT Agent 和 tool-calling Agent 的核心差异是什么?分别适合什么场景?

  • LangGraph 相比 LCEL 更适合解决哪些复杂编排问题?

# 生产问题排查

问题 常见原因 处理方式
工具没有被调用 工具描述弱、绑定失败、模型不支持 打印绑定后的模型配置,补充工具描述,换用支持工具调用的模型
参数格式错误 schema 设计不清晰,模型生成字段不稳定 使用 Pydantic/JSON Schema 校验,失败后把错误反馈给模型重试
联网结果不可用 搜索为空、接口超时、命中低质量页面 增加超时、重试、结果过滤、来源白名单和降级回答
Agent 循环不停止 缺少终止条件或工具返回被误判 设置最大迭代次数,记录每轮 thought/action/observation,增加停止规则
线上难以复现 缺少输入、工具请求和模型响应日志 给每次调用加 trace id,记录工具入参、出参、耗时和异常