项目简介
SAAT (Solution Architecture Agent Toolkit) 是一款由PydanticAI支持的全面架构工具包,旨在自动化软件架构的整个生命周期。它能从现有代码库(Brownfield)中发现架构、从文档(Greenfield)中提取需求、自动生成C4模型、验证合规性、分析安全性、生成各种格式的文档,并创建生产级的Terraform基础设施即代码。SAAT通过一套专业AI代理来执行这些任务,并支持与Claude Code等LLM客户端无缝集成,提供上下文服务。
主要功能点
- 架构发现与生成: 自动分析现有代码或根据需求文档生成C4架构模型。
- 架构验证: 根据PCI-DSS、HIPAA、GDPR、SOC2等合规框架验证架构模型。
- 安全分析: 评估架构的安全态势,识别漏洞,并生成威胁模型。
- 文档生成: 自动生成Markdown、PlantUML、Mermaid图和架构决策记录(ADRs)等多种格式的文档。
- 基础设施即代码生成: 根据C4模型和Criticality Level生成AWS、Azure、GCP的Terraform配置。
- 多模型支持: 可配置使用Claude、GPT-4、Gemini或Ollama等多种AI模型。
- MCP服务器集成: 通过Model Context Protocol (MCP) 标准,可与Claude Code等LLM客户端进行无缝工具调用。
安装步骤
SAAT是一个Python项目,推荐使用'pip'或'Poetry'安装。
- 克隆仓库:
git clone https://github.com/DavidROliverBA/SAAT.git cd SAAT - 使用pip安装 (推荐):
pip install -e . # 如需安装所有额外依赖 (Logfire, OpenAI, Gemini 支持), 请运行: # pip install -e ".[all]" - 设置API密钥:
SAAT需要一个AI模型的API密钥。创建一个 '.env' 文件,并添加你的密钥。例如,对于Claude模型:
如果你使用OpenAI或Gemini,也需要设置相应的API密钥:'OPENAI_API_KEY' 或 'GEMINI_API_KEY'。cp .env.example .env echo "ANTHROPIC_API_KEY=your-key-here" >> .env # 可选: 设置默认AI模型 echo "SAAT_MODEL=anthropic:claude-sonnet-4" >> .env
服务器配置 (用于MCP客户端,如Claude Code)
SAAT提供一个MCP服务器,允许LLM客户端(如Claude Code)直接调用其功能。您需要在MCP客户端的配置文件(通常是'~/.config/claude/config.json')中添加以下配置信息。这些配置描述了如何启动SAAT的MCP服务器:
{ "mcpServers": { "saat": { "command": "python", "args": ["/path/to/SAAT/saat_mcp_server.py"], "env": { "ANTHROPIC_API_KEY": "${env:ANTHROPIC_API_KEY}" }, "description": "SAAT架构分析工具包的MCP服务器,提供AI驱动的架构发现、生成、验证、安全分析、文档和Terraform生成工具。", "displayName": "SAAT 架构工具" } } }
请注意:
- 将 '"/path/to/SAAT/saat_mcp_server.py"' 替换为你在本地克隆SAAT仓库后 'saat_mcp_server.py' 文件的实际路径。
- 'ANTHROPIC_API_KEY' 变量将从你的环境变量中获取,确保已设置。如果使用其他模型,可能需要添加 'OPENAI_API_KEY' 或 'GEMINI_API_KEY'。
基本使用方法 (通过MCP客户端)
配置完成后,重启MCP客户端 (例如Claude Code)。在LLM客户端的对话中,你可以直接指示它使用SAAT的工具来执行架构相关的任务。例如:
- 分析代码库: "我有一个代码库在 '/path/to/my/code'。请使用SAAT分析它并生成架构模型。" (LLM将调用 'discover_architecture' 和 'generate_c4_model' 工具)
- 从需求文档设计: "我有一个PRD文档在 'docs/requirements.md'。请使用SAAT提取需求并设计完整的架构。" (LLM将调用 'discover_requirements' 和 'generate_c4_model' 工具)
- 验证架构合规性: "我有一个C4模型文件 'architecture.json'。请使用SAAT验证其PCI-DSS合规性。" (LLM将调用 'validate_model' 工具)
- 生成AWS Terraform: "请根据 'architecture.json' 模型为AWS生成Terraform基础设施代码。" (LLM将调用 'generate_terraform' 工具)
SAAT的MCP服务器会自动处理这些请求,执行AI代理任务,并将结果返回给LLM客户端。
信息
分类
开发者工具