AI 自動化 Coding 工具

專案簡介

基於 Claude API 的自動化軟體開發工具,實現從需求分析到系統設計的完整自動化流程。透過 AI Agent 自主探索專案代碼,理解現有架構,並生成可執行的實作設計文檔。

這個專案的核心目標是:讓 AI 不只是生成代碼,而是真正理解專案、分析需求、設計系統

主要功能

  • 需求分析自動化:將非結構化需求轉換為標準化的 9 章節需求文件
  • 系統設計自動化:AI Agent 自主探索專案,生成 11 章節的詳細設計文檔
  • 專案理解能力:使用 Tool Use API 讓 AI 讀取代碼、搜尋模式、理解架構
  • 多用戶隔離:支援多客戶/專案的獨立管理
  • 完整元數據:追蹤 Token 使用、工具調用統計等詳細資訊

核心亮點

1. 雙階段自動化流程

用戶需求描述
    ↓
【階段一:需求分析】
AI 分析需求 → 生成 9 章節需求文件
    ↓
【階段二:系統設計】
AI 探索專案 → 理解架構 → 生成 11 章節設計文檔
    ↓
【未來:代碼生成】
基於設計文檔自動生成代碼

2. Tool Use API 實戰

創新使用 Claude 的 Tool Use API,讓 AI 自主探索專案:

專案探索工具集

  • read_file:讀取文件內容(限制 100KB)
  • list_files:列出目錄結構(支援 glob 模式)
  • search_code:搜尋代碼模式
  • get_project_structure:生成專案結構樹

迭代式探索

  • AI 可以進行最多 30 輪對話
  • 自主決定需要讀取哪些文件
  • 逐步深入理解專案架構

3. 標準化文檔輸出

需求文件(9 章節)

  1. 專案概述
  2. 功能需求(核心 + 次要)
  3. 非功能需求
  4. 技術約束
  5. 數據模型(初步)
  6. API 端點設計
  7. 用戶故事
  8. 約束與假設
  9. 成功指標

設計文件(11 章節)

  1. 設計概覽
  2. 專案分析結果(結構、技術棧、架構、數據、API)
  3. 系統架構設計
  4. 數據庫設計
  5. API 設計規範
  6. 檔案變更清單
  7. 實作細節
  8. 整合方案
  9. 測試策略
  10. 部署考量
  11. 風險和注意事項

系統架構

┌─────────────────────────────────────────────────────┐
│             AI 自動化 Coding 工具架構                  │
└─────────────────────────────────────────────────────┘

用戶需求
    ↓
┌──────────────────┐
│  需求分析模組     │ → RequirementAnalyzer
│  - Claude API    │   • System Prompt 工程
│  - 9 章節輸出    │   • 多用戶隔離
│                  │   • Token 統計
└──────────────────┘
    ↓
需求文件 (req_*.md)
    ↓
┌──────────────────┐
│  系統設計模組     │ → SystemDesigner
│  - Tool Use API  │   • 專案探索工具集
│  - Agent 探索    │     - read_file
│  - 11 章節輸出   │     - list_files
│                  │     - search_code
│                  │     - get_project_structure
│                  │   • 迭代式對話(最多 30 輪)
│                  │   • 錯誤處理(rate limit 等)
└──────────────────┘
    ↓
設計文件 (design_*.md)
    ↓
┌──────────────────┐
│  代碼生成模組     │ → CodeGenerator (待開發)
│  - 讀取設計文檔   │
│  - 生成實際代碼   │
└──────────────────┘

技術棧

  • 語言/框架:Python 3.8+, asyncio
  • AI SDK:Anthropic Claude SDK
  • 模型:Claude Sonnet 4 (claude-sonnet-4-20250514)
  • 核心技術:Tool Use API, Agent 架構, Prompt 工程
  • 日誌系統:loguru
  • 配置管理:python-dotenv
  • AI 協作工具:Claude Code

開發歷程

