关于 Datumline Agent Guard
Datumline Agent Guard 会独立核验 AI Agent 的完成声明是否与清单中的文件和 URL 相符。它适用于 Agent 工作流和 CI 门禁;缺失产物会被标记为 FALSE_DONE,而非通过验证。
主要功能
- 01验证文件、JSON 字段和 URL
- 02检查大小、内容、状态码与哈希
- 03区分 FALSE_DONE 与其他结论
- 04提供命令行和 Python 库接口
- 05通过 GitHub Action 控制作业流程
- 06提供 MCP 完成核验工具
适用场景
- 01拒绝缺少输出产物的 Agent 声明
- 02在 CI 中设置产物核验门禁
- 03接受已完成工作前检查清单
- 04通过 MCP 客户端核验产物
MCP 相关
向 MCP 客户端提供 verify_completion_claim 工具。该工具接收清单或清单路径,检查其中列出的文件和 URL,并返回核验回执。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| manifest | object | 否 | 清单:{job, claimed_status, artifacts:[{type, path|url, ...checks}]} |
| manifest_path | string | 否 | 传入 'manifest' 的替代方式:清单 JSON 文件的路径。 |
详细介绍
datumline-agent-guard
AI Agent 工作的独立验证器。Agent 声称任务已 COMPLETED;agent-guard 会检查它声称已生成的产物,并返回判定结果。若声称已完成却缺少产物,结果会报告为 FALSE_DONE,而不是通过。
仅使用标准库,无依赖项。它不会导入所审计运行时中的任何内容,因此可以对该运行时给出相反判定。
安装
pip install datumline-agent-guard
命令行界面
agent-guard manifest.json # human-readable receipt
agent-guard manifest.json --json # machine-readable receipt
只有判定为 VERIFIED 时,退出代码才为 0;其他所有判定的退出代码均为 1(输入无效时为 2),因此可用于拦截 CI 或 Agent 循环。
清单
{
"job": "WO-123",
"claimed_status": "COMPLETED",
"artifacts": [
{"type": "file", "path": "out/report.md", "min_bytes": 200, "must_contain": ["## Findings"]},
{"type": "json", "path": "out/feed.json", "required_keys": ["last_marked", "entries"]},
{"type": "url", "url": "https://example.com/feed.json", "status": 200, "must_contain": ["last_marked"]},
{"type": "file", "path": "out/data.parquet", "sha256": "<hex>"}
]
}
相对路径以当前工作目录为基准解析。
判定结果
| 判定结果 | 含义 |
|---|---|
VERIFIED | 每项产物均存在,且通过了所有检查 |
FAILED | 产物存在但未通过检查,或未声称完成却缺少产物 |
FALSE_DONE | claimed_status 为 COMPLETED / COMPLETE / DONE / VERIFIED,且至少缺少一项产物 |
UNVERIFIABLE | 清单未声明任何产物;默认失败,绝不返回通过 |
库
from datumline_agent_guard import verify, verify_file
receipt = verify({"claimed_status": "COMPLETED", "artifacts": [{"type": "file", "path": "out/report.md"}]})
if receipt["verdict"] != "VERIFIED":
raise SystemExit(receipt["verdict"])
GitHub Action
当 Agent 声称“完成”却未通过验证时,让工作流失败:
- uses: datumline/[email protected]
with:
manifest: agent-output/manifest.json # what the agent claims it produced
# fail-on: false-done # only fail on FALSE_DONE (default: anything but VERIFIED)
该步骤会从 Action 自身的源代码安装此软件包(不从网络获取),将回执写入作业摘要,设置 verdict 和 receipt 输出,并且除非判定结果为 VERIFIED,否则以非零状态码退出。Runner 需要安装 python3 3.9+;GitHub 托管的 Runner 已满足此条件。
MCP 服务
将同一验证器作为 MCP 工具 verify_completion_claim 提供给 Claude、ChatGPT、Copilot、Cursor 或任何 MCP 客户端使用。仅使用标准库,采用 stdio 传输。
{
"mcpServers": {
"agent-guard": { "command": "uvx", "args": ["datumline-agent-guard"] }
}
}
或者运行 pip install datumline-agent-guard,然后执行 datumline-agent-guard(别名为 agent-guard-mcp)。该工具接受 manifest(对象)或 manifest_path(字符串),并返回回执;凡是 "verdict": "VERIFIED" 以外的结果都表示任务尚未完成。它会读取清单中指定的文件并获取其中列出的 URL,不会向其他任何地方发送数据。
LangChain
pip install "datumline-agent-guard[langchain]"
from datumline_agent_guard.langchain_tool import AgentGuardTool
tool = AgentGuardTool() # name: agent_guard_verify
tool.invoke({"manifest": {"claimed_status": "COMPLETED", "artifacts": [{"type": "file", "path": "out/report.md"}]}})
# -> JSON receipt; anything other than "verdict": "VERIFIED" means not done
可将其作为工具交给 Agent 使用,或在接受 Agent 声称“完成”之前自行调用。它也接受 manifest_path,而非 manifest。它通过了 LangChain 的标准工具测试(langchain-tests)。需要 Python 3.10+;核心软件包只需要 Python 3.9,且没有依赖项。
相关项目
同一验证器也内置于免费、采用 MIT 许可证的 Receipted Operator Claude Code 插件中,该插件还提供回执账本、如实的状态,以及一个拒绝无回执“完成”声明的钩子。Datumline 还在 datumlinehq.gumroad.com 发布付费方法工具包。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。