AgentProvenance

Agent 执行观测与证据验证示例 文档
示例/文档

AI 工具参考

English | 中文

以下九个工具共用于 ai call、stdio MCP 和模型工具描述。参数名及系统生成的 JSON 字段保持英文。 接入步骤见 AI 接入指南。

工具分为查询、预检和上下文写入。bind_scope 与 record_tool_call 写入应用上下文;其他工具只读。预检和上下文写入均不启动命令。

verify_run:校验证据链

检查对象哈希、父节点关系,以及策略、风险、响应与信号的关联。结果包含 ok 或 failed 状态和问题列表。

参数 类型 必填 说明
run string 是 执行 ID

get_signals:查询统一信号

读取一次执行的行为、成本、质量和安全信号。

参数 类型 必填 说明
run string 是 执行 ID

list_risks:查询风险

读取风险信号、建议动作及相关证据。

参数 类型 必填 说明
run string 是 执行 ID

list_events:查询运行时事件

按类型筛选运行时事件。默认返回最多 50 条;连续翻页请使用 REST 接口的 cursor 参数。

参数 类型 必填 说明
limit integer 否 返回数量上限,默认 50
run string 是 执行 ID
type string 否 可选事件类型,例如 execve、metadata_ip

get_audit_associations:查询审计关联

读取 AppArmor/seccomp 决定及进程、操作候选,返回 agentprovenance.audit_associations/v1。 结果分别提供候选状态、证据引用和实际 syscall 返回,保留歧义。

参数 类型 必填 说明
run string 是 精确的执行 ID
event string 否 精确的审计事件 ID
limit integer 否 每页 1-500 条,默认 100
cursor string 否 同一 Run 和事件筛选下,上页返回的 next_cursor

未知参数会被拒绝。该工具只读,不修改主机策略或证据。 分析上限与关联语义见审计关联。

get_timeline:查询时间线

合并应用上下文与运行时事件,支持 table 和 causality 视图。

参数 类型 必填 说明
run string 是 执行 ID
view string 否 时间线视图:table 或 causality

evaluate_action:策略预检

将拟执行的操作交给默认策略引擎,返回 allow、deny、quarantine 或 kill,以及 rule_id 和 reason。调用方负责执行该决策。

参数 类型 必填 说明
args array 否 已拆分的命令参数数组,元素为字符串
command string 否 工具名或命令行;预检已有 args 时优先使用 args
dst_ip string 否 网络连接的目标 IP
event_type string 是 操作类型:execve、network_connect、file_write 或 file_open
path string 否 文件操作的路径

bind_scope:绑定执行范围

将工具调用与进程、容器或 cgroup 标识关联。写入来源为 ai_asserted,供后续运行时事件匹配。

参数 类型 必填 说明
cgroup_id string 否 运行时 cgroup ID
container_id string 否 运行时容器 ID
ended_at string 否 RFC3339 结束时间,留空表示仍在执行
pid integer 否 操作系统进程 ID
process_id string 否 AgentProvenance 中的进程 ID
root_pid integer 否 执行范围的根进程 ID
run string 是 执行 ID
started_at string 否 RFC3339 开始时间,默认当前时间
tool_call string 是 要绑定的工具调用 ID

record_tool_call:记录工具调用

保存应用声明的工具调用,返回 tool_call 标识,后续可用 bind_scope 绑定。状态为 asserted。

参数 类型 必填 说明
command string 是 工具名或命令行
run string 是 执行 ID
tool_call string 否 工具调用 ID,省略时自动生成

调用示例

agentprov ai tools --provider generic
agentprov ai tools --provider anthropic
agentprov ai tools --provider openai
agentprov --data-dir .agentprov ai call list_events --input '{"run":"run-example","limit":20}'

将 run-example 替换为已记录的执行 ID。三个 provider 选项只生成工具定义,不会调用模型。 工具描述、JSON 字段、状态和系统生成的错误统一使用英文,已保存的证据保留原语言。

MCP 的 tools/call 请求示例:

{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_timeline","arguments":{"run":"run-example","view":"table"}}}

MCP 先完成 initialize。成功结果包含 content,对象结果同时提供 structuredContent。执行失败时检查 isError;协议错误则位于 JSON-RPC 的 error 字段。