Semia — AI Agent 技能安全审计工具

在不执行技能的前提下,扫描并审计 AI Agent 技能文件中的命令、网络调用和敏感读取,让你在信任它之前看清它究竟能做什么。

Star 数
★ 615
最近更新
5 个月前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
命令行工具Agent 插件 / 技能
可在哪里用
通用 · 跨平台Codex · Claude Code · OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Python 3.11+LLM 提供商 API 密钥(OpenAI、Anthropic,或本地 Claude Code / Codex CLI)Shell / 命令行网络访问本地文件系统
典型场景
安全团队在引入第三方 Claude Code 技能前,先静态扫描其隐含的 shell 命令、网络调用和秘密读取,作为准入评审依据。
不适合
  • 需要审计非 Markdown 技能文件或源代码的团队
  • 需要成熟社区与丰富检测规则库的企业用户

这个 Agent 能做什么,适合哪些场景?

Semia 是一个针对 AI Agent 技能文件(如 SKILL.md)的安全审计工具。它把技能当作纯数据处理,绝不执行,通过 prepare → synthesize → detect → report 四个阶段,产出每一条都锚定到具体源码行的证据型报告。其流水线中 synthesize 依赖 LLM(支持 OpenAI、Anthropic、DeepSeek/OpenRouter/vLLM 兼容端点,或本地 Claude Code / Codex CLI 登录),其余阶段完全确定性、无需 API key。若通过 Codex、Claude Code 或 OpenClaw 插件运行,宿主 Agent 自身即可充当 synthesize 步骤,无需额外密钥。报告默认输出 report.md,可按需导出 SARIF 2.1.0(适配 GitHub Code Scanning)或结构化 JSON。项目还提供 semia repair 命令,基于 Datalog 规则追溯违规根因并让 LLM 生成 SKILL.md 补丁。底层技术已在 arXiv 论文(2605.00314)中描述,代码以 Apache-2.0 许可发布。

semia scan ./some-skill 一条命令完成:prepare(规范化技能文本并生成稳定行锚点)→ synthesize(调用配置的 LLM 提供商提取行为事实)→ detect(Datalog 规则评估得出 findings)→ report(按严重性排序写入 .semia/runs/<skill-slug>/report.md)。semia report 可将结果转为 SARIF 或 JSON。semia repair 读取既有扫描结果,追溯每个违规在 Datalog 规则中的根因,再让 LLM 生成修复后的 patched/SKILL.md。作为插件安装到 Codex / Claude Code / OpenClaw 后,可直接对宿主 Agent 说“Run Semia audit on ./some-skill”,宿主 Agent 充当 synthesize 阶段,捆绑的 semia.pyz 负责确定性的 prepare/detect/report。

  1. 安全团队在引入第三方 Claude Code 技能前,先静态扫描其隐含的 shell 命令、网络调用和秘密读取,作为准入评审依据。
  2. CI 平台工程师在技能 PR 中接入 SARIF 输出,让 GitHub Code Scanning 直接在 PR 上标注审计结果。
  3. 个人开发者在安装社区技能前,用 semia scan 快速判断该技能是否会读取凭据或发起意外网络请求。
  4. 插件用户(Codex / Claude Code / OpenClaw)在对话中直接让宿主 Agent 对某技能执行审计,无需自行配置 API key。
  5. 技能作者在发布前用 semia repair 自动生成 SKILL.md 安全补丁,或为违规内容添加明确的安全约束。

如何安装或部署这个 Agent?

CLI 方式:pip install semia-audit(需 Python 3.11+)。作为宿主插件安装:Codex — codex plugin marketplace add berabuddies/Semia,并在 ~/.codex/config.toml 中启用 [plugins."semia@semia"] enabled = true;Claude Code — claude plugin marketplace add berabuddies/Semia && claude plugin install semia@semia;OpenClaw — openclaw plugins install clawhub:semia。若用 CLI scan 而非插件,需先配置 LLM 提供商凭证,例如 export OPENAI_API_KEY=sk-... 或 export SEMIA_LLM_PROVIDER=anthropic && export ANTHROPIC_API_KEY=sk-ant-...。

如何使用这个 Agent?

