项目简介

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'安装。

  1. 克隆仓库:
    git clone https://github.com/DavidROliverBA/SAAT.git
    cd SAAT
  2. 使用pip安装 (推荐):
    pip install -e .
    # 如需安装所有额外依赖 (Logfire, OpenAI, Gemini 支持), 请运行:
    # pip install -e ".[all]"
  3. 设置API密钥: SAAT需要一个AI模型的API密钥。创建一个 '.env' 文件,并添加你的密钥。例如,对于Claude模型:
    cp .env.example .env
    echo "ANTHROPIC_API_KEY=your-key-here" >> .env
    # 可选: 设置默认AI模型
    echo "SAAT_MODEL=anthropic:claude-sonnet-4" >> .env
    如果你使用OpenAI或Gemini,也需要设置相应的API密钥:'OPENAI_API_KEY' 或 'GEMINI_API_KEY'。

服务器配置 (用于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客户端。

信息

分类

开发者工具