什么是 ChatGPT 开发者模式
ChatGPT 开发者模式为所有工具(包括读取和写入)提供完整的模型上下文协议 (MCP) 客户端支持。它功能强大但也存在风险,主要面向了解如何安全配置和测试应用的开发者。使用开发者模式时,请注意 提示注入及其他风险、可能导致数据破坏的模型写入操作失误,以及试图窃取信息的恶意 MCP。
如何使用
-
Eligibility: 适用于网页端的 Pro、Plus、Business、Enterprise 和 Education 账户。
-
开启开发者模式: Go to 设置 → 应用 → 高级设置 → 开发者模式.
-
从 MCP 创建应用:
- 打开 ChatGPT Apps 设置.
- 点击 高级设置 旁边的“Create app”,为您的远程 MCP 服务器创建应用。在随后的对话中,该应用将出现在作曲家的“Developer Mode”工具中。只有当您处于开发者模式时,才会显示“Create app”按钮。
- 支持的 MCP 协议:SSE 和流式 HTTP。
- 支持的身份验证:OAuth、无身份验证和混合身份验证
- 对于 OAuth,如果提供了静态凭证,则会使用这些凭证。否则,当授权服务器宣告支持且连接器创建者选择 CIMD 时,ChatGPT 可以使用 Client ID Metadata Documents。CIMD 支持公开客户端令牌交换(
none)和已签名的客户端断言令牌交换(private_key_jwt)。ChatGPT 在配置后也可以使用 DCR。 - 混合身份验证支持 OAuth 和无身份验证。这意味着初始化和列出工具的 API 不使用身份验证,而工具则根据其工具元数据上设置的安全方案使用 OAuth 或不使用身份验证。
- 对于 OAuth,如果提供了静态凭证,则会使用这些凭证。否则,当授权服务器宣告支持且连接器创建者选择 CIMD 时,ChatGPT 可以使用 Client ID Metadata Documents。CIMD 支持公开客户端令牌交换(
- 创建的应用将显示在应用设置的“Drafts”下。
-
管理工具: 在应用设置中,每个应用都有一个详情页。可使用该页面开启或关闭工具,以及刷新应用以从 MCP 服务器拉取新工具、描述和服务器指令。
-
在对话中使用应用: 从“+”菜单中选择 开发者模式 并选择对话所需的应用。您可能需要尝试不同的提示词技巧来调用正确的工具。例如:
- 明确指令:“使用 Acme CRM 应用的 update_record 工具来……”。需要时,请包含服务器标签和工具名称。
- 禁止替代方案以避免歧义:“不要使用内置浏览或其他工具;仅使用 Acme CRM 连接器。”
- 消歧义相似工具:“优先使用
Calendar.create_event来处理会议;请勿使用Reminders.create_taskfor scheduling.” - 指定输入结构和调用顺序:“首先调用
Repo.read_filewith{ path: "…" }。然后调用Repo.write_file并传入修改后的内容。请勿调用其他工具。” - 如果多个应用存在功能重叠,请预先声明偏好(例如,“使用
CompanyDB获取权威数据;仅当CompanyDB未返回结果时,才使用其他来源”)。 - 开发者模式不需要
search/fetch工具。您的连接器公开的任何工具(包括写入操作)均可用,但受确认设置的限制。 - 查看更多指南,请见 使用工具 and 提示.
- 通过更好的工具描述改进工具选择:在您的 MCP 服务器中,编写面向操作的工具名称和包含“在……时使用”指导说明的描述,注明不允许/边缘情况,并添加参数描述(和枚举),以帮助模型在相似工具中选择正确的工具,并在不适当的时候避免使用内置工具。
- 添加服务器指令以提供跨工具指导:使用 MCP 的
instructions字段 来提供服务器级别的指导,例如所需的工具调用顺序、共享的速率限制或工具之间的关系。保持前 512 个字符内容独立且完整。
Examples:
Schedule a 30‑minute meeting tomorrow at 3pm PT with alice@example.com and bob@example.com using "Calendar.create_event". Do not use any other scheduling tools.Create a pull request using "GitHub.open_pull_request" from branch "feat-retry" into "main" with title "Add retry logic" and body "…". Do not push directly to main. -
检查和确认工具调用:
- 检查 JSON 工具负载以验证其正确性并调试问题。对于每次工具调用,您可以使用插入符号来展开或折叠工具调用的详细信息。工具输入和输出的完整 JSON 内容均可查看。
- 默认情况下,写入操作需要确认。请仔细检查将发送到写入操作的工具输入,以确保行为符合预期。错误的写入操作可能会无意中破坏、更改或共享数据!
- 只读检测:我们会遵循
readOnlyHint工具注解(参见 MCP 工具注解)。未提供此提示的工具将被视为写入操作。 - 您可以选择在单次对话中记住对特定工具的批准或拒绝决定,这意味着该决定将应用于该对话的后续过程。因此,只有当您了解并信任底层应用可以在未经您批准的情况下执行进一步的写入操作时,才应允许工具记住批准决定。新对话将再次提示确认。刷新同一对话在后续的交互中也会再次提示确认。