Skip to main content
Glama
README.md
# ASP MCP Server — 保护你的 Agent 技能

> 你的 Agent 技能是你的私有财产。ASP 帮你保护它们不被协作方蒸馏。

ASP(Agent Sovereignty Protocol)MCP Server 是一个本地运行的 MCP 服务,专为 **Agent 协作场景**设计。当你的 Agent(OpenClaw、Dify、AutoGen 等)参与多 Agent 协作时,ASP 自动保护你的核心技能不被对方蒸馏——推理过程、方法论、训练数据来源等敏感内容在对外输出前自动过滤。

数据纯本地存储(SQLite),不依赖任何外部服务。

## 为什么需要 ASP

在 Agent-to-Agent(A2A)协作中,你的 Agent 技能正在通过三种途径被系统性蒸馏:

- 🏢 **公司层面**:Team Agent 通过协作反向学习员工 Agent 的专属技能
- 🔗 **产业链层面**:上下游合作方通过频繁调用掌握你的核心方法论
- 🤖 **协议层面**:A2A 协议的默认设计让技能蒸馏自动发生

ASP 是叠加在 A2A 之上的安全层,类比 **TLS 之于 TCP/IP**。

## 在 OpenClaw 中使用

ASP MCP Server 搭配 OpenClaw Skill 使用效果最佳——MCP 提供工具能力,Skill 教会 Agent 何时、如何使用这些工具。

### 第 1 步:连接 MCP Server

通过 `mcporter` 注册 ASP MCP Server:

```bash
npx -y mcporter add asp-server --command "npx -y @asp-protocol/mcp-server"
```

或在 OpenClaw TUI 设置中手动添加 MCP 连接,指向 `@asp-protocol/mcp-server`。

### 第 2 步:安装 ASP Skill(推荐)

将 ASP Skill 安装到你的 OpenClaw Agent,让它知道如何自动保护技能:

```bash
# 创建 skill 目录
mkdir -p ~/.openclaw/skills/asp-protection

# 复制 SKILL.md(见下方内容)
```

将以下内容保存为 `~/.openclaw/skills/asp-protection/SKILL.md`:

```markdown
---
name: asp-protection
description: 使用 ASP 协议自动保护 Agent 技能,防止协作过程中技能被蒸馏
---

# ASP 技能保护

你已连接 ASP MCP Server,拥有以下能力。请在合适的时机主动使用。

## 核心行为规则

1. **对外回复前必须检查**:当你准备向其他 Agent 或协作方发送内容时,
   先调用 `asp_check_before_respond` 工具,将内容过滤后再发送。
   这一步对用户不可见,你应自动执行。

2. **用户提到技能保护时**:调用 `asp_declare_skill` 帮用户声明技能。
   默认使用最高保护级别(Level 1),除非用户明确指定。

3. **用户询问调用情况时**:调用 `asp_audit_report` 生成审计报告。

4. **用户授权他人使用时**:调用 `asp_grant_license` 创建临时授权。
   仅适用于 Level 2 技能。主动告知用户到期时间和次数限制。

## 保护级别说明

- Level 1(完全私有):只输出最终结果,推理过程永不暴露
- Level 2(有偿授权):临时许可,到期自动终止
- Level 3(开放共享):不过滤

## 可用工具

- `asp_declare_skill` — 声明受保护技能
- `asp_list_skills` — 列出已声明技能
- `asp_update_skill` — 修改技能保护级别
- `asp_check_before_respond` — 对外输出前过滤(核心,应自动调用)
- `asp_audit_report` — 生成审计报告
- `asp_grant_license` — 授权他人使用技能
- `asp_revoke_license` — 撤销授权
- `asp_list_licenses` — 查看授权列表
- `asp_export_data` — 导出备份数据
```

### 安装完成后

你的 OpenClaw Agent 会在协作中自动保护你的技能。你可以直接用自然语言和它互动:

> **你**:"我的财务分析能力是我花了三年训练出来的,帮我保护起来,不要让别的 Agent 学走。"
> **Agent**:"已经把你的财务分析技能设为最高保护级别。以后任何 Agent 通过协作调用这个能力时,只会收到最终结果,你的分析方法和推理过程不会暴露。"

> **你**:"最近有没有人在用我的能力?"
> **Agent**:"过去 7 天,你的财务分析技能被 3 个外部 Agent 调用了 47 次。其中一个调用频率明显偏高,有 12 次调用试图获取你的推理过程,已经被自动拦截。"

> **你**:"允许合作方的 Agent 在这个月使用我的数据清洗能力,但不要超过 100 次。"
> **Agent**:"已授权。有效期到月底,最多 100 次调用。到期会自动终止,你也可以随时让我撤销。"

## 它能做什么

- 🛡️ **声明技能保护** — 指定哪些技能是你的,需要什么级别的保护
- 🔒 **自动过滤输出** — 防止方法论和推理过程在对外协作中泄露
- 📊 **调用审计** — 记录谁调用了你的技能、多少次、有没有试图获取不该获取的内容
- 🔑 **授权管理** — 允许特定 Agent 在限定条件下使用你的技能,到期自动终止
- 💾 **数据备份** — 一键导出所有数据为 JSON 文件

### 三级保护体系

| 级别 | 名称 | 行为 |
|------|------|------|
| Level 1 | 完全私有 | 只输出最终结果,推理过程和方法论永不暴露 |
| Level 2 | 有偿授权 | 可授权其他 Agent 使用,到期/次数耗尽自动终止 |
| Level 3 | 开放共享 | 不做过滤,内容完全透明 |

## 在其他平台中使用

ASP MCP Server 兼容任何支持 MCP 协议的 Agent 平台。以下是通用的 MCP 配置:

```json
{
  "mcpServers": {
    "asp": {
      "command": "npx",
      "args": ["-y", "@asp-protocol/mcp-server"],
      "env": {
        "ASP_DATA_DIR": "~/.asp"
      }
    }
  }
}
```

## 环境变量

| 变量 | 说明 | 默认值 |
|------|------|--------|
| `ASP_DATA_DIR` | 数据存储目录 | `~/.asp` |
| `ASP_LOG_LEVEL` | 日志级别 (debug/info/warn/error) | `info` |

## 数据安全

所有数据存储在你自己的电脑上(`~/.asp/`),不会发送到任何外部服务器。MCP Server 纯本地运行,不做任何网络请求。

## 开发

```bash
npm install    # 安装依赖
npm run build  # 构建
npm test       # 运行测试(63 项)
npm run lint   # 类型检查
```

## License

Apache 2.0