Arunjay4213/Tripwire
GitHub: Arunjay4213/Tripwire
Tripwire 是一款用于在 CI 中对工具调用型 AI agent 进行 prompt injection 安全评估的确定性测试工具,旨在以可复现的通过/失败结果判断 agent 是否会被劫持。
Stars: 0 | Forks: 0
# tripwire
**一个用于工具调用 AI agent 的评估测试工具。** 将其指向一个 agent,使用 prompt injection 攻击对其进行测试,并以确定性的通过/失败结果来判断该 agent 是否会被劫持,从而泄露植入的机密(即“canary”)或执行违规操作。专为在 CI 中针对*您自己的* agent 运行而设计。
其核心在于**评估的严谨性**:无需人工干预的评分路径、固定的随机种子以及可复现的运行过程。Prompt injection 只是使评分更加干净纯粹的领域。
## 核心赌注
在保持 model 和 task 不变的情况下,**orchestration layer**(例如 LangGraph vs. CrewAI vs. 原生工具循环)是否会改变 agent 面对注入时的脆弱性?这正是本项目旨在回答的悬而未决的问题。
## 工作原理
```
agent + task ──> adapter ──> normalized trace ──> judge ──> pass / fail
(per framework) (framework-agnostic) (pure Python,
no LLM)
```
每个 orchestrator 都在同一个契约(`src/adapters/base.py`)背后接入:它接收一个 episode spec 并返回一个标准化的 trace。judge 和攻击程序*仅*读取该 trace,因此它们永远不知道实际运行的是哪个框架——这正是确保对比公平的关键。
## 目录结构
| 路径 | 内容 |
|------|------|
| `src/harness/` | runner、canary 注入、确定性 judge、报告生成器 |
| `src/adapters/` | 契约 + 每个 orchestrator 对应的 adapter(原生循环、LangGraph 等) |
| `src/attacks/` | 注入策略(封装了 AgentDojo 的策略,外加一个迭代攻击器) |
| `src/config/` | 威胁模型 / 运行配置 |
| `spike/` | 在全面构建之前验证该赌注的第 0 周实验 |
| `docs/` | 服务提供商 ToS 说明 |
## 状态
🚧 **骨架。** 契约和模块结构已就位;具体行为已通过 `TODO` 进行占位,并将逐步实现。请参阅 `roadmap tripwire.pdf` 了解后续计划。
## 致谢
本项目基于 [AgentDojo](https://github.com/ethz-spylab/agentdojo)(攻击套件、环境)以及已知的攻击方法(例如 PAIR)构建。tripwire 的贡献在于测试工具、测量方法论,以及——如果假设成立的话——关于 orchestrator 的研究发现。
标签:AI智能体, DLL 劫持, 大语言模型, 安全测试, 攻击性安全, 红队评估, 自动化评估, 逆向工具