<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>AI Agent 学习笔记 – Function Calling</title>
    <link>https://skyao.net/learning-ai-agent/timeline/2023/function-calling/</link>
    <description>Recent content in Function Calling on AI Agent 学习笔记</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="https://skyao.net/learning-ai-agent/timeline/2023/function-calling/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Timeline: Function Calling（材料）</title>
      <link>https://skyao.net/learning-ai-agent/timeline/2023/function-calling/source/</link>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-ai-agent/timeline/2023/function-calling/source/</guid>
      <description>
        
        
        &lt;p&gt;本页转述 &lt;strong&gt;2023-06-13 公告当时公开说了什么&lt;/strong&gt;，不以后来的 &lt;code&gt;tools&lt;/code&gt; 参数改名、并行工具调用回填。&lt;/p&gt;
&lt;p&gt;主要出处：OpenAI，2023-06-13，&lt;a href=&#34;https://openai.com/index/function-calling-and-other-api-updates/&#34;&gt;Function calling and other API updates&lt;/a&gt;。本页不复制公告全文。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;接口主张&#34;&gt;接口主张&lt;/h2&gt;
&lt;p&gt;开发者可以把函数描述交给 &lt;code&gt;gpt-4-0613&lt;/code&gt; 和 &lt;code&gt;gpt-3.5-turbo-0613&lt;/code&gt;，由模型决定是否输出一个含参数的 JSON 对象。公告把这写成更可靠地把 GPT 接到外部工具和 API 的方式。这两只快照被微调成两件事：根据用户输入判断&lt;strong&gt;要不要&lt;/strong&gt;调用；以及输出&lt;strong&gt;符合函数签名&lt;/strong&gt;的 JSON。&lt;/p&gt;
&lt;p&gt;Chat Completions（&lt;code&gt;/v1/chat/completions&lt;/code&gt;）新增参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;functions&lt;/code&gt;：&lt;/strong&gt; 用 JSON Schema 描述一组函数（名称、参数形状）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;function_call&lt;/code&gt;：&lt;/strong&gt; 可选；让模型自动决定，或强制调用某一个。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;模型并不在 OpenAI 一侧执行函数。开发者在自己的代码里跑完，把结果作为后续消息送回去，再生成给人看的回复。公告举例包括：用外部工具回答问题、把自然语言转成 API 或数据库查询、从文本抽出结构化数据。&lt;/p&gt;
&lt;p&gt;同日还发布 &lt;code&gt;gpt-3.5-turbo-16k&lt;/code&gt;：上下文从约 4k 拉到 16k。公告同时下调部分价格，并给出旧快照（&lt;code&gt;gpt-3.5-turbo-0301&lt;/code&gt;、&lt;code&gt;gpt-4-0314&lt;/code&gt;）的弃用时间表。&lt;/p&gt;
&lt;h2 id=&#34;安全公告自己写的&#34;&gt;安全（公告自己写的）&lt;/h2&gt;
&lt;p&gt;工具返回的内容可能诱导模型做非预期动作。公告要求：只消费可信工具的信息；对有真实世界后果的动作（发邮件、上网发帖、下单等）加人确认。这与三个月前插件公告是同一类问题。&lt;/p&gt;
&lt;h2 id=&#34;当时不是什么&#34;&gt;当时不是什么&lt;/h2&gt;
&lt;p&gt;这是模型层与 API 层能力。一次请求里「选不选函数、参数是什么」可以被可靠解析，不等于系统已经在环境里多步循环。循环、重试、停机策略仍由调用方自己写。&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Timeline: Function Calling 讲解</title>
      <link>https://skyao.net/learning-ai-agent/timeline/2023/function-calling/explanation/</link>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://skyao.net/learning-ai-agent/timeline/2023/function-calling/explanation/</guid>
      <description>
        
        
        &lt;h2 id=&#34;当时解决了什么问题&#34;&gt;当时解决了什么问题&lt;/h2&gt;
&lt;p&gt;上半年开发者仍在 prompt 里逼模型吐 JSON，再正则抠字段。ReAct 的 Action 是自由文本。插件是 ChatGPT 产品里的私有协议。Function Calling 把同一件事做成 Chat Completions 的一等参数：schema 进、结构化调用出。模型还被专门微调过「何时调用」，不再只靠少样本示范。&lt;/p&gt;
&lt;p&gt;模型输出的是 &lt;code&gt;name&lt;/code&gt; + &lt;code&gt;arguments&lt;/code&gt;。执行发生在调用方进程里：宿主跑完，把回执当后续消息送回去。单次 Function Call 是一次 I/O，没有「根据返回值再选」——那一跳仍要宿主再发一次请求。16k 窗口是并列的物理前提：单次循环能多看一点工具回执，仍然远不够装下一个仓库。&lt;/p&gt;
&lt;h2 id=&#34;对后续-llm-与-agent-的影响&#34;&gt;对后续 LLM 与 Agent 的影响&lt;/h2&gt;
&lt;p&gt;这是 2023 年工具接口的工程化节点。之后各家的 tool use 都沿着「模型选工具 + JSON 参数 + 宿主执行」走。LangChain 一类库很快把函数调用收进同一套 Agent 抽象。跨厂商总线是下一年的 &lt;a href=&#34;../../../2024/mcp/&#34;&gt;MCP&lt;/a&gt;；今年只有一家方言。&lt;/p&gt;
&lt;p&gt;按 AI Agent 定义，&lt;strong&gt;Function Calling 本身不是 Agent&lt;/strong&gt;。它是协议：模型↔工具的第一种稳定 schema。它没有规定多步循环，也不对环境行动——副作用出在你的服务器上。缺了它，循环仍然能用文本协议硬撑；有了它，循环才变得可产品化。不可信工具输出仍可注入非预期动作：公告已经写明，不是后来才发现的漏洞。协议不是系统；schema 到位，循环仍在宿主。&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
