目录

文档 / 概念 / 守门人和风险档

守门人和风险档

守门人只看一件事:这个动作是哪一档。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 对待。