Function Calling 解锁Agent与外部系统交互

LLM 具有强大的推理能力,它能够根据训练数据和输入的 Prompt 生成文本。但是它无法获取实时数据(比如今天的天气),也无法执行具体操作(比如发邮件)。

问题在于现有的程序只能通过结构化的函数调用,例如:

js 复制代码
function toolCall(param: ToolParam): ToolResult;

所以 LLM 需要将用户的自然语言需求转换为结构化的函数调用,才能与其它程序交互。

Function Calling 是一种 LLM 调用 Tool 的机制。当 LLM 识别用户需求需要调用 Tool 时,它会生成结构化的函数调用指令,然后由 Agent 执行指定函数并将结果反馈给 LLM,最后 LLM 基于结果进行下一步操作。

LLM生成结构化的函数调用指令:

js 复制代码
{
  "id": "chatcmpl-abc123",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "tool_calls": [
          {
            "id": "call_abc123",
            "type": "function",
            "function": {
              "name": "get_weather",
              "arguments": "{"city": "北京", "date": "today"}"
            }
          }
        ]
      },
      "finish_reason": "tool_calls"
    }
  ]
}

Agent解析函数调用指令,根据 function.name 找到对应的函数,解析 function.arguments 获取参数,然后执行调用。

js 复制代码
// 1. 解析LLM返回的函数调用指令
const toolCall = response.choices[0].message.tool_calls[0];
const functionName = toolCall.function.name;  
const functionArgs = JSON.parse(toolCall.function.arguments);  

// 2. 根据工具名称找到对应的函数
const tools = {
    get_weather: ({city, date}) => {    
        // 调用天气查询API   
        return {
            "temperature": 22,
            "condition": "晴天",
            "humidity": 45
        };  
    },  
};
// 3. 执行工具调用
const result = tools[functionName](functionArgs);
相关推荐
小燕子~~1 天前
PS 怎么调整图片尺寸?4 种方法避免拉伸变形与放大失真
图像处理·人工智能·ai·aigc·photoshop
小帅不太帅1 天前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
玉鸯1 天前
多 Agent 系统通信的实现原理与最佳实践
llm·agent·mcp
Tsonglew1 天前
OpenWorker 代码解剖:一个 AI 同事"敢让它干活"的工程学
agent·ai编程
VIP_CQCRE1 天前
用 Ace Data Cloud 快速接入 Suno 声音克隆 API:让 AI 音乐唱出你的专属声线
ai·aigc·api·音乐生成·suno
SQDN1 天前
OpenAI Python SDK 遇到 502/503 怎么排?先看自动重试、request_id 与 timeout
openai·503·重试·api调试·python sdk
测试开发技术1 天前
AI 测试提效 | 告别手工写脚本,分享我的 Playwright + Skill 批量生成 UI 自动化脚本方案
自动化测试·人工智能·ui·自动化·agent·skill·ai测试
极连AI1 天前
极连AI平台解读、Codex5.6仅需0.01倍率,无需Token焦虑,极速响应
人工智能·gpt·chatgpt·aigc·ai编程·ai写作·gpu算力
喜欢的名字被抢了1 天前
langgraph教程系列-06-让流程可暂停 - 持久化与 checkpoint
agent·langgraph
远航计算机1 天前
职业技能培训机构如何利用QClaw+Skills做豆包GEO:知识库搭建×内容创作×效果监测的完整实操手册
大数据·人工智能·自动化·aigc·火山引擎