Files
X-Financial/document/development/agent/agent plan/08_permission_confirmation.md
2026-05-15 06:58:21 +00:00

3.5 KiB
Raw Blame History

权限与确认引擎

1. 目标

Agent 不能只靠提示词判断能不能执行动作。

财务系统需要独立的权限与确认引擎:

Permission Engine
Confirmation Engine

它们负责:

  • 判断用户是否能看某类数据。
  • 判断任务是否能调用某个能力。
  • 判断动作是否需要确认。
  • 判断动作是否禁止自动执行。

2. 动作风险分级

建议按 L0-L5 分级。

L0 只读查询

例子:

  • 查询制度。
  • 查询单据状态。
  • 查询规则说明。
  • 查询任务运行记录。

要求:

  • 需要权限。
  • 不需要确认。

L1 生成建议

例子:

  • 生成审批意见建议。
  • 生成风险解释。
  • 生成规则优化建议。

要求:

  • 需要权限。
  • 不写业务状态。
  • 不需要确认,但要标记为建议。

L2 生成草稿

例子:

  • 生成报销草稿。
  • 生成付款申请草稿。
  • 生成知识库候选。

要求:

  • 需要权限。
  • 写入草稿区。
  • 不进入正式流程。

L3 用户确认后提交

例子:

  • 用户确认后提交报销。
  • 审批人确认后写入审批意见。
  • 用户确认后发起补件。

要求:

  • 必须二次确认。
  • 必须记录确认人。
  • 必须记录确认前后内容。

L4 管理员确认后发布

例子:

  • 发布规则。
  • 发布知识库。
  • 启用 MCP。
  • 启用任务。

要求:

  • 必须管理员确认。
  • 必须有审核记录。
  • 必须有版本。

L5 禁止自动执行

例子:

  • 自动最终审批。
  • 自动付款。
  • 自动绕过风控。
  • 自动修改核心财务状态。

要求:

  • Agent 永远不能直接执行。

3. 权限判断输入

{
  "user_id": "emp_001",
  "agent": "user_agent",
  "source": "user_message",
  "action": "create_reimbursement_draft",
  "domain": "reimbursement",
  "resource": {
    "type": "reimbursement_request",
    "id": ""
  },
  "capability": "travel_reimbursement_create"
}

4. 权限判断输出

{
  "allowed": true,
  "risk_level": "L2",
  "requires_confirmation": false,
  "reason": "",
  "permission_scope": {
    "departments": ["current_user"],
    "data_masking": false
  }
}

5. 确认弹窗策略

需要确认的动作必须显示:

  • 动作名称。
  • 影响对象。
  • 关键字段。
  • 执行后果。
  • 是否可撤销。
  • 确认人。

示例:

{
  "title": "确认提交报销申请",
  "action": "submit_reimbursement",
  "summary": "将提交差旅报销单 TR-202605001金额 ¥3,280。",
  "risk_level": "L3",
  "confirm_button": "确认提交"
}

6. Hermes 权限

Hermes 使用服务账号,不使用个人账号。

建议拆分权限:

hermes:risk_scan
hermes:finance_statistics
hermes:knowledge_candidate
hermes:mcp_health_check

Hermes 默认只允许:

  • 读脱敏快照。
  • 跑规则。
  • 调只读 MCP。
  • 写报告、候选、工单。

Hermes 不允许:

  • 写正式审批状态。
  • 写正式付款状态。
  • 发布规则。
  • 发布知识。

7. User Agent 权限

User Agent 继承当前用户权限。

例如:

  • 员工只能看自己的报销。
  • 部门负责人可以看本部门。
  • 财务可以看授权范围内数据。
  • 管理员可以管理规则、任务、MCP。

User Agent 不能扩大用户权限。

8. 开发步骤

Step 1: 定义 action risk level
Step 2: 建立 Permission Engine 接口
Step 3: 所有工具调用前接入权限判断
Step 4: L3/L4 动作接入确认弹窗
Step 5: 审计记录确认内容
Step 6: 增加权限测试用例