关于 Actionproof
Actionproof 为 AI Agent 的操作生成加密签名凭证,可离线验证且无需后端。它面向需要可移植、防篡改证据来记录 Agent 操作及其身份的构建者和审计人员。
主要功能
- 01Ed25519 签名的操作凭证
- 02离线验证凭证
- 03使用 `did:key` 标识 Agent
- 04对敏感输入和输出进行哈希
- 05TypeScript 与 Python 互操作
- 06通过封装器自动生成凭证
适用场景
- 01记录发送邮件或付款的凭证
- 02离线验证 Agent 操作凭证
- 03为审计保留防篡改记录
- 04为框架工具调用自动生成凭证
MCP 相关
MCP 服务提供 `attest_action`、`verify_receipt` 和 `get_identity` 工具。它在首次运行时创建稳定的 Ed25519 身份,并通过标准输入输出通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ActionProof
为 AI Agent 提供防篡改的审计轨迹。 可验证的可观测性:Agent 执行的每项操作都会生成一份由密码学签名的收据,你可以随时随地离线验证 — 无需后端。
可观测性工具(LangSmith、Langfuse、Arize)展示的是 Agent 声称执行过的操作 — 记录在它们平台上的跟踪数据,由平台说了算。但这些日志是自行声明的:Agent、错误或攻击者都可以随意写入内容,而事后你无法证明记录未被篡改。
ActionProof 补上了缺失的一环:可验证的可观测性。每项操作 — 发送邮件、提交表单、付款 — 都会生成一份防篡改、由 Ed25519 签名的收据,记录做了什么、由哪个 Agent 执行、何时执行以及依据谁的授权执行。修改任何字段都会导致验证失败。这是一条审计轨迹,你(或审计员、用户、交易对手)无需信任 Agent、供应商或我们,就可以信赖它。
为即将到来的合规要求而构建 — 《欧盟 AI 法案》(第 12 条)和 ISO 42001 要求为自动化决策提供可追溯、防篡改的日志。ActionProof 以可移植的基础组件形式提供这样的日志,而非封闭平台。
安装
npm install actionproof # TypeScript / JavaScript
pip install actionproof # Python
收据可跨语言兼容:在 TypeScript 中签名的收据可以在 Python 中验证,反之亦然。
快速入门(TypeScript)
import { attest, verify, generateKeypair } from "actionproof";
const agent = generateKeypair(); // agent's identity = its key (did:key)
const receipt = attest(agent, {
type: "email.send",
summary: "Sent renewal quote to [email protected]",
params: { to: "[email protected]", amount: 4200 }, // hashed, not stored in clear
result: { smtp: 250 },
outcome: "ok",
});
verify(receipt); // -> { valid: true, agent: "did:key:z6Mk..." }
快速入门(Python)
from actionproof import attest, verify, generate_keypair
agent = generate_keypair()
receipt = attest(
agent,
type="email.send",
summary="Sent renewal quote to [email protected]",
params={"to": "[email protected]", "amount": 4200}, # hashed, not stored in clear
result={"smtp": 250},
outcome="ok",
)
verify(receipt) # -> VerifyResult(valid=True, agent="did:key:z6Mk...")
修改该收据的任何字段,verify 都会返回无效。这就是它的核心理念。
适用场景:Agent 可观测性的可验证层
ActionProof 是对可观测性技术栈的补充,而非替代。继续使用 LangSmith / Langfuse / Arize 获取丰富的跟踪数据、延迟和成本信息 — 然后为重要操作(那些会转移资金、改变状态或触及用户数据的操作)附加 ActionProof 收据,使这部分审计轨迹具备防篡改和可独立验证的特性。
| 可观测性平台 | ActionProof | |
|---|---|---|
| 记录内容 | 供应商内部的跟踪数据/日志 | 由你持有的签名收据 |
| 信任模型 | 信任平台存储的记录 | 通过密码学验证,无需信任任何人 |
| 防篡改性 | 可由任何有数据库访问权限的人编辑 | 任何编辑都会使签名失效 |
| 可移植性 | 存在于供应商平台中 | 可离线、跨语言、随处使用 |
| 大规模使用成本 | 按事件计费 | ~$0(本地签名,无需后端) |
这是一份证明,而不只是一条日志 — 区别在于“我们的仪表板显示 Agent 做了这件事”和“这是任何人都可以验证的签名收据”。
设计原则
- 离线且无需后端。 Agent 使用自己的 Ed25519 密钥。签名和验证仅使用原生密码学 — 无需服务器、账户或网络。(这也是它在任何规模下运行成本都几乎为零的原因。)
- 保护隐私。 敏感输入/输出以 SHA-256 哈希形式存储;之后你可以证明某个值匹配,而无需将其放入收据。
- 可组合,而非竞争。 ActionProof 是收据封套。将更强的证据绑定到
result_hash中 — 例如 x402 结算、AP2 授权引用或经 DKIM 签名的 SMTP250— 让收据的可信度与交易对手证据相匹配。 - 无需注册表的身份。 Agent 身份是
did:key(自描述公钥)。你信任谁取决于你的策略(固定密钥、允许列表,或下方的可选日志)。
有关线缆格式,请参阅 SPEC.md。
将其用作 MCP 服务(无需编写代码)
让 Agent 获得收据的最快方式:将 ActionProof 作为 MCP 服务运行,并将其添加到 Claude Desktop / Cursor。你的 Agent 将获得三个工具 — attest_action、verify_receipt、get_identity — 并可在执行操作后立即生成收据。
将以下内容添加到 MCP 客户端配置中(例如 Claude Desktop 的 claude_desktop_config.json):
{
"mcpServers": {
"actionproof": {
"command": "npx",
"args": ["-y", "actionproof-mcp"]
}
}
}
服务会在首次运行时生成一个稳定的 Ed25519 身份(存储在 ~/.actionproof/agent.key.pem,可通过 ACTIONPROOF_KEY_PATH 覆盖)。它签署的每份收据都可归属于该 Agent 的 did:key。
自动生成回执(框架包装器)
你不必在每次操作后都手动调用 attest——只需包装一次工具,每次调用都会生成回执。
TypeScript(与框架无关;适用于 LangChain.js、Mastra、Vercel AI SDK):
import { withReceipts, generateKeypair } from "actionproof";
const agent = generateKeypair();
const send = withReceipts(agent, rawSendEmail, {
type: "email.send",
onReceipt: (r) => store(r), // called with a signed receipt on every call
});
Python(@attest_action 装饰器,或 LangChain/CrewAI 回调):
from actionproof import attest_action, ActionProofCallbackHandler
@attest_action(agent, type="email.send", on_receipt=store)
def send_email(to, body): ...
# or attest every tool a framework agent runs, no per-tool code:
handler = ActionProofCallbackHandler(agent, on_receipt=store)
agent_executor.invoke(input, config={"callbacks": [handler]})
本地开发
git clone https://github.com/Burakfenerci5/actionproof
cd actionproof && npm install
npm run demo # full sign → verify → tamper loop
npm test # TS suite (9 tests)
npm run mcp # start the MCP server over stdio
cd python && pip install -e ".[dev]" && pytest # Python suite (7 tests, incl. TS↔Python interop)
路线图
- 当前(已发布): TypeScript 库 + MCP 服务 + 框架包装器,以及带有装饰器和 LangChain/CrewAI 回调的 Python 包。两者的回执可互通。
- 下一步: 提供一流的 LlamaIndex / CrewAI 插件;导出器可将回执附加到现有可观测性技术栈(OpenTelemetry、LangSmith、Langfuse)的 span 中。
- 之后(可选,托管): 可验证的审计仪表板——可搜索、可分享、防篡改的时间线,记录你的 Agent 集群执行过的操作;由仅追加日志提供支持,面向需要合规级证据(EU AI Act / ISO 42001)、但不想自行构建解决方案的团队。**该库和 MCP 服务将永远免费且可离线使用;**只有托管仪表板是付费服务。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。