cybozu/prompt-hardener
GitHub: cybozu/prompt-hardener
一个用于分析 LLM 智能体和应用中提示词注入风险的工具,可生成缓解措施并通过对抗攻击模拟验证防御效果。
Stars: 48 | Forks: 7
# Prompt Hardener
Prompt Hardener 可分析 **LLM 智能体和应用中的提示词注入风险**。
它为您提供单一工作流程,用于:
- 在 `agent_spec.yaml` 中描述您的系统
- 对提示词、工具和架构层进行确定性安全分析
- 生成缓解措施
- 使用对抗性攻击模拟验证防御
- 导出 Markdown、HTML 或 JSON 格式的结果
Prompt Hardener 面向希望了解 **提示词注入如何影响智能体** 以及 **如何降低此类风险** 的开发者和安全工程师。
## 为什么使用它?
- **一种规格支持多种智能体类型**:聊天机器人、RAG、工具调用智能体和 MCP 智能体
- **确定性优先**:`init`、`validate`、`analyze`、`report` 和 `diff` 无需 LLM API 密钥
- **分层安全视图**:分别检查提示词、工具和架构风险
- **实用修复**:获取针对提示词、策略、工具和信任边界的推荐修复方案
- **攻击验证**:根据内置对抗场景测试您的规格
- **CI 友好输出**:导出 Markdown、HTML 或 JSON
- **交互式 UI**:通过本地 Gradio 应用探索工作流程
## 快速开始
试用 Prompt Hardener 最快的方式是使用其中一个包含的示例规格。
### 1) 安装
```
# Option 1: Install from source
git clone https://github.com/cybozu/prompt-hardener.git
cd prompt-hardener
uv venv
source .venv/bin/activate
uv pip install -e .
# Option 2: Install as a CLI tool using uv
uv tool install \
https://github.com/cybozu/prompt-hardener/releases/download/vX.Y.Z/prompt_hardener-X.Y.Z-py3-none-any.whl
```
### 2) 分析示例规格
```
cp examples/chatbot-minimal/agent_spec.yaml ./agent_spec.yaml
prompt-hardener validate agent_spec.yaml
prompt-hardener analyze agent_spec.yaml --format markdown
```
这将为您提供完整的静态分析运行,无需设置任何 API 凭据。
### 3) 导出可分享的报告
```
prompt-hardener analyze agent_spec.yaml -o analyze.json
prompt-hardener report analyze.json -f html -o report.html
```
## 何时需要 LLM API 密钥?
大多数工作流程是确定性的。
| 命令 | 需要 API 密钥? | 备注 |
|---|---|---|
| `init` | 否 | 生成起始 `agent_spec.yaml` |
| `validate` | 否 | 架构 + 语义验证 |
| `analyze` | 否 | 静态基于规则的分析 |
| `report` | 否 | 将 JSON 结果渲染为 Markdown / HTML / JSON |
| `diff` | 否 | 比较两个规格 |
| `remediate` | 有时 | 提示词层修复需要 LLM;`--layers tool architecture` 保持确定性 |
| `simulate` | 是 | 攻击模拟由 LLM 支持 |
Prompt Hardener 支持以下 LLM 支持命令的提供商:
- OpenAI
- Anthropic Claude
- AWS Bedrock(Claude v3 或更新版本)
### 示例环境变量
```
# OpenAI
export OPENAI_API_KEY=...
# Anthropic Claude
export ANTHROPIC_API_KEY=...
# AWS Bedrock (alternative: use an AWS profile)
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
```
## 您的第一个真实工作流程
准备好分析您自己的系统后,标准工作流程如下:
```
init -> validate -> analyze -> remediate -> simulate -> report -> diff
```
### 创建起始规格
```
prompt-hardener init --type chatbot -o agent_spec.yaml
prompt-hardener init --type rag -o agent_spec.yaml
prompt-hardener init --type agent -o agent_spec.yaml
prompt-hardener init --type mcp-agent -o agent_spec.yaml
```
编辑生成的文件以匹配您的系统,然后运行其余的流程。
### 验证
```
prompt-hardener validate agent_spec.yaml
```
### 分析
```
prompt-hardener analyze agent_spec.yaml --format markdown
```
要限制分析到特定层:
```
prompt-hardener analyze agent_spec.yaml --layers prompt tool architecture
```
### 修复
```
prompt-hardener remediate agent_spec.yaml \
-ea openai -em gpt-4o-mini \
-o hardened.yaml \
-rd ./reports
```
如果您只想要非提示词层的确定性修复建议:
```
prompt-hardener remediate agent_spec.yaml \
--layers tool architecture \
-ea openai -em gpt-4o-mini
```
### 模拟攻击
```
prompt-hardener simulate hardened.yaml \
-ea openai -em gpt-4o-mini \
-o simulation.json
```
当您需要专注测试时,按类别或层筛选模拟:
```
prompt-hardener simulate hardened.yaml \
-ea openai -em gpt-4o-mini \
--categories "persona_switch,prompt_leaking" \
--layers "prompt,tool" \
-o simulation.json
```
### 比较修复前后
```
prompt-hardener diff agent_spec.yaml hardened.yaml
```
## 支持的智能体类型
| 类型 | 描述 | 分析的层 |
|---|---|---|
| `chatbot` | 简单对话机器人 | prompt |
| `rag` | 检索增强生成系统 | prompt, architecture |
| `agent` | 工具调用智能体 | prompt, tool, architecture |
| `mcp-agent` | 连接 MCP 的智能体 | prompt, tool, architecture |
## `agent_spec.yaml` 包含什么?
`agent_spec.yaml` 是主工作流程的单一输入。
至少需要描述:
- 智能体类型
- 系统提示词
- 提供商/模型
- 根据智能体类型,可选的工具、策略、数据源或 MCP 服务器
如果从头编写规格是瓶颈,我们还提供 [`agent-spec-builder`](./.agents/skills/agent-spec-builder/SKILL.md),这是一个 Agent Skill。它可以帮助创建初稿,您可以将其完善为 `agent_spec.yaml`,然后使用 Prompt Hardener 进行验证。
有关完整字段定义和完整示例,请参阅 [docs/agent-spec.md](
标签:AI安全, AI红队, Chat Copilot, CI/CD安全, GitHub Advanced Security, Gradio, JSON导出, Llama, Markdown报告, MCP安全, Prompt安全, Python, RAG安全, Red Canary, YAML, 云安全监控, 大语言模型安全, 威胁建模, 安全加固, 安全库, 对抗性测试, 工具调用安全, 提示注入, 无后门, 机密管理, 逆向工具, 防护措施, 集群管理, 静态分析