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, 云安全监控, 大语言模型安全, 威胁建模, 安全加固, 安全库, 对抗性测试, 工具调用安全, 提示注入, 无后门, 机密管理, 逆向工具, 防护措施, 集群管理, 静态分析