FunctionCall介绍

Catalogue
  1. 一、什么是FunctionCall
  2. 二、是怎么实现的?底层原理
    1. 2.1 底层驱动原理(重要)
    2. 2.3 生产环境避坑指南(难度与解决)
      1. 幻觉调用
      2. JSON格式崩溃
      3. 工具数量爆炸
      4. 多步依赖调用

Agent智能体架构、模型推理机制的深度理解。

如何让大模型 真正的连接物理世界。

一、什么是FunctionCall

是大模型 与 工具 交互的 一个流程。

二、是怎么实现的?底层原理

LLM 负责意图识别 于决策生成, 输出结构化指令

本地代码(手脚) 负责 工具调用与物理执行, 完成实际业务逻辑。

2.1 底层驱动原理(重要)

模型为什么会有这种能力?

「专门的指令微调(SFT)」

  • 模型在训练阶段被 喂入了 海量的“函数调用数据集”, 这些特定格式的数据教会了模型:
    • 何时应该触发工具? 以及如何严格遵循Schema描述的格式输出结果。

「推理约束解码」

  • 底层推理引擎集成了FSM或正则表达式机制。 在逐个生成token时,强行拦截不符合语法的Token, 从物理层保证输出格式100%合法。

2.3 生产环境避坑指南(难度与解决)

幻觉调用

模型凭空捏造不存在的函数,或胡乱修改参数名。

  • 解法:Self-corrention机制,将错误信息喂会给模型让其自省修正

JSON格式崩溃

输出包含多余符号 或缺失括号, 导致解析代码奔溃。

  • 解法:json_repair鲁棒解析器 + 强制JSON Mode输出格式。

工具数量爆炸

API太多超出上下文, 且导致注意力分散,调用错误。

  • 解法:Tool Retrieval, 利用RAG动态检索最相关的Top-5工具注入。

多步依赖调用

需要根据上一步的结构决定下一步的API调用

  • 解法:Agent 编排框架(如ReAct范式),实现Thought-Action循环。