hound
语言无关的 AI 安全审计 Agent,通过知识图谱和多轮推理实现专家级代码审计
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
语言无关的 AI 安全审计 Agent,通过知识图谱和多轮推理实现专家级代码审计
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 Web3 安全审计领域,一个资深审计员面对全新代码库时,往往会经历这样的思维过程:先建立对系统整体架构的认知,再从资金流向、权限控制等关键维度切入,通过大量阅读代码和反复假设-验证,最终锁定高危漏洞。Hound 正是将这一整套专家级审计流程自动化、工程化的产物——它不是简单地将代码丢给大模型,而是让 AI Agent 拥有自己的"知识图谱"、"假设体系"和"战略规划"能力,像真正的安全研究员一样思考。
传统代码安全审计高度依赖人工经验,一名优秀的智能合约审计员需要数年积累才能形成对漏洞的"直觉"。2023-2024 年间,尽管 GPT-4 等大模型已在代码生成上展现惊人能力,但直接将代码扔给 LLM 做安全分析的效果却差强人意——上下文窗口有限、缺乏跨文件关联推理能力、无法对假设进行迭代验证。
scabench-org/hound 的作者(安全研究员 Bernd Mueller)敏锐地发现了这一痛点,于 2025 年 8 月启动了 Hound 项目。其核心理念是:将安全审计从"单次 Prompt 问答"升级为"多轮迭代的知识图谱构建与推理"。项目上线后在 GitHub 迅速积累了近 800 star,并配套发表了学术论文(arXiv:2510.09633),验证了其在智能合约审计上的有效性。
Hound 的架构设计围绕三个核心组件展开,各组件相互协作形成完整的审计闭环:
这是 Hound 最具创新性的设计。与传统 RAG(检索增强生成)直接向 LLM 注入代码片段不同,Hound 让 Agent 自己构建面向切面的知识图谱(Aspect-Oriented Knowledge Graphs)。每个图谱可以建模代码的任意维度:系统架构、函数调用关系、访问控制流、资金流转、数学逻辑等。不同图谱之间可以跨维度关联,形成对代码的立体认知。
图谱中每个节点都带有置信度评分(0-1),随着审计深入,Agent 不断向图谱注入新观察,节点权重随之动态调整。当观察结果与先前假设矛盾时,系统会触发"认知失调"标记,驱动 Agent 重新审视相关推理链。
这种设计解决了大模型在长代码库上的"上下文稀释"问题:即使代码量超过模型的上下文窗口,图谱中存储的是经过压缩和结构化的高层知识,而非原始 token。
Hound 引入了一套正式的假设生命周期管理机制。每个假设包含:
proposed → investigating → confirmed / rejectedcritical / high / medium / lowreentrancy、access control、logic error 等这一机制使得审计过程完全透明可追溯。用户可以随时查看当前有哪些假设处于调查状态、哪些已被证实或否定,以及推理依据是什么。这比黑盒式地让 LLM 输出"发现 X 个漏洞"要有价值得多。
Hound 实现了战略家-侦察兵模式(Strategist-Scout Pattern):
两者并非简单的主从关系,而是一个迭代循环:Scout 收集信息 → Strategist 更新图谱和假设 → 制定下一轮计划 → Scout 继续执行。这种模式有效降低了审计成本——用户不需要全程用 GPT-4o 处理每个代码片段。
Hound 的标准审计流程分为两个阶段,用户通常需要按顺序执行:
阶段一:Sweep 模式(广度优先扫描)
运行 ./hound.py agent audit myaudit --mode sweep,Agent 会对代码库中的每个组件进行系统性的浅层分析。这一阶段的目标是建立全面的代码理解、识别所有可访问的组件,并为后续深入调查构建图谱基础。适合作为审计的第一步,快速摸清代码"家底"。
阶段二:Intuition 模式(深度直觉探索)
运行 ./hound.py agent audit myaudit --mode intuition --time-limit 300,Agent 会切换到直觉驱动模式,优先关注资金流转、价值转移、权限绕过等高影响漏洞。它会主动追踪"哪里可能让人把钱偷走"这类问题,对矛盾信息格外敏感,适合在 Sweep 之后做精细化挖掘。
两个阶段可以组合使用,也支持中断后从断点恢复,通过 --session 参数指定会话 ID 即可。
Hound 的另一大亮点是提供了实时遥测与交互界面。当 Agent 以 --telemetry 模式启动后,会在本地 http://127.0.0.1:5280 启动一个 Web 界面,用户可以实时看到:
更重要的是,用户可以通过"Steer 表单"主动干预审计方向,比如指定"重点关注转账函数的 reentrancy 风险"或"检查 admin 权限是否可被绕过"。这种人在回路(Human-in-the-loop)设计让 Hound 不只是一个全自动工具,也是一个可解释、可控制的协作平台。
Hound 在模型兼容性上下了不少功夫。当前已支持:
OPENAI_API_KEY 配置)ANTHROPIC_API_KEY)Gemini 的 Vertex AI 支持尤其值得关注——这意味着企业用户可以在 GCP 环境内使用自有凭证完成审计,无需将代码发送给第三方 API,有效解决了安全合规顾虑。
从代码组织来看,Hound 的核心文件 hound.py(49KB)负责 CLI 入口和整体编排。子目录结构体现了清晰的模块化设计:
| 目录 | 作用 |
|---|---|
llm/ | LLM 抽象层,支持多 Provider 动态切换 |
analysis/ | 知识图谱构建与分析引擎 |
chatbot/ | 遥测 Web UI 服务端 |
commands/ | CLI 命令实现(project、graph、agent 等) |
ingest/ | 代码摄取与解析 |
utils/ | 工具函数 |
tests/ | 测试套件 |
核心依赖来自 requirements.txt,项目本身使用 Python 编写,支持 Python 3.8+。代码质量方面,项目配备了完整的 ruff linting 配置、pytest 测试套件和 GitHub Actions CI 流水线,17 个测试文件覆盖了主要模块。
Hound 并非万能药。项目 README 明确指出:该工具针对中小型代码库(尤其是智能合约)进行了优化,大型企业代码库可能超出上下文限制,需要通过 --files 参数做文件白名单过滤。此外,审计质量与模型能力、运行时间直接相关——用更快但更弱的模型可以得到快速结果,但可能遗漏细节问题。
另一个值得注意的点:Hound 本身是纯本地工具,不包含任何代码托管或报告托管功能。审计结果以 SQLite 数据库形式存储在本地项目的 .hound/ 目录下,需要用户自行管理数据备份。
Hound 的出现代表了 AI 代码安全审计领域的一个重要转向:从基于规则/签名的静态检测(如传统 SAST 工具),到基于知识图谱的多轮推理分析。这一范式转变的核心价值在于,Agent 不再只是"查找已知漏洞模式",而是能够进行上下文感知的系统性探索,甚至发现那些依赖专家经验才能识别的新型漏洞组合。
从增长曲线看,项目在 2025 年 8 月上线后迅速获得关注,配套论文在 arXiv 发布,Medium 上有完整的使用 walkthrough。对于 Web3 安全团队、智能合约审计机构,以及对代码安全有较高要求的开发团队,Hound 值得作为日常审计工具链的一环纳入考量。
项目基本信息 | Stars: 778 | Forks: 149 | Language: Python | License: Apache 2.0 | 创建时间: 2025-08-24