
【免费下载链接】asqav-sdkPython and TypeScript SDKs for verifiable evidence of AI agent actions. Signed receipts, policy enforcement, audit trails. Works with LangChain, CrewAI, MCP.项目地址https://gitcode.com/gh_mirrors/as/asqav-sdk点击查看免费下载Asqav SDK是面向 AI Agent 的可验证证据层它为每一次 Agent 动作签发带签名的合规回执Compliance ReceiptML-DSA-65 后量子签名 哈希链 独立时间见证并支持策略执行与审计追踪可接入 LangChain、CrewAI、MCP 等生态。本文带你把它做成一道GitHub Actions 门禁每个 PR 自动执行治理体检asqav doctor、导出合规包并为 AI 参与的代码变更签发代码署名回执code-authorship receipt让谁改了代码、改了什么成为任何第三方可独立验证的签名事实。为什么把 AI 治理检查放进 CIAI Agent 已经能直接改代码、调 API、跑流水线。传统代码审查只能看改了什么却回答不了三个问题这次变更是谁人或哪个模型做的Agent 的行为有没有留下可验证的审计记录扫描器豁免、风险接受这类例外有没有到期作废的机制Asqav SDK 的答案是把治理检查变成 CI 的必过项。SDK 自带一个doctor子命令python/src/asqav/cli.py检查 API Key 是否配置、后端是否可达、SDK 版本是否正常任何一项失败就返回非零退出码——正好适合让 CI 直接挂掉。官方甚至把没有密钥时 doctor 报FAIL并让任务失败当成期望行为。官方完整说明见 docs/github-actions.md仓库还提供两个开箱即用的 ActionAction作用入口代码署名回执为 PR 的 diff 计算摘要并提交服务器签名产出 in-toto Statementgithub-action/风险接受回执PR 批准异常豁免时签发带过期时间的接受回执audit 模式审计豁免清单github-action-risk-acceptance/最快上手4步搭好治理门禁准备两样东西一个 Asqav API KeyASQAV_API_KEY以及下面这个最小 workflow放入.github/workflows/governance.ymlname: governance on: pull_request: push: branches: [main] jobs: governance: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: actions/setup-pythonv5 with: python-version: 3.12 - name: Install asqav run: pip install asqav - name: Validate setup env: ASQAV_API_KEY: ${{ secrets.ASQAV_API_KEY }} run: asqav doctor就这么短整个 CI 门禁就搭好了。asqav doctor会打印PASS / FAIL逐项体检结果API key、API 可达性等任一项失败即返回非零PR 直接红叉。 doctor 只读环境变量和公开 API跑在 fork PR 上也安全涉及签名的步骤建议用if: github.event.pull_request.head.repo.fork false保护。进阶把签名回执打包成合规 Bundle如果测试过程中会通过agent.sign(...)产生回执可以在 CI 里把它们追加进一个 JSONL 文件再用export_bundle打成带 Merkle 根的自包含合规包作为 workflow artifact 存档——这就是审计师最终下载的东西。Bundle 携带框架元数据、全部回执和 Merkle 根离线即可校验无需回调 Asqav。目前内置的合规框架包括eu_ai_act_art12、eu_ai_act_art14、dora_ict、soc2完整列表见 python/src/asqav/compliance.py。完整的pytest fixture 捕获回执 导出 bundle 上传 artifact工作流直接抄 docs/github-actions.md 里的模板即可。代码署名回执谁改的代码服务器说了算这是本仓库最有趣的部分。github-action/ 下的 Action 在每个 PR 上做两件事在 runner 上计算一个建议性diff 摘要sha256(git diff base..head)实现见 github-action/sign_code_authorship.py调用 Asqav 服务器服务器会自己重新拉取 commit、重新计算规范 diff并用 ML-DSA-65FIPS 204签发一份 in-toto Statement v1。关键点在于诚实的边界绑定的摘要永远是服务器重算的那个Action 本地算的只是参考值digest-match只报告两者是否一致。作者身份是生产者声明producer-asserted如human:aliceexample.com或model:claude-opus-4-8记录但不由 Asqav 验证。3行接入 PRjobs: record: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 with: fetch-depth: 0 # 必须拉全历史否则算不出 base..head diff - name: Record Asqav code-authorship receipt uses: asqav-sdk/github-actionmain with: asqav-api-key: ${{ secrets.ASQAV_API_KEY }} change-class: write author: model:claude-opus-4-8常见输入参数一览定义见 github-action/action.yml参数必填说明asqav-api-key✅需code_authorship:writescope走仓库 secretchange-class❌read/write/delete/execute/deploy默认writeauthor❌声明者身份如human:aliceexample.comanchor❌锚点引用默认取 PR URL输出则包括signature-id回执签名 ID、server-digest绑定进 Statement 的服务器摘要、intoto-statement-path落盘的 in-toto Statement 文件路径等可直接upload-artifact归档或推入透明日志。第三方如何独立验证回执不依赖信任 Action 或生产方验证四步见 github-action/README.md按commit_sha重新拉取 commit用 JCSRFC 8785规范化变更文件列表并重算 SHA-256比对结果与 Statement 中subject[0].digest.sha256用jwks_url上按kid解析的公钥验证 ML-DSA-65 签名。因为回执就是标准 in-toto Statement它可以无缝接入既有 attestation 工作流包括 Sigstore Rekor 透明日志条目和 GitHub Artifact Attestations。风险接受回执给豁免上定时炸弹扫描器报了一个漏洞团队决定先接受风险github-action-risk-acceptance/ 让这次接受变成可审计的签名事实mint 模式PR 审批通过时触发记录某扫描发现SARIF 文件只算摘要、不上云 谁批准 谁发起 理由 过期时间服务器用 ML-DSA-65 签名。SARIF 文件绝不会被上传只取 SHA-256。audit 模式定时任务对豁免清单suppression manifest逐条核验回执——缺失、验签失败或已过期都会让 CI 变红。这就形成了一个不会悄悄变成永久的闭环扫描器报警 → 例外PR加豁免审批时mint回执expires: 90d → 定时audit通过 → 90天后回执过期 → audit失败 → 移除豁免 → 扫描器再次报警 → 重新决策新回执 supersedes 旧回执过期时间支持90d、12h、30m等写法也支持supersedes字段显式指向被替代的旧回执。完整参数表见 github-action-risk-acceptance/action.yml。实战小贴士清单 固定版本治理流程稳定后把 SDK 钉住pip install asqavversion升级时批量更新提前暴露破坏性变更。先跑 doctor 再谈别的它是最便宜的配置烟雾测试密钥没配好时 PR 第一时间红而不是签名步骤中途报错。理解建议性摘要digest-match: false只是提示值不一致权威摘要始终以服务器重算为准这是设计使然而非故障。别混淆两个 hook 体系asqav/hooks.py是进程内签名回调fail-open而asqav hookCLI 是给 Claude Code 用的 harness hookMode BPreToolUse是 fail-closed 硬门禁。详解见 hooks/README.md。离线验证能力回执可用asqav verify signature_id公开核验无需 API Key也可用verify_receipt_offline零信任离线复验签名算法按回执signature.alg逐条选取。相关文档与源码索引主题路径GitHub Actions 治理门禁完整指南docs/github-actions.md代码署名 Action 说明与验证流程github-action/README.md风险接受 Action 说明github-action-risk-acceptance/README.mdasqavCLI 参考doctor/verify/signpython/docs/CLI.mdClaude Code harness hook 详解hooks/README.md合规 Bundle 导出实现python/src/asqav/compliance.py代码署名 APIpython/src/asqav/code_authorship.py把asqav doctor挂进每次 PR、给 AI 改过的代码签上署名回执、给每个豁免设定到期时间——三件事做完你的 AI 治理就从纸面制度变成了 CI 里每 10 分钟跑一次、谁都能独立复核的硬约束。赞分享【免费下载链接】asqav-sdkPython and TypeScript SDKs for verifiable evidence of AI agent actions. Signed receipts, policy enforcement, audit trails. Works with LangChain, CrewAI, MCP.项目地址https://gitcode.com/gh_mirrors/as/asqav-sdk点击查看免费下载相关推荐戴森球工厂蓝图怎么搭FactoryBluePrints 快速上手指南戴森球工厂蓝图怎么搭FactoryBluePrints 快速上手指南 凌晨一点传送带堵成一锅粥熔炉前亮着一排缺料红字你自己画的那版图纸已经改到第三稿。戴数据集Umi-OCR 离线 OCR 实战指南从截图识别到可搜索 PDF三步打通自动化Umi OCR 离线 OCR 实战指南从截图识别到可搜索 PDF三步打通自动化 Umi OCR 是一款免费、开源、完全离线的 OCR 文字识别工具。Wind桌面应用OCR计算机视觉Nuclide代码质量门禁终极指南Jenkins与GitHub Actions集成实战Nuclide代码质量门禁终极指南Jenkins与GitHub Actions集成实战 Nuclide作为基于Atom构建的开源IDE为Web和移动开发提供开发工具上一篇5分钟部署gemma-4-26B-A4B-it-singprobe在vLLM与SGLang上为LLM装上线上安全雷达下一篇oxwm多显示器实战热插拔自动适配与跨屏聚焦、移窗的5个关键键绑定创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考