mcpField
D
Datumline Agent Guard

Datumline Agent Guard

本地服务
github.com/datumlineAI 与智能体13 周前更新

关于 Datumline Agent Guard

Datumline Agent Guard 会独立核验 AI Agent 的完成声明是否与清单中的文件和 URL 相符。它适用于 Agent 工作流和 CI 门禁;缺失产物会被标记为 FALSE_DONE,而非通过验证。

主要功能

  1. 01验证文件、JSON 字段和 URL
  2. 02检查大小、内容、状态码与哈希
  3. 03区分 FALSE_DONE 与其他结论
  4. 04提供命令行和 Python 库接口
  5. 05通过 GitHub Action 控制作业流程
  6. 06提供 MCP 完成核验工具

适用场景

  1. 01拒绝缺少输出产物的 Agent 声明
  2. 02在 CI 中设置产物核验门禁
  3. 03接受已完成工作前检查清单
  4. 04通过 MCP 客户端核验产物

MCP 相关

向 MCP 客户端提供 verify_completion_claim 工具。该工具接收清单或清单路径,检查其中列出的文件和 URL,并返回核验回执。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"datumline-agent-guard": {
"command": "uvx",
"args": [
"datumline-agent-guard"
]
}
}
}
启动命令uvx datumline-agent-guard

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypidatumline-agent-guard0.2.0

工具

1

收录的工具列表 · 更新于 3 周前

参数类型必填说明
manifestobject否清单:{job, claimed_status, artifacts:[{type, path|url, ...checks}]}
manifest_pathstring否传入 '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_DONEclaimed_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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。