CLI:semia scan ./some-skill 进行完整审计,结果落在 .semia/runs/<skill-slug>/;semia report .semia/runs/some-skill --format sarif 或 --format 导出机器可读报告;semia repair .semia/runs/some-skill --from-skill 或 semia repair ./some-skill(一步完成扫描+修复)。模型可用 --model <name> 或 SEMIA_LLM_MODEL 覆盖。插件方式:在宿主 Agent 对话中直接要求“Run Semia audit on ./some-skill”,无需 API key。

这个 Agent 有哪些优点和局限?

优点
  • 每个 finding 都锚定到具体源码行,报告可验证、可溯源,而非模糊的信任声明。
  • 仅 synthesize 阶段需要 LLM,prepare/detect/report 完全确定性,可在离线或无需 key 的插件模式下运行。
  • 同时适配三种宿主 Agent(Codex、Claude Code、OpenClaw)和 CLI 两种形态,SARIF 输出直接对接 GitHub Code Scanning。
  • semia repair 提供“发现问题→自动生成修复补丁”的闭环,不只是检测。
局限
  • scan 模式下必须配置至少一个 LLM 提供商(OpenAI/Anthropic/本地 CLI 登录),否则 synthesize 阶段无法运行,存在 API 成本。
  • 目前仅覆盖 Markdown 格式的技能文件(如 SKILL.md),不审计其他类型的 Agent 工具或代码。
  • 修复质量依赖 LLM 生成补丁,检测虽确定但行为事实提取仍有 LLM 不确定性(项目用 Datalog 接受边界缓解)。
  • 作为较新项目,社区生态和规则库成熟度未知,需自行评估检测规则覆盖面。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Semia — AI Agent 技能安全审计工具 当前 59 · 缺口较多 命令行工具免费 + 模型费 ★ 615 5 个月前 Python Codex · Claude Code · OpenAI API · Claude API
Agent Audit 50 · 缺口较多 命令行工具免费 ★ 244 1 个月前 Python —
Repo Forensics:AI Agent 仓库离线安全审计器 44 · 缺口较多 命令行工具付费 ★ 204 13 天前 Python Codex · Claude Code
Mantis 安全审查技能套件 62 · 存在缺口 Agent 插件 / 技能免费 + 模型费 ★ 2.7k 1 天前 Python —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
59/ 100 五分制 3.0 / 5
信任安全 16/29
可靠稳定 8/14
适用触发 10/18
规范维护 12/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

证据显示:README 明确声明'读取 skill 为数据、绝不执行',SECURITY.md 给出完整威胁模型(禁止执行目标代码、外泄文件/凭据、伪造审计产物),pyproject 声明零运行时依赖,CI 使用只读权限和 SHA 锁定的 actions。扣分点:分析器核心源码未在证据中出现,'绝不执行'属于文档断言而非可见实现;修复(repair)会改写 SKILL.md 但未见确认门控;skill 文本会被发送到第三方 LLM API,README 未明示这一数据外流;API 密钥仅以环境变量说明,缺敏感性指引;无回滚/卸载说明;归属仅到 RiemaLabs 版权层。

可靠稳定8 / 14 · 2.9/5

证据显示:README、SECURITY.md、pyproject、CI 相互一致(0.1.3、Alpha、pre-1.0 支持策略),CI 覆盖多平台并做 wheel 安装冒烟测试与 zipapp 可运行性验证,合成循环有重试与元数据。扣分点:面向用户的失败消息文档缺失,仅从测试代码可推断存在 LlmSynthesisError;Soufflé 等外部组件的可用性/打包仅被提及未展示。

适用触发10 / 18 · 2.8/5

证据显示:面向开发者和技能审阅者的场景清晰,支持 CLI 与 Codex/Claude Code/OpenClaw 三种宿主,CI 覆盖 Linux/macOS/Windows 与 Python 3.11/3.12,SECURITY.md 划定明确的范围与威胁边界。扣分点:插件 SKILL.md 触发文本未在证据中,触发精度无法核实;实际运行环境对 Soufflé 的要求未说明;ADVANCED_USAGE.md 被引用但未提供。

