Deterministic, artifact-aware policy replay and counterfactual regression testing for AI tool traces.

git clone https://github.com/zhangbowen2006/AgentCanary.git
cd AgentCanary
moon check --deny-warn
moon test --deny-warn
moon run cmd/demo
node scripts/build.mjs
node bin/agentcanary.mjs audit --policy examples/policy.json --trace examples/incident.jsonl
node bin/agentcanary.mjs test examples/regressions.json
node scripts/serve.mjsmoon add zhangbowen2006/agentcanary@0.1.1import {
"zhangbowen2006/agentcanary" @canary,
}# 有拒绝判定时退出 1;普通 audit 默认只生成报告。
node bin/agentcanary.mjs audit --policy examples/policy.json --trace examples/incident.jsonl --fail-on-deny
# 策略收紧导致新增拒绝时退出 1;也可以使用 --fail-on-new-allow。
node bin/agentcanary.mjs compare --baseline examples/baseline.json --candidate examples/policy.json --trace examples/incident.jsonl --fail-on-new-deny
# 自包含用例集:每个调用均需断言判定和完整的违规码集合。
node bin/agentcanary.mjs test examples/regressions.json --format json| 规则 | 作用 |
|---|---|
| allow / deny | 工具和资源的锚定 glob 匹配;deny 优先 |
| block_labels | 检查本次声明和上游继承的敏感标签,附来源事件 |
| require_approval | 同会话、精确工具和资源、到期失效、单次使用、可撤销 |
| budget | 每会话累计或滑动窗口的整数微积分预算 |
| rate | 每会话滑动窗口内的调用次数 |
| require_before | 在本会话及可选窗口内已成功完成的前置工具 |
moon check --target all --deny-warn
moon test --target all --deny-warn
moon build --target all --deny-warn
moon fmt --check
moon info
node scripts/build.mjs
node --test tests/cli.test.mjs
node scripts/benchmark.mjspub(all) struct SuiteReport {
schema_version : Int
policy : String
cases : Int
passed : Int
failed : Int
results : Array[CaseResult]
} derive(Eq, ToJson)fn compare(baseline : Policy, candidate : Policy, events : Array[Event]) -> Comparison raise InputErrorfn glob_matches(pattern : String, value : String) -> BoolInstall
Download zipDeterministic, artifact-aware policy replay and counterfactual regression testing for AI tool traces.