聊天助手告诉你“可以把这件事加入待办”,不等于待办已经改好。要让 AI 读取资料、创建草稿或执行操作,产品还需要接上相应的工具,并决定这个工具可以访问什么、是否需要你确认。
下面用一份虚构的读书会准备事项,区分普通回答、工具调用和 Agent,再观察本地清单的添加与撤销。示例只改当前程序的临时清单,不连接邮箱、日历、文件或真实账号。你可以先看三词对照表,再按“实测”部分下载材料复现。
三个词分别指什么
| 名称 | 可以这样理解 | 看到它时要检查什么 |
|---|---|---|
| AI 助手 | 面向用户提供回答或完成任务的产品功能。它可能只输出文字,也可能连接搜索、文件或其它工具。 | 当前产品究竟启用了哪些能力? |
| 工具调用 | 模型按约定的格式提出一次请求,例如“读取某个字段”或“把一项写入临时清单”。 | 应用有没有执行这条请求?调用对象和参数是什么? |
| Agent | 一类由模型、指令、工具和运行流程组成的做法,可能根据工具结果继续处理多步任务。不同产品对 Agent 的定义和能力不完全相同。 | 它能调用什么工具、会循环几步、由谁批准具体操作? |
以 OpenAI API 的工具调用说明为例,调用流程包括:应用把可用工具交给模型;模型返回一条结构化调用请求;应用端代码执行请求并生成结果;应用再把结果交回模型,最后形成文字答复。模型返回“要调用工具”这条消息,还不能证明外部操作已经发生。 OpenAI Function calling 文档
OpenAI Agents SDK 则提供了带指令、工具、检查和运行循环的 Agent 框架。这是一个产品实现示例,不代表所有产品都使用同一种 Agent 定义或运行方式。OpenAI Agents SDK 文档
权限由哪些部分共同决定
把权限想成几道分别管理的门:
- 产品是否接入工具: 没有接入写入清单的工具,聊天模型就只能给文字建议。
- 工具本身允许什么: 某个工具可能只能查资料,也可能能新建、修改或发送内容。工具的名称听起来安全,不足以说明它的实际范围。
- 连接账号能访问什么: 邮箱、日历或云盘的连接权限受来源服务和账号授权范围限制。
- 运行时是否要求确认: 产品或工作区可能在执行前展示操作卡片,也可能对某些操作直接拒绝。确认提示是额外检查,不能替代对连接账号和工具范围的核对。
所以,授权时应看清楚应用名称、连接的账号、即将执行的动作、涉及的数据或对象、收件人或分享范围,以及能否撤销。涉及发送、发布、删除、付款或更改访问权限时,先看预览,确认目标和内容,再决定是否批准。
实测:先看一句回答,再看工具实际改了什么
练习材料只有一项准备事项:
虚构活动:青禾社区读书会
准备事项:带一本愿意分享的书
我们在 Mac 上使用本机 Ollama 0.35.1 和 qwen3.8-27b:latest 做了两次对照。提示词要求模型把准备事项放进这次练习的临时清单,不发送通知。
没有注册清单工具时
模型返回:
我无法实际修改你的临时清单,因为当前没有可执行工具。你可以手动加入这一项:带一本愿意分享的书。未发送通知。
这次运行没有给模型注册修改清单的函数,清单保持空白。回答可以建议你做什么,却没有创建清单记录。
注册一个范围很窄的工具时
第二次请求注册了一个本地函数 add_temporary_checklist_item。它只接收 bring_book 这个固定编号,并把编号映射为“带一本愿意分享的书”。模型返回的调用请求是:
{
"name": "add_temporary_checklist_item",
"arguments": {"item_id": "bring_book"}
}
模型只提出了结构化请求。练习程序先展示操作预览:加入本次练习的临时清单“带一本愿意分享的书”;不会发送消息。 然后演示一次性批准。应用端检查参数符合工具允许的编号后,确实把项目加入了仅存在于当前程序内存中的清单;随后撤销该项目。
| 检查点 | 实测结果 |
|---|---|
| 工具执行前 | 清单为空 |
| 执行一次允许的操作后 | 清单包含“带一本愿意分享的书” |
| 撤销后 | 清单重新为空 |
| 外部访问 | 没有网络请求,也没有连接账号、文件、日历或消息工具 |
这一轮能说明工具调用和普通回答的区别:模型提出参数,运行程序检查范围并执行函数,清单状态因此改变。 一次性批准是在本地演示程序里模拟的确认门,不是某个聊天产品的真实审批界面。完整调用请求、实际状态和撤销记录见示例材料包。
用什么顺序检查一张确认卡
收到授权或操作确认时,逐项核对:
- 应用和账号对不对? 确认它将使用哪个邮箱、日历、云盘或其它连接。
- 动作具体是什么? 是读取、创建草稿、修改、发送,还是删除?“继续”或“完成任务”这类笼统文字不足以说明动作。
- 范围是否最小? 检查文件、记录、文件夹、日期范围和收件对象。只做当前任务需要的操作。
- 能否先预览或撤销? 先检查最终内容、对象和影响;无法撤回的操作应更谨慎。
- 这是批准一次,还是长期允许? 如果界面提供选择,按当前需要选择;不要为了省一次点击就扩大持续授权。
如果这次只是要一份草稿,先用只能生成草稿的能力。如果目标是读一段资料,先选只读能力。工具可见的能力越窄,误操作时影响范围通常也越容易判断。
ChatGPT 应用权限是一个具体产品示例
截至 2026-10-12,OpenAI 帮助文档列出的选项包括“始终询问”“允许读取”“允许低风险操作”;部分已连接的个人账号还可能看到“允许所有操作”。账号、应用、连接和工作区策略不同,可见选项也不同。有些敏感操作会被额外检查或直接拒绝,不一定出现授权卡片。查看 ChatGPT 应用权限说明
如果你的设置里有这些入口,官方帮助页给出的账号权限路径是:Settings → Apps 或 Plugins → 选择应用 → 找到 Connected accounts 后选择对应账号的 Settings → 查看 Permissions 并保存。默认权限入口可能显示为 Settings → Plugins → Permissions;没有这些入口时,不代表账号一定有相同控制项。
更改应用权限不会连接账号,也不会代替来源服务的授权。 它同样不会自动断开已连接的账号或撤销来源服务已授予的权限。若要停止今后的访问,应在 Apps 或 Plugins 中选择应用并断开账号;来源服务也可能提供单独的撤销入口。工作区管理员策略、来源账号权限和 ChatGPT 应用权限分别影响不同环节。
练习中没有登录 ChatGPT,也没有连接或更改任何账号权限。我们核对的是官方公开说明,并用本机的虚构清单验证工具调用流程;本地测试不代表其它 App 的按钮、权限范围或授权卡片。
工具清单
| 工具 | 用来做什么 | 费用和使用条件 |
|---|---|---|
| ChatGPT 应用连接 | 让 ChatGPT 在授权范围内读取连接账号的信息或执行支持的操作 | 可用性受账号、区域、应用和工作区影响;需要按当前账号界面确认 |
| OpenAI API Function calling | 开发者把自定义函数交给模型,由自己的程序执行模型提出的请求 | 本文只引用文档,没有调用 API;API 按所选模型用量计费,价格以官方页面为准 |
| OpenAI Agents SDK | 用 Python 组织模型、工具、护栏和运行流程的开发框架 | SDK 可安装使用;模型/API 用量另计费,适合开发者,不是普通用户需要安装的聊天 App |
| Ollama + Qwen3.8-27B | 在本机运行本例里的虚构清单练习 | 不调用云端 API;模型文件约18GB,运行还会占用额外内存,具体以模型页和本机环境为准 |
自己练习
想象你让 AI “把活动提醒加到清单里”。查看你正在使用的产品是否只会回答文字,还是已经连接了清单工具;如果出现操作确认,记录应用、账号、清单名称、加入的具体文字和批准范围。优先选择一个可以撤销的练习条目,不要用真实邮件、公开帖子或付款验证。
完成后检查三件事:
- 清单里是否真的出现了记录?只看到“已添加”的文字不算完成证据。
- 实际添加的内容和目标清单是否正确?
- 如果现在撤销或断开连接,分别会影响这条记录还是之后的访问?不要把“撤销单次操作”和“断开账号”当成同一件事。
更基础的功能地图见《聊天、搜索、思考、看图和上传文件这些功能怎么理解》;处理个人资料前,可再读《给 AI 的资料怎么保护:隐私、脱敏、分享和权限》。