5 个文件从条款到可测试的策略
每条策略都标注它实现的条款,或用户确认过的回答。模型文档包含 Mermaid 角色继承图和每条策略的理由。
- 可直接导入文件存储的
.spdl,并通过spctl check。 - 按部门、地点、数据级别和金额设置 ABAC 条件。
- 覆盖允许、拒绝和审批边界的可执行用例。
Speedle AI · 两个方向,一套策略
用 AI 设计、管理和检查访问策略,也让同一套策略约束 AI 自身,覆盖 MCP 授权、RAG 权限控制和智能体最小权限。两个方向都离不开清晰、可执行的策略决策。
基于开源 Speedle 策略引擎构建。
用 AI 管权限
AI 帮人管理访问:开源技能把制度文档变成 SPDL;Speedle MCP 用于设计、管理和检查策略(预览);AI 风险检测方案已列入计划。
Speedle 策略建模技能 · 开源 Agent Skill可用
这个 Agent Skill 适用于所有兼容 Agent Skills 格式的 Agent。它读取员工手册或制度文件,先问清文档没有写明的部分,再生成 RBAC + ABAC 策略,不会凭空猜规则。
5 个文件每条策略都标注它实现的条款,或用户确认过的回答。模型文档包含 Mermaid 角色继承图和每条策略的理由。
.spdl,并通过 spctl check。中英双语两个示例都从虚构的员工手册出发,最后得到经过测试的模型。各自通过 spctl check,并在本地 PMS 和 ADS 上通过全部 37 条授权用例。
entity 建模薪资服务账号。技能包遵循 Agent Skills 格式:SKILL.md 包含 name 和 description frontmatter,另有参考文档、脚本和示例,可供任何兼容该格式的 Agent 使用。通用安装方式:把技能文件夹复制到 Agent 的技能目录,再让它读取员工手册并建模。下面分别以 Claude Code 和 Codex 为例。
spctl — 用 spctl check -f policies.spdl 校验生成的 SPDL。speedle-pms 和 speedle-ads — 在本地 Speedle 上运行端到端授权用例。scripts/run-cases.py 中的测试用例。claude plugin marketplace add teramoby/ai.speedle.io
claude plugin install speedle@speedle
# 在 Claude Code 中:
/plugin configure speedle@speedle
/speedle:speedle-policy-modeler ./employee-handbook.md
git clone --depth 1 https://github.com/teramoby/ai.speedle.io.git
mkdir -p ~/.agents/skills
cp -R ai.speedle.io/skills/speedle-policy-modeler \
~/.agents/skills/
# 在 Codex CLI 或 IDE 扩展中:
$speedle-policy-modeler ./employee-handbook.md
Speedle MCP预览
@speedle/mcp 已在 npm 发布。它是一个 npm 包,附带 speedle-mcp 命令,用于在本地以 stdio 方式运行 MCP 服务器。
checkcheck 模式默认只注册 is_allowed,只读取 ADS 配置。diagnose、all_granted_roles 和 all_granted_permissions 需要分别用 --expose-diagnose、--expose-all-granted-roles 和 --expose-all-granted-permissions 参数显式开启。diagnose 只支持自托管 Speedle,连接 Speedle Cloud 时带上它服务不会启动。它只回答授权问题,不会在调用应用中执行访问控制。
managemanage 模式只注册管理工具,只读取 PMS 配置,通过 PMS REST API 设计和管理 Speedle 策略。
需要 Node.js 22 或更高版本。这些示例与已发布的包 README 一致。上面的 Claude Code 插件固定使用 @speedle/mcp@0.2.1 版本。
npm install @speedle/mcp
npx @speedle/mcp check
npx @speedle/mcp manage
{
"mcpServers": {
"speedle-check": {
"command": "npx",
"args": ["-y", "@speedle/mcp", "check"],
"env": {
"SPEEDLE_ENDPOINT": "http://127.0.0.1:6734",
"SPEEDLE_SERVICE_NAME": "books"
}
}
}
}
{
"mcpServers": {
"speedle-check": {
"command": "npx",
"args": [
"-y",
"@speedle/mcp",
"check",
"--expose-diagnose",
"--expose-all-granted-roles",
"--expose-all-granted-permissions"
],
"env": {
"SPEEDLE_ENDPOINT": "http://127.0.0.1:6734",
"SPEEDLE_SERVICE_NAME": "books"
}
}
}
}
{
"mcpServers": {
"speedle-manage": {
"command": "npx",
"args": ["-y", "@speedle/mcp", "manage"],
"env": {
"SPEEDLE_PMS_ENDPOINT": "http://127.0.0.1:6733"
}
}
}
}
AI 能从更多维度和关系中发现单条规则看不到的风险。这是 Speedle 正在探索和构建的方向,尚未发布。策略保留否决权:风险信号可以加强审查或防护,但绝不能把拒绝改成允许。
查看目标流程用策略约束 AI
从模型上线前的构建阶段,到模型服务与执行操作的运行阶段,Speedle 策略引擎都能管理 AI 系统对数据、模型、工具和其他智能体的访问。这里介绍的是解决方案模式,不是任何机器学习或智能体平台的已发布集成。
概念
每个区域都在应用里设有策略执行点:操作前先问 Speedle,再按结果放行或拒绝。
解决方案模式
每个区域一句话、一条代表性规则。完整 SPDL 示例和每次检查需要的属性,都在模式页面。
构建 · 01 数据与训练
训练任务读取数据集并写入检查点;同意状态和区域逐数据集检查,受限数据不会进入训练。
grant role training-pipeline read expr:^/datasets/ if consent == true && data_region == job_region
构建 · 02 模型发布
模型注册、审批、晋升和回滚是分开的操作,训练模型的人不能审批同一个模型。
deny role release-manager approve expr:^/models/ if trained_by == request_user
运行 · 03 推理与 RAG
检索器在文档内容进入提示词前逐篇请求授权,模型只看到用户有权阅读的内容。
grant role tenant-user retrieve expr:^/collections/ if doc_tenant == user_tenant && doc_label in user_clearances
运行 · 04 智能体代用户操作
先检查智能体是否在委托令牌的范围内,再检查委托用户此刻本人的权限。
grant entity triage-agent in-time if request_time < token_expires
运行 · 05 工具调用(MCP)
每次工具调用都在执行前检查,参数作为属性,交给策略限制。
grant role billing-agent call /tools/issue-refund if amount <= 100 && customer_verified == true
运行 · 06 智能体间调用(A2A)
委托链每一跳都要检查,接收方只能拿到调用方已有的权限范围。
grant role planner-agent call /agents/researcher if IsSubSet(requested_scopes, caller_scopes) && hops <= 2
运行 · 07 零常驻权限 · 自托管
签发和管控到位时,即时签发、短期有效的令牌可以支撑零常驻权限模式。在 Speedle 里,你可以把零常驻权限策略写成 SPDL 策略,并在每次请求时强制执行:权限只在你设定的时间窗口和条件内存在。
grant role agent-runtime invoke /api/orders if expires_at > issued_at && expires_at - issued_at <= 600 && issued_at <= request_time + 60 && not_before <= request_time + 60 && request_time < expires_at && TokenUnused(token_id)
贯穿全流程
身份、审计、风险映射和能力边界贯穿构建和运行的每个区域。
身份集成
Speedle 是授权决策点,用户和智能体则由你的 IdP 或 OAuth 授权服务器认证,MCP 授权基于 OAuth。应用先把验证过的身份映射为主体(用户、用户组、实体),再向 Speedle 请求决策。
审计与可解释性
Speedle 的诊断 API 返回决策、原因、生效角色和检查过的策略,说清匹配了哪条策略、为什么。应用记录每项决策、相关智能体和发起委托的用户。诊断接口会暴露策略和请求详情,只向可信运维人员开放。
风险映射
OWASP 2025 年大模型应用十大风险提到的过度代理,是指智能体的功能、权限或自主性超出任务需要。按智能体划分角色、按工具检查、让委托绑定任务和时限,再对高风险操作做人工审批,可以分别收敛这三类风险。
边界
Speedle 不检测提示词注入,不过滤模型输入或输出,也不验证模型和数据集供应链,这些需要专门的控制措施。它能限制遭攻陷或受误导的智能体做什么:无论提示词怎么写,只要请求不符合策略,Speedle 就拒绝。
Speedle 生态
开源授权引擎与易读的 SPDL 策略语言。
托管服务Speedle Cloud即将上线基于 Speedle 策略引擎,为开发者提供托管授权服务。
集成Speedle SDKPython、Go、Java、C#、Rust 和 Node.js 的决策 API 客户端。
from speedle import Auth, Client
with Client(backend="speedle", endpoint="http://localhost:6734",
auth=Auth.none(), service_name="docs") as speedle:
allowed = speedle.is_allowed("alice", "get", "/docs/public")
# docs 服务授予 alice get /docs/public 后为 True
一个简短示例;SDK 文档介绍各语言的客户端、请求模型和错误处理。Node.js 客户端已在 npm 发布:npm install @speedle/sdk。
开源 · 共同探索
一起完善后续示例:说说你的应用需要保护哪些数据集、模型、工具或智能体工作流。
Speedle 源自 Oracle Speedle,由原开发者继续维护,并采用 Universal Permissive License(UPL)1.0 授权。了解项目历程。