從概念到實作,我將整個開發過程詳細記錄在以下日誌中:

  1. [[日誌/01-需求分析模組開發|#1 需求分析模組開發]] - System Prompt 工程與標準化輸出
  2. [[日誌/02-系統設計模組與Tool-Use-API|#2 系統設計模組與 Tool Use API]] - Agent 自主探索專案的實作 ⭐
  3. [[日誌/03-技術總結與未來展望|#3 技術總結與未來展望]] - 經驗總結與後續規劃

技術挑戰

在開發過程中解決了多個關鍵技術難題:

  1. Tool Use API 設計:如何設計工具讓 AI 有效探索專案
  2. Token 限制處理:read_file 限制 100KB,避免讀取大檔案
  3. 迭代次數控制:最多 30 輪對話,避免無限循環
  4. Rate Limit 處理:優雅處理 API 速率限制錯誤
  5. 專案結構理解:讓 AI 理解多種專案架構(Django、Flask、FastAPI 等)
  6. 錯誤恢復機制:處理各種 API 錯誤(max_tokens、rate_limit、timeout)

專案成果

✅ 已完成功能

需求分析模組

  • Claude API 整合
  • 標準化 9 章節輸出
  • 多用戶隔離設計
  • Token 使用統計
  • 元數據追蹤機制
  • 互動式測試工具

系統設計模組

  • Tool Use API 整合
  • 4 個專案探索工具實作
  • Agent 迭代式對話流程
  • 標準化 11 章節輸出
  • 完整錯誤處理機制
  • 工具調用統計
  • 互動式測試工具

📊 性能數據

需求分析

  • 處理時間:~5-10 秒
  • Token 使用:1000-3000 tokens
  • 輸出長度:3000-5000 字

系統設計

  • 探索時間:~30-60 秒(取決於專案大小)
  • 工具調用:平均 20-30 次
  • 檔案讀取:平均 10-20 個文件
  • Token 使用:3000-8000 tokens
  • 輸出長度:8000-15000 字

🎯 應用場景

  1. 新功能開發:分析需求 → 設計整合方案 → 生成代碼
  2. 技術諮詢:快速理解客戶專案架構並提供建議
  3. 代碼審查:分析專案結構,識別潛在問題
  4. 文檔生成:自動生成需求和設計文檔
  5. 團隊協作:標準化的需求和設計文檔促進溝通

實際案例

案例 1:待辦事項 API 新功能設計

需求:在現有 Todo API 中新增標籤(Tag)功能

AI 探索過程

  1. 讀取 models.py 理解現有數據模型
  2. 讀取 routes.py 了解 API 設計風格
  3. 搜尋 database 關鍵字找到 ORM 配置
  4. 生成完整的設計文檔,包含:
    • 新增 Tag 模型和關聯表
    • 5 個新 API 端點設計
    • 遷移 SQL
    • 完整的實作代碼範例

案例 2:電商系統需求分析

輸入:「開發一個線上書店系統,需要書籍管理、購物車、訂單系統」

AI 輸出

  • 9 章節完整需求文件
  • 識別出 4 個核心功能和 6 個次要功能
  • 設計初步的數據模型(Books, Users, Orders, Cart)
  • 列出 15+ API 端點
  • 提供 8 個用戶故事
  • 定義成功指標(支援 1000+ 併發、響應 < 2s)

未來規劃

短期目標(1-2 個月)

  1. 代碼生成模組

    • 讀取設計文檔
    • 生成實際可執行的代碼
    • 遵循專案現有代碼風格
  2. 驗證模組

    • 代碼語法檢查
    • 自動化測試生成
    • 錯誤修復建議
  3. 文檔生成模組

    • API 文檔自動生成
    • README 更新
    • 技術文件整理

中長期目標(3-6 個月)

  1. 完整流程整合

    • 需求 → 設計 → 代碼 → 測試 → 文檔
    • 一鍵自動化
  2. Web UI 介面

    • 視覺化需求分析
    • 互動式設計審查
    • 代碼變更預覽
  3. 多語言支援

    • Python (已支援)
    • JavaScript/TypeScript
    • Java
    • Go

相關連結


返回 所有專案

1 item under this folder.