Skip to content

权限与 Policy ​

Agent App 是可执行包。它可能注册 UI、运行 workflow、读取用户选择的文件、调用工具、启动 Agent task、创建 Artifact、写入 storage 或请求凭证。宿主必须能在运行前审查并在运行时强制执行这些行为。

Permission 是声明;Policy 是宿主把声明变成 allow、ask、deny、audit、retain、degrade 的决策过程。

权限原则 ​

  1. 运行前声明。
  2. 只请求完成任务所需的最小 scope。
  3. 区分安装审查和运行时确认。
  4. 凭证保存为 secret handle,不保存明文。
  5. 信任敏感操作要记录 Evidence 或 audit。
  6. 官方默认值、租户 overlay、workspace override 分离。

权限字段 ​

yaml
permissions:
  - key: read_selected_files
    scope: filesystem
    access: read
    required: true
    reason: 读取用户主动选择的资料文件,用于知识库构建。
  - key: call_content_tools
    scope: tool
    access: execute
    required: true
    reason: 调用文档解析和导出工具。

推荐字段:

字段含义
key稳定权限 ID。
scopefilesystem、network、tool、model、storage、artifact、secret 等。
accessread、write、execute、export、admin、request。
required缺失时是否阻塞。
reason用户可读说明。
entries可选,哪些 entry 需要此权限。
degradedBehavior可选权限被拒绝后的降级行为。

安装时和运行时 ​

权限安装时运行时
App storage namespace展示创建计划。激活时执行 migration。
用户选择文件展示可能需要。用户选文件时确认。
外部 Tool检查可用性。高风险调用前确认。
模型成本展示成本策略。按 run 或月度限额拦截。
Secrets声明 secret slot。用户或租户管理员绑定。
Export展示输出类型。确认目标和保留策略。

Secret ​

App 只能声明 secret slot,不能包含 secret value。

yaml
secrets:
  - key: publishing_workspace_token
    provider: lime.secrets
    scope: workspace
    required: false

App 应拿到宿主提供的 handle,而不是明文凭证。

Policy 结果 ​

结果行为
allow可以继续。
ask需要用户、管理员或 workspace owner 确认。
deny不能使用该能力。
degraded降级运行。
audit-only可运行,但必须记录审计或 Evidence。
blocked设置变更前不能激活。

Readiness 应把这些结果展示为用户可行动任务。

运行时强制拦截 ​

权限 UI 不够。Capability SDK bridge 必须执行拦截。即使 UI 没隐藏按钮,未授权 tool call 也必须被 bridge 拒绝。

拦截点包括:SDK handle 创建、storage namespace、tool invocation、file read/write、model task、artifact export、secret access、network access、background task schedule。

发布前检查 ​

  • 每个可执行 entry 都声明了权限。
  • 每个 secret 都是 slot,不是 value。
  • 可选权限有降级行为。
  • Policy error code 稳定可读。
  • Bridge 层强制执行,而不只靠 UI。
  • 信任敏感运行会记录 Evidence。

Draft host-platform standard for installable agent applications.