paper2skills Playbook

Progent — 最小权限 Agent 框架:SMT 验证 + 单调约束性

Skill-Progent-Privilege-Control · 16-智能体工程

causalexperimentoptimizationmulti_agent广告与投放供应链与补货MAS与智能体工程风控与合规WF-A 智能补货WF-B 广告优化
年化 ROI30-80 万元
实现难度⭐⭐⭐☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色CTO / 技术负责人 · 产品经理 · 数据工程师
适用平台跨境运营 AI Agent 工程落地 · Amazon SP API + LLM 集成 · 多平台数据采集 Agent
什么情况下用想把 AI 集成到业务系统,但 LLM 稳定性差、幻觉问题、成本控制都是挑战;Agent 任务失败了不知道哪步出了问题
成功是什么样的AI Agent 在生产环境稳定运行,失败可追踪,成本可控,复杂任务完成率 >85%
业务痛点
LLM 返回结果不稳定不可靠AI 幻觉导致业务决策错误Agent 任务失败了不知道哪步出问题AI 调用成本控制不住

1. 解决的问题

最小权限原则在 Agent 中的实现:传统应用最小权限通过 OS/IAM 静态配置实现,但 LLM Agent 的工具调用集合在运行时动态变化,需要动态感知策略。Progent 用符号规则表示权限策略:`{tool: "purchase_order.create", constraints: {"amount": {"max": 1000}}}`,支持在任务执行中实时评估。

2. 核心算法逻辑

最小权限原则在 Agent 中的实现:传统应用最小权限通过 OS/IAM 静态配置实现,但 LLM Agent 的工具调用集合在运行时动态变化,需要动态感知策略。Progent 用符号规则表示权限策略:{tool: "purchase_order.create", constraints: {"amount": {"max": 1000}}},支持在任务执行中实时评估。

3. 业务应用场景

场景一:WF-A 采购 Agent 权限管控

采购 Agent 初始化时自动生成策略: - `inventory.query`(无约束) - `purchase_order.create`(`amount ≤ 1000 USD`)

执行中,Agent 分析发现某 SKU 缺货严重,需下 5000 USD 大额 PO: 1. Agent 请求扩展策略:`purchase_order.create` 的 `amount ≤ 5000` 2. SMT 检测:5000 > 1000,属于策略扩张 → 触发人工审批 3. 采购经理在 Slack 收到通知,确认后 SMT 更新策略 4. 整个流程留有完整审计链

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 核心收益:广告预算误操作风险归零,大额 PO 强制人工确认,年化风险规避 30-80 万元
  • Prompt Injection 防护:符号验证层无法被 LLM 层的注入攻击绕过,零误操作保证
  • 实施难度:⭐⭐⭐☆☆(需集成 SMT 求解器如 Z3,约 2-3 天)
  • 优先级:⭐⭐⭐⭐⭐(P0 生产阻塞
  • 参考:arXiv:2504.11703 | Progent Framework

7. 代码模板

代码块数量:1 · 路径:未检测到

# paper2skills-code/llm_agent_engineering/progent_privilege/model.py
# 完整实现见代码目录
from paper2skills_code.llm_agent_engineering.progent_privilege.model import (
    PrivilegePolicy, ArgumentConstraint, SMTChecker, ProgentFramework, MonotonicConfinementGuard
)

# WF-A 采购 Agent 初始策略
policy = PrivilegePolicy(
    allowed_tools=["inventory.query", "purchase_order.create"],
    argument_constraints={"purchase_order.create": ArgumentConstraint(max_amount=1000.0)},
)
guard = MonotonicConfinementGuard(initial_policy=policy)
framework = ProgentFramework(guard)

# 尝试扩权(下大额 PO)
result = framework.request_policy_update(
    new_tools=["inventory.query", "purchase_order.create"],
    new_constraints={"purchase_order.create": ArgumentConstraint(max_amount=5000.0)},
    reason="大额补货需要",
)
print(result.action, result.requires_approval)  # PENDING True

8. 论文来源

  • 2504.11703