规范维护12 / 18 · 3.3/5

证据显示:安装说明非常完整(pip、三种宿主的 shell 与交互两条路径),Apache-2.0 全文加 SPDX 和 NOTICE 引用,项目结构、产物表格、贡献流程(DCO)和安全响应目标(3/10/90 天)齐备。扣分点:无 CHANGELOG,仅有 pyproject 版本号;已知局限仅在'mypy 宽松基线、pre-1.0'中零散体现;无 FAQ;维护责任依赖文档承诺而非可见的发布历史。

有效结果9 / 13 · 3.5/5

证据显示:输出设计出色——report.md 按严重度排序且每条发现锚定源码行,SARIF 2.1.0 可直接进 GitHub Code Scanning,JSON 供程序化消费;仅 synthesize 需要 LLM,其余三阶段确定性执行,成本边界清楚。扣分点:所有效果声明均未在本次静态评审中执行验证;审计质量取决于 LLM 合成的准确性,这一风险的量化说明缺失。

证据核验4 / 8 · 2.5/5

证据显示:'每条发现回溯到具体源行'是产品的核心设计并贯穿 README 与 SARIF 用法,'确定性接受边界'明确区分 LLM 生成事实与经校验事实,测试展示了证据匹配率等校验指标。扣分点:引用的 arXiv 论文与 CI 徽章无法在本次静态评审中独立佐证;核心实现文件未提供,主张与推断的分离只能达到文档层面。

风险与缓解建议
  • 扫描时会把被审计 skill 的内容发送到您配置的第三方 LLM API(OpenAI/Anthropic 等),审计敏感技能前请确认这一数据流向。
  • '绝不执行 skill 代码'为文档声明,本次为静态评审未执行验证,请在隔离环境中首次试用。
  • semia repair 会直接改写 SKILL.md,使用前请自行备份或纳入版本控制,仓库未见回滚机制。
  • semia scan 需要 LLM 凭据(或宿主 Agent),纯离线/无密钥场景下 synthesize 阶段不可用。
  • 项目处于 pre-1.0(0.1.3,Alpha),检测规则与 API 可能变动,且无 CHANGELOG 可供追踪。
  • 发布者为未经核实的仓库身份,引用的论文与检测有效性声明未经独立佐证,安全决策不应仅依赖本工具的输出。
证据充分度:低 评估于 2026年9月11日 审查版本 379bc25fe998
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.1.3
    发布说明摘录
    What's Changed * fix: bound built-in Datalog evaluation by @bossjoker1 in https://github.com/berabuddies/Semia/pull/13 * chore(deps): bump codecov/codecov-action from 6.0.0 to 6.0.1 in the actions group across 1 directory by @dependabot[bot] in https://github.com/berabuddies/Semia/pull/10 * Enable evidence taint check by default by @bossjoker1 in https://github.com/berabuddies/Semia/pull/14 * chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/berabuddies/Semia/pull/23 New Contributors …
    在 GitHub 查看 ↗
  2. v0.1.2 Release: v0.1.2
    发布说明摘录
    [0.1.2] - 2026-05-16 Added - semia repair now keeps a Markdown audit report at .semia/runs/<skill-slug>/report.md before patch generation and records the report path in repair_result.json. - Repair output now includes an apply_command that copies the proposed patched/SKILL.md into a sibling <skill>_patched/SKILL.md directory after review. - ADVANCED_USAGE.md and DEVELOPMENT.md split advanced workflows, architecture notes, and contributor setup out of the README. Changed - The README is now a shorter quick-start surface with links to advanced usage …
    在 GitHub 查看 ↗
  3. v0.1.1 Release: v0.1.1
    发布说明摘录
    [0.1.1] - 2026-05-15 Added - semia repair, a repair workflow that traces detector findings back through Datalog rules and synthesized facts, then generates SKILL.md-only patches for flagged skills. - --from-scan and --trace-only repair modes so existing Semia run directories can be inspected without re-running scan or invoking an LLM. - Repair artifacts under the run directory, including repair_result.json and patched/SKILL.md, plus bundled plugin zipapps that include the repair command. Fixed …
    在 GitHub 查看 ↗
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents