【Apps SDK】OpenAI推出的Chatgpt与外部应用集成的工具

背景

这个月,OpenAI举办了其年度开发者大会,由于我们的产品正在逐步使用AI的相关功能,老板很重视这个发布会,让我研究一下此次发布会的两个重点APP SDK和AgentKit,并让我准备一个分享会。

上文中已经介绍了一些关于AgentKit的一些内容,本文主要是在我资料收集中总结的一些内容(分享会上包括一些实操这里没有贴)。此篇文章主要介绍Apps SDK的相关介绍,主要是基于官方文档,概念性的东西比较多,文中也贴了一些链接,我尽量以AI概念小白能够看懂的方式去描述。

前言

现在其实很多的手机智能助手并不能直接使用APP帮我做一些东西,除了不够智能,不够了解我的意图以外,比如我的siri,除了让他打开某个软件之外,他无法对软件内部做任何操作,本质就是我们的应用没有向他暴露接口或者其他可以操作APP的能力,他无法通过我们的意图来访问我们的应用来帮我操作。

Apps SDK

Apps-SDK 是 OpenAI 最近推出的一套工具开发框架,它让开发者能够把自己的服务、数据或系统能力,直接接入 ChatGPT 。简单来说,它让 ChatGPT 不只是一个聊天机器人,而是一个可以直接调用你自己业务逻辑的入口

官方文档链接:

developers.openai.com/apps-sdk/co...

此工具的推出,被各个分析博主称为OpenAI最大的野心,因为其直接让Chatgpt拥有了访问应用的能力,以后我们的手机助手将会变的越来越智能,并且根据我们的使用习惯,不断优化。其也让接入Chatgpt的APP的应用有了巨大的流量入口,毕竟Chatgpt拥有全球每周8亿的活跃用户,上一个提供这种流量入口的还是微信的小程序。咱就不多吹了,主要分析其应用。感兴趣的可以看一下这个视频[www.xiaohongshu.com/explore/68e...]

三个概念

MCP服务器

什么是MCP

MCP,全称 Model Context Protocol ,是 OpenAI 在 2024 年 11 月 推出的一个新的开放协议。

它是 Function Calling 的 继任者与标准化版本

简单来说,MCP就是一种规范,类似于前后端对接的规范一样,你的服务得实现得符合MCP协议,Agent才会认识你,并且调用你的服务。 什么是模型上下文协议(MCP)?它如何比传统API更简单地集成AI?

Agent的一些概念可以看一下这些文章:

MCP服务器做了什么

使用Apps SDK的主要提供了两个作用:

  1. 列举工具,调用工具:这里的工具就是Agent概念里面的tool,可以是联网搜索的功能, 某个文件的查询, 三方软件的服务, 如美团航班查询,谷歌email服务,或者你自己的提供的服务MCP规范的接口。
  2. 返回自定义的UI组件:由于大模型默认返回的格式都是md文件格式,如果要实现比如图表,表格,表单等内容,需要我们自定义,并且返回给大模型,这样就可以在聊天框显示我们需要的样式。
js 复制代码
┌──────────────────────┐
│  ChatGPT App / 用户交互 │
└──────────────┬──────┘
               │
               │ 用户输入(例如:"创建会议")
               ▼
        ┌──────────────────┐
        │   Apps SDK 客户端 │
        │(嵌入于 mcp sersver)│
        └──────────────────┘
               │
               │ ① List tools
               │   → 请求 MCP Client 提供工具清单
               ▼
┌────────────────────────────────────────┐
│           MCP server                 │
│ ┌───────────────────────────────────┐ │
│ │ 1️⃣ 列出工具 (list_tools)          │ │
│ │  - 返回工具列表 + JSON Schema       │ │
│ │  - 如:create_meeting, search_flight│ │
│ └───────────────────────────────────┘ │
│                                       │
│ ┌───────────────────────────────────┐ │
│ │ 2️⃣ 调用工具 (call_tool)            │ │
│ │  - Apps SDK 发送 call_tool 请求     │ │
│ │  - 携带参数(来自模型推理)          │ │
│ │  - MCP Server 执行实际动作           │ │
│ │  - 返回结构化结果(JSON 可解析)     │ │
│ └───────────────────────────────────┘ │
│                                       │
│ ┌───────────────────────────────────┐ │
│ │ 3️⃣ 返回组件 (return_components)     │ │
│ │  - 工具可提供一个 UI 界面资源链接     │ │
│ │  - ChatGPT 客户端可嵌入渲染          │ │
│ └───────────────────────────────────┘ │
└────────────────────────────────────────┘
               ▲
               │
               │ 响应(structured content + UI component)
               ▼
        ┌──────────────────┐
        │   Apps SDK 客户端 │
        └──────────┬───────┘
                   │
                   │ 渲染结果或执行下一步 reasoning
                   ▼
         ┌────────────────────┐
         │ ChatGPT App / 用户 │
         └────────────────────┘

随便画的简图

mcp服务作为一个桥梁,让chatgpt知道调用我们的哪个接口,哪个服务。

Apps-sdk作为一个工具,让我们快速建立一个mcpServer

用户交互

当Chatgpt中有多个类似的应用时,Chatgpt怎么知道要调用你的服务?

官方的解释如下 developers.openai.com/apps-sdk/co...

Discovery(发现)

一、命名提及(Name Invocation)

最直接的方式。

当用户在对话中明确提到你的应用名称时,模型会自动识别并在响应中调用该应用。

例子:

用户说「帮我用 任务助理 查一下今天的任务」,ChatGPT 会立即调用你注册的 "任务助理" 应用。

二、会话探索(Conversation Exploration)

如果用户一开始没有提到你的应用名称 ,模型会在用户发送 Prompt 时动态评估,决定是否调用。

这个评估过程综合了以下几个维度:

  1. 对话上下文
    包括聊天历史、已使用的工具结果、用户记忆、偏好等。

例如:之前用户聊过"任务管理",模型会倾向再次使用"任务类"工具。

  1. 名词提及与引用
    模型会分析 Prompt 中的名词(例如"谷歌"、"美团"),判断是否与某个应用相关。
    若你的 App 在搜索结果中频繁被引用,也会提升触发概率。
  2. 工具元数据(Metadata)
    也就是你在 MCP 服务中提供的名称、描述、参数说明。
    元数据清晰准确,会显著提高模型理解你工具用途的可能性。
  3. 用户关联状态(User Linking)
    模型会判断用户是否已连接或授权你的 App,若未授权,ChatGPT 会提示连接后再使用。
三、使用目录进行选择(Directory Invocation)

如果用户主动从 ChatGPT 的App 目录中选择你的应用 ,则会直接建立交互。

这是一种显式触发方式,常用于用户已经了解应用功能的场景。

如何提高你的 App 被发现和调用的概率?

要让 ChatGPT 更"聪明地"找到并使用你的服务,可以从以下几个方向优化:

1. 让提示词更"行动化"

模型对行动导向 的请求反应更灵敏。

例如,不要问「你知道任务什么时候过期吗?」

而要说「帮我查一下这个任务什么时候过期」。

这样模型更容易判断需要调用"任务查询类"App。


2. 优化工具描述(Metadata)

在工具元数据中,用自然语言准确描述工具行为和输出形式

例如:

"这个工具会展示一个任务列表表格,用户可以点击查看详情。"

模型在理解元数据时,会建立"用途-表现"映射,从而更精准地匹配场景。

3. 定期在开发者模式中测试

OpenAI 为开发者提供了 ChatGPT 的开发者模式(Developer Mode)

你可以在其中测试模型的应用发现行为:

  • 精确率(Precision): 模型是否在合适的时候选中了你的工具?
  • 召回率(Recall): 是否遗漏了一些本该调用你的工具的场景?

通过测试和迭代描述,你能逐步提高模型的理解能力和触发率。

应用设计指南

我的理解是,这个部分主要是定义了一些规范以及建议,如何让你的应用能够更好的嵌入到Chatgpt中 这里不做过多解释了,可以直接看原文developers.openai.com/apps-sdk/co...

如何让Chatgpt展示我们自己的UI页面

这部分就是文章一开始的时候介绍的,如何让Chatgpt能够更好的展示我们自己的AI页面的能力。

过去,我们和 ChatGPT 互动的方式非常单一:

------你输入一句话,它输出一段文字。

这是一种 对话式接口(conversational interface)

但是,当我们在 ChatGPT 里使用工具(tools)或调用外部系统时,这种"纯文本交互"逐渐暴露出几个明显的局限:

  1. 表达力不够
    比如一个订票工具、地图搜索、报表生成器,只用文字展示结果太粗糙。
    用户想看到「列表」「图片」「图表」「地图」「状态」等结构化结果。
  2. 交互性不足
    文本交互意味着用户每一步都要"说出来",无法直接点击或滑动操作。
    想要调整筛选条件、修改结果、刷新内容,都要重新输入指令。
  3. 缺乏视觉一致性
    不同工具输出风格各异,体验割裂;
    有的返回 JSON、有的返回 markdown、有的返回图片链接,用户体验不统一。
  4. 上下文难管理
    模型生成的结果是静态的文本,无法维持可持续交互或状态同步。
    比如"选中某个结果再进一步操作",在纯对话模式下非常别扭。

于是,OpenAI 推出了 Apps SDK 中的 "Custom UX" 能力

它让开发者可以在 ChatGPT 内嵌自己的交互界面 ------

一个可以显示数据、接受操作、触发事件的"小应用",真正让 ChatGPT 成为一个"界面容器"。

总结

我认为APPS SDK的对于开发者,两个大的能力其实就是功能层面页面层面上的

层级 作用 举例
功能层(Action 层) 定义工具逻辑、参数和响应(MCP Server 部分) 查询任务列表、创建会议、获取报表
界面层(UI 层) 定义结果如何被 ChatGPT 渲染展示 表格、卡片、图表、按钮、输入框等

但是其推出的实际意义要更大于我们着眼的开发的意义,或许下一个APP的应用市场,下一个APP的流量入口就会从大模型这里爆发。

参考

相关推荐
gongzemin4 小时前
使用阿里云ECS部署Express
后端·node.js·express
回家路上绕了弯5 小时前
深入浅出:如何设计一个可靠的分布式 ID 生成器
分布式·后端
CornPrincess5 小时前
Java继承知识点(2025.10.24)
后端
白帽子凯哥哥5 小时前
SpringBoot + Elasticsearch实战:从零构建高性能搜索与数据分析平台
大数据·spring boot·后端·elasticsearch·搜索引擎·性能优化·聚合查询
又过一个秋5 小时前
【sylar-webserver】2 配置系统
后端
又过一个秋5 小时前
【sylar-webserver】1 日志系统
后端
成都第一深情IZZO5 小时前
工厂模式(使用Spring Bean)和 策略工厂模式 的区别
后端
该用户已不存在5 小时前
写了这么多年Java,这几个神仙技巧你用过吗?
java·后端
大雨淅淅5 小时前
【编程语言】Rust 入门
开发语言·后端·rust