文档 / 概念 / 守门人和风险档
守门人和风险档
守门人只看一件事:这个动作是哪一档。app 自己报档。
agent 想做的每件事都经过守门人。守门人不猜意图,只看风险档。风险档由 app 在能力的声明里报。
三档
| 档 | 例子 | 守门人怎么做 |
|---|---|---|
local 本地可逆 |
调灯、计时 | 不问。做完灯闪一下 |
remote 远端可逆 |
查航班、写草稿 | 第一次问:这一次、以后都行、不行。人选了常设,就不再问 |
irreversible 不可逆 |
花钱、发出去、开锁 | 每次都问,只认实体键。嘴上说「好」不算 |
常设权限由人给,人随时能收回。不可逆的动作没有常设权限。等按键有时限,过了时限就不做。
每个动作写一行日志
守门人放行一个动作,做完写一行日志。日志在设备上,留 30 天。不可逆的动作还写上谁按的键。
怎么在声明里报档
{
"name": "order.pay",
"description": "下单付钱",
"inputSchema": { "type": "object" },
"_meta": { "qing": {
"risk": "irreversible",
"preview": "给{shop}付{amount}元"
} }
}
preview 是确认时念给人听的话。不可逆的能力要写 preview。
报错档是最严重的错
把花钱的动作报成 remote,人就会在没按键时被扣钱。拿不准,就往高了报。
要网的 app 没有 local 档
清单里写了 network = true 的 app,它报的 local 按 remote 对待。app 能出门,系统就不信它只在本地。想让一个动作真的不问,把它放进一个不要网的 app。
没有撤销
QingOS 没有通用的撤销。要能改回去,就给一个反着做的能力,比如 list.add 和 list.remove。人说「撤销」,模型用它。
别人的 MCP 服务
别人的 MCP 服务没有 _meta.qing 也能接。只读的动作按 remote 对待,其余一律按 irreversible 对待。