第6章|插件打开闸门:从聊天机器人到应用平台
一、从会说话到会动手
2023年3月,OpenAI刚刚把GPT-4推到公众面前。
上一章已经写过,GPT-4发布时,OpenAI在博客中说:“GPT-4 is more reliable, creative, and able to handle much more nuanced instructions than GPT-3.5.”——GPT-4比GPT-3.5更可靠、更有创造力,也更能处理细微复杂的指令。[1] 这句话标记的是能力跃迁。但能力跃迁之后,行业很快撞上另一个问题:如果模型足够会说话,它能不能替人做事?
聊天机器人第一阶段令人震动,是因为它能回答。它可以解释合同条款,改写邮件,生成代码,整理会议纪要,给出旅行计划。可是,只要它还停留在文本框里,边界仍然清楚:模型负责说,人类负责做。模型可以给出错误餐厅、错误航班、错误计算,用户仍要自己打开网页、复制信息、核对价格、点击按钮、确认付款、发送邮件。
2023年3月23日,这道边界被OpenAI向外推了一步。GPT-4发布不到两周,OpenAI宣布ChatGPT Plugins。官方博客的开头写道:“Plugins are tools designed specifically for language models with safety as a core principle, and help ChatGPT access up-to-date information, run computations, or use third-party services.”——插件是专门为语言模型设计的工具,并以安全作为核心原则,帮助ChatGPT访问最新信息、运行计算或使用第三方服务。[2]
这不是给聊天机器人加几个菜单项。访问最新信息,意味着模型不再完全困在训练数据的时间切面里;运行计算,意味着它可以把自己不擅长的精确运算交给外部环境;使用第三方服务,则意味着它开始触摸真实世界里的订单、航班、餐厅、购物车、企业消息和自动化流程。
如果说ChatGPT最早是一个能说话的窗口,那么插件出现后,它开始像一个能伸手的窗口。
OpenAI并没有宣布全面开放。它在同一篇博客中说:“We’re starting with a small set of users and are planning to gradually roll out larger-scale access…”——将从一小部分用户开始,并计划逐步扩大访问范围。[2] 这句话同时显露两种力量:一边是平台野心,一边是安全刹车。因为模型一旦能调用外部服务,错误就不再只是语言错误。
行业的荒诞感也由此出现。人类用了几十年把软件系统拆成数据库、API、权限、日志、审计、支付和回滚机制;现在又试图把这些接口交给一个会写文章、会考试、会编程、但仍会幻觉的语言模型来协调。一个极其现代的场面出现了:人们把真实世界的按钮摆在模型面前,然后认真研究如何防止它按错。
二、第一批插件:生活服务背后的平台骨架
ChatGPT Plugins发布页列出的第一批第三方插件,很像一张互联网日常生活清单。OpenAI列出的早期插件开发者包括Expedia、FiscalNote、Instacart、KAYAK、Klarna Shopping、Milo Family AI、OpenTable、Shopify、Slack、Speak、Wolfram和Zapier。[2] 这些名字不应只当作品牌列表来看。它们真正重要的是类别。
第一类是信息入口。浏览网页、检索资料、读取最新数据,解决的是大模型的“时间”和“来源”问题。纯模型回答依赖训练阶段形成的参数,无法天然知道今天的新闻、刚刚变化的航班、库存状态或企业内部文档。OpenAI同期也介绍了自己托管的web browser插件,并开源了knowledge base retrieval plugin,用于让开发者把知识库、文档或组织资料接入ChatGPT。[2]
第二类是计算入口。语言模型可以写出看似合理的数学步骤,却并不等同于计算器。它擅长生成自然语言,也可能在简单算术、统计处理和数据分析上出错。OpenAI发布插件时介绍了code interpreter;Wolfram插件则把符号计算、数学知识和结构化知识接到ChatGPT之后。[2] 这里的分工很清楚:模型负责理解意图和组织表达,工具负责精确执行。用户说“帮我分析这个数据”,系统不必只靠模型口算,而可以让代码或计算引擎承担确定性部分。
第三类是交易和服务入口。旅行、订餐、购物这些场景让聊天框靠近经济活动。用户不只是问“去巴黎有什么好安排”,而可能进一步要求比较航班、查找酒店、筛选餐厅、生成购物清单。OpenAI当时没有宣布让模型完全自主完成支付或最终下单,但插件方向已经足够清楚:聊天框正在从答案终点变成服务入口。
第四类是工作流入口。Slack和Zapier尤其说明问题。Slack代表团队沟通,Zapier代表跨应用自动化。Zapier原本就是把不同软件串起来的接口生意:一个应用发生某件事,触发另一个应用执行动作。它接入ChatGPT之后,自然语言就可能成为工作流前端。用户不必记住每个软件的菜单、字段和API名称,只要描述目的,模型就可能把意图翻译成一串动作。
这正是平台骨架第一次露出。
传统软件要求用户适应软件。表格软件有表格软件的格子,项目管理软件有项目管理软件的卡片,电商平台有电商平台的筛选器,企业系统有企业系统的表单。大模型产品叙事则反过来:让软件适应用户的自然语言。用户不用知道某个服务的API叫什么,不用知道背后有几个系统,只要把需求说出来,模型尝试把人话拆成机器能执行的步骤。
对一个独立开发者来说,这个转折很具体。过去做一个应用,常见工作是设计界面、写后端、找渠道、争取用户安装。插件把另一个问题摆在面前:如果用户已经在ChatGPT里,自己的服务能否成为模型可调用的能力?这时,开发者不只是写产品,还要写给模型看的产品说明。工具能做什么、需要哪些参数、返回什么结果、哪些动作必须确认,都要变成机器可读的接口描述。
这种变化听起来像技术文档,实际也是权力结构。谁定义工具接入的方式,谁就掌握应用生态的一部分入口权。互联网行业对此并不陌生。浏览器扩展、移动应用商店、云市场、协作软件机器人,都曾围绕“谁定义接口”展开长期竞争。生成式AI把同一个问题搬进了对话框:当用户用自然语言提出需求,谁站在用户意图和外部服务之间?
OpenAI在插件博客中反复强调安全。原因并不复杂。一个会胡说的聊天机器人令人尴尬;一个会胡说并且能调用服务的系统,开始令人紧张。
三、从公开演示看见新任务流
插件发布的意义,不能只靠功能清单理解。沿着OpenAI公开介绍的能力,可以看到一个新的任务流正在成形。
第一步,模型可以查找外部信息。浏览器插件让ChatGPT在需要时访问网络,而不是只依赖模型训练时吸收的资料。过去,搜索引擎把用户送往网页;对话式入口则试图把网页内容带回对话。这里的变化不只是信息更新,也是交互秩序变化。用户从“输入关键词、点击结果、自己汇总”,转向“提出目标、等待模型检索并组织答案”。
第二步,模型可以运行计算或代码。Code interpreter代表了另一种循环:模型不只写代码,还能在受控环境里运行代码,看到错误,再修改。程序员熟悉的调试过程被包进自然语言界面。对非程序员来说,这意味着上传表格、清洗数据、画图、做简单统计分析,不必从学习Python语法开始。对程序员来说,这意味着一个能解释需求、生成脚本、运行脚本、修补错误的助手被放进同一个对话窗口。
第三步,模型可以连接服务。旅行插件可以查询行程相关信息,餐厅插件可以处理预订相关请求,购物插件可以寻找商品,工作流插件可以把动作分发到其他应用。[2] ChatGPT在这里不再只是“答案生成器”,更像一个前台调度员:它听懂请求,询问缺失条件,转接合适服务,再把外部返回结果组织给用户。
这对小团队尤其诱人。一个小型软件公司未必有能力建立自己的大规模分发渠道,也未必能让用户每天打开自己的独立应用。但如果它的服务能出现在ChatGPT的调用链里,就有机会在用户提出需求时被调用。入口不再只是应用图标、搜索排名或浏览器书签,也可能是一句自然语言之后的工具选择。
这也是OpenAI平台化叙事中最现实的部分。平台早期总是以“让用户更方便”为名出现。浏览器支持扩展,智能手机支持应用,协作软件支持机器人,云平台支持市场模板。每一次,技术上看是接口,商业上看是生态,治理上看是权限。插件也是如此:它把外部工具接进对话系统,也把服务分发、用户确认、数据流动和责任边界一并带进来。
日常场景看似琐碎,却最接近真实经济。AI行业前一刻还在讨论考试成绩、多模态输入和模型架构,后一刻就开始讨论订餐、购物、行程和办公流程。这不是从宏大退回琐碎,而是从展示能力走向使用能力。技术革命经常不是在指标表里完成闭环,而是在“帮我把这件小事办了”的需求里获得入口。
但日常需求也最难处理。人类说“帮我订一家合适的餐厅”,里面包含大量隐含条件:预算、距离、口味、时间、是否适合孩子、是否方便取消、是否只是想看看选项而不是真的预订。模型可以生成流畅建议,却未必知道用户愿意承担什么后果。插件让它靠近执行,执行则要求更高的确认、权限、记录和撤销机制。
这就是闸门打开后的第一道水声:便利冲出来,风险也跟着冲出来。
四、函数调用:模型成为调度器
插件面向ChatGPT用户和第三方服务生态。三个月后,OpenAI把同一种思想下沉到API层。
2023年6月13日,OpenAI发布“Function calling and other API updates”。官方博客写道:“Developers can now describe functions to gpt-4-0613 and gpt-3.5-turbo-0613, and have the model intelligently choose to output a JSON object containing arguments to call those functions.”——开发者现在可以向gpt-4-0613和gpt-3.5-turbo-0613描述函数,并让模型智能地选择输出一个JSON对象,其中包含调用这些函数所需的参数。[3]
这段话很技术,也很关键。
函数调用的核心不在于模型突然“拥有”外部能力。模型不会自己真的查数据库、发邮件、订票、扣款。它做的是另一件事:在开发者给定的一组函数说明中,判断用户意图是否需要调用某个函数;如果需要,就按照结构化格式生成参数。真正执行函数的,仍然是开发者的应用程序。
换句话说,大模型开始成为“调度器”。
过去,软件系统里的调度依赖按钮、表单、菜单和规则。用户点击“搜索”,系统调用搜索接口;用户点击“提交订单”,系统调用订单接口;用户点击“发送”,系统调用消息接口。函数调用把入口换成自然语言。用户说“查一下我这个月花在差旅上的钱,并按城市汇总”,模型可以判断需要调用交易查询函数,填入日期范围、类别和分组字段;应用拿到JSON后执行查询,再把结果交给模型总结。
这是一种新型中间层:理解意图,选择工具,填写参数,接收结果,组织回复。
对企业软件开发者来说,它解决的是一个长期问题:很多系统早已有API,难的是让普通用户以低成本调用它们。客服系统、商业智能、企业知识库、日程管理、CRM、财务软件、代码平台,都可以套进类似框架。开发者不必把每一个用户意图都写成固定规则,而是把工具能力描述给模型,让模型把模糊人话转成结构化调用。
同一篇更新还宣布gpt-3.5-turbo-16k。OpenAI称,相比标准4K上下文版本,它提供约四倍上下文长度。[3] 这不是孤立参数。真实业务很少只有一句话。它有历史记录、权限说明、用户偏好、合同、工单、表格、日志和文档。上下文越短,模型越像一个聪明但健忘的前台;上下文变长,它才更可能在复杂流程中维持状态。
从插件到函数调用,OpenAI完成了一次产品叙事转译。插件告诉普通用户:ChatGPT可以接外部服务。函数调用告诉开发者:你可以把自己的服务接给模型。前者像应用商店的早期窗口,后者像操作系统提供给开发者的系统调用。
但营销语言容易遮住一个事实:工具调用的可靠性不等同于模型回答的可靠性。自然语言有歧义,函数参数有格式要求,业务流程有权限限制。模型“选择了正确函数”只是开始;它还必须填对参数,理解返回结果,在必要时请求用户确认,并在不确定时停止。
传统软件工程里,错误处理、异常分支、幂等性、权限校验、审计日志,都是可靠性的组成部分。大模型应用把一个概率性语言系统放进确定性流程中间,便利和不确定性同时增加。软件行业仿佛给一位极擅长沟通、但偶尔会即兴发挥的实习生发了一串API钥匙,然后补充说:请严格按流程办事。
这不是否定函数调用。恰恰相反,它说明函数调用为什么重要。只有当模型足够强,开发者才会认真考虑让它接近业务系统;也只有当它开始接近业务系统,安全和治理才从附加题变成主线题。
五、Agent热潮:给AI一个目标
函数调用把模型变成调度器。开源社区很快把这个想象继续往前推:如果模型能选择工具、执行步骤、读取结果,那能不能给它一个目标,让它自己拆解任务、循环执行,直到完成?
这就是2023年春天“AI Agent”热潮的核心想象。
这个想象并非凭空出现。2022年,Yao等研究者发表论文《ReAct: Synergizing Reasoning and Acting in Language Models》。论文摘要写道:“We explore the use of LLMs to generate both reasoning traces and task-specific actions in an interleaved manner…”——研究者探索让大语言模型以交错方式生成推理轨迹和任务特定行动。[4] ReAct把“推理”和“行动”组织在同一循环里:模型先给出推理,再采取行动获取外部观察,然后根据观察继续推理。
GPT-4出现后,这条研究路线被产品演示、开源仓库和开发者实验放大。Auto-GPT成为其中最醒目的项目之一。GitHub仓库简介称它是:“An experimental open-source attempt to make GPT-4 fully autonomous.”——一次让GPT-4完全自主的实验性开源尝试。[5] 这句话几乎浓缩了2023年春天开发者社区的想象力:GPT-4、完全自主、开源、实验。
Auto-GPT的基本思路,是让用户设定目标,然后系统让模型生成任务、规划步骤、调用工具、保存记忆、评估进展,再继续下一轮。它不是一次问答,而是一个循环。循环里,模型既是计划者,也是执行者,又是自我评估者。屏幕上不断出现任务列表、搜索结果、文件写入和下一步计划,看起来像一个数字员工正在工作。
BabyAGI也在同一时期被反复讨论。Yohei Nakajima公开的BabyAGI项目展示了另一种任务循环:根据目标创建任务、执行任务、生成新任务、调整优先级。[6] 这个名字带着玩笑意味,但方向并不轻松:让语言模型从“回答一个问题”转向“维护一个目标”。
这股热潮有真实的技术推动,也有明显的泡沫声响。
真实的一面在于,GPT-4确实让多步骤任务的可行性提高了。模型更能遵循复杂指令,更能写代码,更能根据观察结果调整输出。插件和函数调用提供了工具接口。ReAct等研究工作提供了“推理+行动”的框架。于是,独立开发者可以在周末搭出一个“自主代理”,让它尝试做市场调研、整理资料、写代码、生成计划。
泡沫的一面也来得很快。早期Agent经常不稳定。它会把目标拆得过细,循环生成意义不大的任务;会在搜索、总结、再搜索之间打转;会因为一次错误观察走偏;会不断调用模型,成本迅速上升;会写出看似合理但无法运行的代码;会在需要人类判断的地方假装已经判断。
这种荒诞不是某个项目的笑话,而是早期技术形态的典型症状。行业先获得了一个足够会说话的模型,又迫不及待给它加浏览器、终端、记忆、待办事项和工具权限。每个组件单独看都有道理,组合起来却像把一间办公室压缩进一个提示词里:老板、员工、秘书、搜索员、会计和审计,全由同一个模型轮流扮演。
Agent热潮真正留下的,不是“完全自主AI已经成熟”的结论,而是一个方向被公开验证:开发者开始把大模型视为行动循环中的核心部件。哪怕这个部件还会绕圈、烧钱和胡来,它也把想象力从聊天框推向任务系统。
六、安全边界:提示注入、越权调用和责任归属
插件和Agent的危险,不是因为模型会说错话。危险在于,说错话可能变成做错事。
OpenAI在ChatGPT Plugins发布博客中承认,插件会带来新的安全挑战。据OpenAI博客表述,插件可能增加有害或非预期操作的风险,可能扩大坏人欺诈、误导或滥用他人的能力,也可能加剧虚假信息等问题。[2] 这类表述放在产品发布中并不常见。它说明OpenAI自己也清楚:当模型连接外部工具,安全问题进入新阶段。
其中最有代表性的风险之一,是提示注入。
提示注入的基本问题是:大语言模型很难天然区分“指令”和“数据”。用户给模型的系统要求、开发者写入的工具说明、网页上的文本、邮件里的内容、文档里的句子,在模型看来都可能是语言。安全研究者Simon Willison在2022年公开讨论prompt injection attacks,指出攻击者可以把恶意指令放进模型将要读取的文本中,从而诱导模型偏离原本指令。[7]
在没有工具的聊天场景里,提示注入可能让模型输出奇怪内容。接入插件后,问题升级。假如模型浏览一个网页,而网页里嵌入诱导性文本;假如模型读取一封邮件,而邮件内容要求它转发敏感信息;假如模型总结一个文档,而文档中夹带“请调用某某工具”的伪指令——模型是否能稳定把这些当作不可信数据,而不是新命令?
这正是行动系统的难题。人类阅读网页时,会把网页内容和浏览器权限分开;传统软件调用API时,会通过固定逻辑和权限校验执行;大模型代理则处在两者之间。它读得懂文本,也可能被文本影响;它能生成调用参数,也可能把不该调用的东西填进去。
越权调用是第二类风险。插件和函数调用本质上要求系统授予模型某种工具权限。权限可以很小,比如查询天气;也可以很大,比如读取企业知识库、发送Slack消息、创建日历邀请、触发自动化工作流。权限越大,便利越大,事故面也越大。一个错误总结也许只会误导用户;一个错误API调用可能写入数据库、发出邮件、修改订单或暴露文件。
第三类风险是责任归属。传统软件里,如果用户点击“确认付款”,责任链相对清楚:用户操作、平台规则、支付记录、商家履约。AI代理介入后,链条变长。用户说“帮我处理一下”,模型理解为“发送这封邮件”,工具执行发送,收件人收到内容。若结果造成损失,责任该落在用户、应用开发者、模型提供商、插件服务商,还是部署这个系统的企业?2023年的公开资料还没有给出成熟答案。
第四类风险是错误的外部化。聊天机器人时代,模型幻觉通常停留在回答中;插件时代,幻觉可能被包装成行动理由。模型如果编造了一个不存在的约束,可能据此选择错误服务;如果误读用户偏好,可能生成错误参数;如果过度自信,可能在应当请求确认时继续执行。越是流畅的交互,越容易掩盖中间的不确定性。
对企业管理员来说,这个问题不抽象。一个新工具接入内部系统,不只是“能不能用”,还意味着谁能访问哪些数据、调用哪些接口、日志保存多久、员工离职后权限如何撤销、模型输出能否进入正式业务流程。对普通用户来说,问题也不抽象:当模型建议、代填、跳转、调用一步步靠近最终执行,人还是否真正理解自己确认了什么?
OpenAI在插件发布中采取小范围开放,正是因为这个系统需要逐步测试。[2] 但市场和开发者生态的速度往往快于安全工程。一个平台只要展示出“自然语言调用真实服务”的可能性,就会吸引更多开发者把工具接进来。每个接入都是功能,也是攻击面;每个自动化都是效率,也是责任链条。
行业的荒诞感再次出现:人们一边让模型访问最新网页,一边担心网页反过来命令模型;一边让模型替人调用工具,一边要求它在关键时刻像合规专员一样谨慎。这个矛盾不容易靠一句“人在回路中”解决。人在回路中也需要清晰界面、权限提示、审计日志、可解释记录和撤销机制。否则,人类只是被安排在模型即将按按钮前,匆忙读完一段它生成的理由。
七、按钮被交给模型
到2023年夏天,生成式AI竞争的范围已经明显扩大。
第一个阶段,比的是谁能做出让公众惊讶的聊天机器人。第二个阶段,比的是谁的模型更强。GPT-4用考试、代码、多任务和多模态能力,把公众叙事继续推向更高强度的能力竞赛。第三个阶段开始时,问题变成:强模型怎样连接外部世界?
插件、函数调用、Agent热潮共同给出了答案的雏形。
插件把ChatGPT推向平台。它连接第三方服务,让聊天框不再只是答案终点,而成为应用入口。函数调用把这种能力交给开发者,让模型成为业务系统和自然语言之间的调度层。Auto-GPT、BabyAGI等项目则把想象推到更远:模型不只是被动回答,而是围绕目标进行计划、行动和循环。
这条路线令人兴奋。它暗示软件界面可能发生变化。用户也许不必在十几个应用之间切换,不必学习每个系统的按钮,不必把需求拆成软件能理解的格式。用户说目标,模型找工具;用户给约束,模型填参数;用户要结果,模型整理过程。许多长期被复杂界面挡在外面的人,可能因此获得新的计算能力。
这条路线也令人不安。因为行动比语言更难治理。文本错误可以删除,错误订单要取消,错误邮件会被读到,错误API调用会留下状态,错误数据暴露无法简单收回。一个模型如果只是胡编,它是信息问题;一个模型如果能胡编之后调用工具,它就是系统问题。
于是,百模大战从一开始就不只是模型参数和榜单分数的比赛。模型公司争夺的不只是用户注意力,还有开发者、API、插件生态、企业数据、工作流入口和真实世界权限。谁的模型更强,固然重要;谁能让更多工具围绕自己建立接口,谁能让开发者把业务流程接到自己平台上,谁能定义安全确认和权限标准,同样重要。
这就是OpenAI在2023年3月23日打开的那道闸门的意义。
聊天机器人时代,用户把问题交给模型。插件时代,用户开始把按钮交给模型。按钮背后可能是网页、数据库、Python解释器、旅行服务、餐厅预订、购物车、企业聊天和自动化工作流。每一个按钮都让AI更有用,也让错误更昂贵。
当AI从语言系统变成行动系统,真正的问题不再是“它会不会回答”,而是:它凭什么行动?它能访问什么?谁批准?谁记录?谁负责?谁能撤回?
闸门已经打开。水流不是单向的赞歌,而是一股混合着效率、野心、风险和制度空白的洪水。接下来的竞争,将不只发生在模型实验室,也会发生在每一个API、每一个企业权限面板、每一个开发者框架和每一次“确认执行”的按钮上。
参考文献
- OpenAI Blog,“GPT-4”,2023-03-14。
- OpenAI Blog,“ChatGPT plugins”,2023-03-23。
- OpenAI Blog,“Function calling and other API updates”,2023-06-13。
- Yao et al.,“ReAct: Synergizing Reasoning and Acting in Language Models”,2022。
- GitHub,Significant-Gravitas/Auto-GPT,“Auto-GPT”,2023。
- GitHub,yoheinakajima/babyagi,“BabyAGI”,2023。
- Simon Willison,“Prompt injection attacks against GPT-3”,2022-09-12。