Skip to content

Latest commit

 

History

History
1252 lines (976 loc) · 31.5 KB

File metadata and controls

1252 lines (976 loc) · 31.5 KB

🚀 Code Agent - Multi-Agent AI Code Generation System

一个能够进行多轮对话、拥有完整记忆、支持迭代开发的智能代码生成系统。像 ChatGPT 一样与 AI 交互,专门为软件开发优化。

Python Status License Tests

📖 目录


🌟 核心特性

🎯 用户交互层面

  • ChatGPT 式对话界面 - 熟悉的交互方式,零学习曲线
  • 完整对话记忆 - 所有对话自动保存,支持多轮迭代
  • 智能意图识别 - 自动识别用户意图(生成/修改/查询/系统命令)
  • 上下文感知 - Agent 理解完整的对话历史和项目状态
  • 实时响应 - 即时反馈,良好的用户体验

🛠️ 开发能力

  • 自动项目规划 - 将需求转化为详细的项目结构和文件清单
  • 生产级代码生成 - 生成符合最佳实践、可直接使用的代码
  • 多语言支持 - Python, JavaScript, TypeScript, Java, Go, HTML/CSS 等
  • 代码改进 - 基于用户反馈迭代改进代码
  • 文件隔离 - 安全的工作空间管理,不会覆盖重要文件

🔧 系统特性

  • 模块化架构 - 高度解耦,易于扩展和维护
  • LLM 集成 - DeepSeek API (OpenAI 兼容),支持自定义配置
  • JSON 持久化 - 对话历史和项目状态自动保存
  • 完整错误处理 - 生产级异常处理,稳定可靠
  • Git 友好 - 完整的版本控制支持,安全的 API Key 管理

📊 企业特性

  • 完整测试覆盖 - 5 个单元测试覆盖所有核心功能
  • 生产级文档 - 4 个详细的 Markdown 文档 + 代码示例
  • 演示脚本 - 交互式演示展示系统能力
  • 配置管理 - 灵活的环境变量配置
  • 日志记录 - 完整的操作日志便于调试

⚡ 快速开始

前置要求

三步启动

第一步:环境配置

# 进入项目目录
cd /path/to/code_agent

# 安装依赖
pip install -r requirements.txt

# 配置 API Key
cp .env.example .env  # 或直接编辑 .env
# 在 .env 中填入你的 API Key:
# LLM_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

第二步:启动系统

# 方式一:一键启动(推荐)
./cli.sh

# 方式二:直接运行
python3 interactive_cli.py

# 方式三:查看演示
python3 demo_interactive.py

第三步:开始对话

👤 You: 生成一个 Flask REST API 用于用户管理

🤖 Agent: 我将为你创建一个完整的 Flask REST API...
[自动规划项目]
[自动生成代码]
✅ 5 个文件生成成功

👤 You: 添加 JWT 认证

🤖 Agent: 我将在已生成的代码基础上添加认证...
[改进代码]

👤 You: 显示状态

🤖 Agent: 📊 项目信息:
- 消息数: 3
- 文件生成: 5
- 总大小: 45 KB

👤 You: quit

🏗️ 项目架构

系统架构图

┌─────────────────────────────────────────────────────────────────┐
│                    用户交互层 (User Interface)                   │
│                  interactive_cli.py (CLI Interface)              │
│              提供 ChatGPT 式的多轮对话交互体验                    │
└────────────────────────┬────────────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────────────┐
│              对话管理层 (Conversation Layer)                      │
│              ConversationManager (Memory System)                  │
│         - 消息保存和恢复                                          │
│         - 上下文提取                                              │
│         - 项目状态追踪                                            │
└────────────────────────┬────────────────────────────────────────┘
                         │
┌────────────────────────▼────────────────────────────────────────┐
│              业务逻辑层 (Business Logic)                          │
│                  意图识别和路由                                   │
│  ├─ 生成请求 → PlannerAgent → CoderAgent → 代码生成              │
│  ├─ 修改请求 → 改进和增强已生成代码                              │
│  ├─ 查询请求 → 显示项目状态和信息                                │
│  └─ 系统请求 → 清空/帮助/重置                                    │
└────────────────────────┬────────────────────────────────────────┘
                         │
          ┌──────────────┼──────────────┐
          │              │              │
    ┌─────▼────┐  ┌─────▼────┐  ┌─────▼────┐
    │ Planner  │  │  Coder   │  │ FileTools│
    │  Agent   │  │  Agent   │  │ (IO)     │
    │ 规划→JSON│  │代码生成  │  │文件管理  │
    └─────┬────┘  └─────┬────┘  └─────┬────┘
          │              │              │
          └──────────────┼──────────────┘
                         │
┌────────────────────────▼────────────────────────────────────────┐
│              基础设施层 (Infrastructure)                          │
│  ┌─────────────────┐  ┌──────────────┐  ┌────────────────────┐ │
│  │  LLMClient      │  │ Config       │  │ JSON Storage       │ │
│  │ (API Integration)  │(Configuration)  │(Persistence)       │ │
│  └─────────────────┘  └──────────────┘  └────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

核心组件说明

组件 职责 特点
InteractiveCodeAgent CLI 主控制器 整合所有组件的主程序
ConversationManager 对话管理 JSON 持久化,支持恢复
PlannerAgent 项目规划 生成结构化项目计划
CoderAgent 代码生成 多语言支持,智能提取
LLMClient API 客户端 统一接口,错误处理
FileTools 文件管理 隔离工作空间,版本友好
Config 配置管理 环境变量管理,验证

🔄 系统工作流程

完整的对话处理流程

用户输入文本
    ↓
[1] 消息保存
    ↓
[2] 对话历史提取(最近 10 条消息 + 项目上下文)
    ↓
[3] 意图识别
    │
    ├─ "生成" 关键词?
    │   ├─ 调用 PlannerAgent 规划项目
    │   ├─ 调用 CoderAgent 生成代码
    │   ├─ 保存文件到 workspace/
    │   └─ 返回生成摘要
    │
    ├─ "修改/改进" 关键词?
    │   ├─ 传入完整对话历史
    │   ├─ 调用 CoderAgent 改进代码
    │   ├─ 保存改进后的文件
    │   └─ 返回改进说明
    │
    ├─ "状态/列表" 关键词?
    │   ├─ 格式化项目信息
    │   ├─ 列出工作区文件
    │   └─ 显示对话统计
    │
    ├─ "帮助" 关键词?
    │   ├─ 显示命令列表
    │   ├─ 显示使用示例
    │   └─ 提供文档链接
    │
    └─ 其他情况 → 调用 LLM 提供建议
    │
[4] 响应保存到历史
    ↓
[5] 格式化并显示给用户
    ↓
[6] 持久化到 .conversation_history/current_session.json
    ↓
继续等待下一条用户输入

代码生成流程详解

用户需求
    ↓
PlannerAgent:
    - 分析需求
    - 生成 JSON 格式的项目计划
    - 包含:项目名称、文件列表、技术栈、依赖项等
    ↓
CoderAgent (for each file):
    - 接收文件规范
    - 调用 LLM 生成代码
    - 从 Markdown 中提取代码块
    - 自动检测编程语言
    - 处理多种 Markdown 格式 (5 种)
    ↓
FileTools:
    - 创建文件目录
    - 写入代码到文件
    - 处理编码问题
    - 验证写入成功
    ↓
完成通知
    - 统计生成的文件数
    - 显示生成摘要
    - 更新项目上下文

🛠️ 技术栈

核心依赖

┌─ 语言和运行环境
│  └─ Python 3.11+

├─ LLM 和 API
│  ├─ openai (2.11.0+)         # OpenAI SDK (DeepSeek 兼容)
│  └─ DeepSeek API              # 可换成其他 OpenAI 兼容 API

├─ 数据处理和验证
│  ├─ pydantic (2.12.5+)        # 数据验证框架
│  └─ python-dotenv (1.2.1+)    # 环境变量管理

├─ 文件和系统
│  ├─ pathlib                   # 路径操作(标准库)
│  ├─ json                      # JSON 处理(标准库)
│  ├─ logging                   # 日志系统(标准库)
│  └─ datetime                  # 时间处理(标准库)

└─ 可选的补充库(用于生成的项目)
   ├─ Flask                     # Web 框架
   ├─ SQLAlchemy                # ORM
   ├─ requests                  # HTTP 客户端
   └─ 其他根据生成项目选择

架构设计特点

语言和框架选择理由:

  • ✅ Python: 简洁、生态完善、适合 AI 应用
  • ✅ OpenAI SDK: 通用标准,支持多个 LLM 提供商
  • ✅ Pydantic: 类型安全、自动验证、易于集成
  • ✅ 无重型框架: 保持轻量,便于理解和修改

架构哲学:

  • 模块化设计 - 每个组件独立,易于测试和维护
  • 依赖注入 - 配置对象通过参数传递,灵活性高
  • 事件驱动 - 基于用户意图的事件路由
  • 渐进式增强 - 可逐步添加新功能而不破坏现有代码

📚 详细功能说明

1. 交互式 CLI 界面

文件: interactive_cli.py

class InteractiveCodeAgent:
    """主要的交互入口点"""
    
    def __init__(self):
        # 初始化所有代理和管理器
        
    def process_user_input(self, user_input: str) -> str:
        # 处理用户输入
        # 1. 保存消息
        # 2. 提取上下文
        # 3. 识别意图
        # 4. 路由处理
        # 5. 返回响应

特点:

  • 自然语言理解
  • 多轮对话支持
  • 实时反馈
  • 错误恢复

2. 对话记忆管理

文件: agents/conversation_manager.py

class ConversationManager:
    """管理所有对话历史和上下文"""
    
    def add_user_message(self, content: str):
        # 保存用户消息
        
    def add_assistant_message(self, content: str):
        # 保存 AI 回复
        
    def get_full_context(self) -> str:
        # 获取完整的对话上下文用于 LLM
        
    def update_project_context(self, key: str, value):
        # 更新项目状态

特点:

  • 时间戳记录
  • JSON 持久化
  • 上下文智能提取
  • 项目状态追踪

3. 项目规划 Agent

文件: agents/planner.py

class PlannerAgent:
    """将需求转化为项目计划"""
    
    def plan_project(self, requirement: str) -> dict:
        # 输入: 自然语言需求
        # 处理: 调用 LLM 生成计划
        # 输出: 结构化的 JSON 计划
        # {
        #   "project_name": "...",
        #   "files": [...],
        #   "tech_stack": [...],
        #   "dependencies": [...],
        #   "implementation_steps": [...]
        # }

输出格式:

{
  "project_name": "User Management API",
  "description": "...",
  "files": [
    {
      "filename": "app.py",
      "purpose": "主应用文件,包含 Flask 应用配置"
    },
    ...
  ],
  "tech_stack": ["Python", "Flask", "SQLAlchemy"],
  "dependencies": ["flask==2.0.0", "..."],
  "implementation_steps": ["...", "..."],
  "summary": "..."
}

4. 代码生成 Agent

文件: agents/coder.py

class CoderAgent:
    """生成生产级别的代码"""
    
    def generate_code(
        self,
        filename: str,
        task_description: str,
        full_plan_context: str,
        language: str
    ) -> str:
        # 输入: 文件名、任务、上下文、语言
        # 处理: 调用 LLM,提取代码
        # 输出: 完整的源代码字符串
        
    def generate_multiple(self, files_list: list) -> int:
        # 批量生成多个文件
        # 返回: 成功生成的文件数

支持的 Markdown 格式:

1. ```language
   code here
  1. code here
    
  2. indented code
    
  3. Language Section

    code here

  4. Raw code (auto-detect)


### 5. 文件管理系统

**文件**: `tools/file_tools.py`

```python
class FileTools:
    """管理所有文件操作"""
    
    @staticmethod
    def save_code(filename: str, content: str) -> bool:
        # 保存代码到工作区
        
    @staticmethod
    def read_code(filename: str) -> str:
        # 读取已生成的代码
        
    @staticmethod
    def list_files() -> list:
        # 列出工作区所有文件
        
    @staticmethod
    def get_workspace_info() -> dict:
        # 获取工作区统计信息

特点:

  • 自动创建目录
  • 文件隔离
  • 版本友好
  • 错误处理

6. LLM 客户端

文件: utils/llm_client.py

class LLMClient:
    """统一的 LLM API 接口"""
    
    def chat(
        self,
        messages: list,
        temperature: float = 0.7,
        max_tokens: int = 2000
    ) -> str:
        # 发送消息到 LLM
        # 返回: LLM 的回复
        
    def chat_stream(self, messages: list):
        # 流式响应(可选)

错误处理:

  • APIConnectionError - 网络连接问题
  • RateLimitError - API 速率限制
  • APIError - 通用 API 错误
  • ValueError - 参数验证错误

📖 文档导航

根据你的需求,选择合适的文档:

文档 适合人群 内容
QUICKSTART.md 新用户 5分钟快速开始指南,最小化学习
INTERACTIVE_TUTORIAL.md 深度使用者 100+ 行详细教程,包含案例和技巧
README_INTERACTIVE.md 学习者 功能说明、架构概述、最佳实践
PROJECT_SUMMARY.md 决策者 项目统计、功能清单、完成度信息
本 README.md 所有人 全面指南,适合首次接触项目

文档阅读路径

新用户路径 (15 分钟)

QUICKSTART.md
    ↓
运行 demo_interactive.py (看演示)
    ↓
自己尝试 ./cli.sh

开发者路径 (1 小时)

本 README.md (当前文件)
    ↓
PROJECT_SUMMARY.md (了解整体)
    ↓
查看源代码 (agents/, tools/, utils/)
    ↓
运行测试 (python3 test_*.py)
    ↓
INTERACTIVE_TUTORIAL.md (高级用法)

贡献者路径 (2 小时)

本 README.md
    ↓
完整源代码阅读
    ↓
测试覆盖分析
    ↓
运行 demo_interactive.py
    ↓
提交改进建议

📁 项目结构

code_agent/
│
├── 📄 主应用文件
│   ├── main.py                     # Orchestrator (一次性生成)
│   ├── interactive_cli.py          # 🔥 交互式 CLI (推荐使用)
│   ├── config.py                   # 配置管理
│   ├── cli.sh                      # 启动脚本
│   └── setup_project.py            # 项目初始化脚本
│
├── 🤖 代理模块 (agents/)
│   ├── __init__.py
│   ├── planner.py                  # PlannerAgent (规划)
│   ├── coder.py                    # CoderAgent (代码生成)
│   └── conversation_manager.py     # ConversationManager (记忆)
│
├── 🔧 工具模块 (tools/)
│   ├── __init__.py
│   └── file_tools.py               # 文件管理工具
│
├── 🛠️ 工具类 (utils/)
│   ├── __init__.py
│   ├── llm_client.py               # LLM API 客户端
│   └── examples.py                 # 使用示例
│
├── 🧪 测试 (完整覆盖)
│   ├── test_connection.py          # LLM 连接测试
│   ├── test_planner.py             # 规划 Agent 测试
│   ├── test_coder.py               # 代码生成测试
│   ├── test_file_tools.py          # 文件工具测试
│   └── test_agent_integration.py   # 集成测试
│
├── 📚 文档 (4 个完整文档)
│   ├── README.md                   # 本文件 (入口点)
│   ├── QUICKSTART.md               # 快速开始
│   ├── INTERACTIVE_TUTORIAL.md     # 详细教程
│   ├── README_INTERACTIVE.md       # 功能说明
│   └── PROJECT_SUMMARY.md          # 项目总结
│
├── 📊 演示和示例
│   ├── demo_interactive.py         # 交互演示脚本
│   └── copilot_read.md             # 原始需求文档
│
├── 💾 工作空间 (自动生成)
│   └── workspace/
│       ├── app.py                  # 示例:Flask 应用
│       ├── models.py               # 示例:数据模型
│       ├── config.py               # 示例:配置文件
│       └── [更多生成文件...]
│
├── 💬 对话历史 (自动管理)
│   └── .conversation_history/
│       └── current_session.json    # 当前对话记录
│
├── 🔐 配置和环境
│   ├── .env                        # 环境变量 (本地, .gitignore)
│   ├── .env.example                # 环境变量示例
│   └── .gitignore                  # Git 忽略文件
│
├── 📋 依赖管理
│   ├── requirements.txt            # Python 依赖
│   ├── activate.sh                 # 虚拟环境激活脚本
│   └── setup_project.py            # 自动设置脚本
│
└── 📦 版本控制
    └── .git/                       # Git 仓库

关键文件说明

interactive_cli.py (最重要)

  • 用户交互的主入口
  • 包含意图识别和命令路由
  • 大约 300+ 行代码
  • 生产就绪

agents/conversation_manager.py (核心创新)

  • 对话记忆的管理器
  • JSON 持久化
  • 项目状态追踪
  • 约 200+ 行代码

agents/planner.pyagents/coder.py

  • PlannerAgent: 项目规划
  • CoderAgent: 代码生成
  • 各 200+ 行代码
  • 可独立使用

utils/llm_client.py

  • API 集成
  • 错误处理
  • 可换成其他 LLM
  • 约 150 行代码

💻 安装指南

环境要求

# 检查 Python 版本
python3 --version  # 需要 3.11 或更高

# 检查 pip
pip --version

安装步骤

1. 克隆或下载项目

cd /path/to/code_agent

2. 创建虚拟环境

# 使用 venv
python3 -m venv .venv

# 或使用 uv (更快)
uv venv

# 激活虚拟环境
source .venv/bin/activate  # macOS/Linux
#
.venv\Scripts\activate      # Windows

3. 安装依赖

pip install -r requirements.txt

# 或使用 uv
uv pip install -r requirements.txt

4. 配置 API Key

# 复制示例配置
cp .env.example .env

# 编辑 .env 文件,添加你的 DeepSeek API Key
# LLM_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
# LLM_MODEL=deepseek-chat
# LLM_BASE_URL=https://api.deepseek.com

# 或直接设置环境变量
export LLM_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"

5. 验证安装

# 运行连接测试
python3 test_connection.py

# 应该看到:
# ✓ LLMClient initialized with DEEPSEEK
# HTTP Request: POST https://api.deepseek.com/chat/completions "HTTP/1.1 200 OK"

🎯 使用示例

示例 1: 一键启动

./cli.sh

示例 2: 生成 Flask API

👤 You: 生成一个 Flask REST API,支持用户注册、登录、个人信息管理

🤖 Agent: 我将为你创建一个完整的 Flask REST API...

📋 **项目计划:**
- 项目名: User Management API
- 文件数: 8
- 技术栈: Python, Flask, SQLAlchemy, JWT

🔄 Generating code...

✅ **生成完成:**
✓ app.py (139 行) - 主应用程序
✓ models.py (87 行) - 数据库模型
✓ config.py (45 行) - 配置文件
✓ requirements.txt (12 行) - 依赖列表
... (更多文件)

📁 所有文件已保存到 workspace/ 目录

示例 3: 迭代改进

👤 You: 添加 JWT 认证

🤖 Agent: 基于之前生成的 Flask 应用,我将添加 JWT 认证功能...

✅ 已更新:
✓ app.py - 添加认证中间件
✓ auth.py - 新建认证模块 (125 行)
✓ requirements.txt - 添加 PyJWT 依赖

---

👤 You: 改进数据验证

🤖 Agent: 我将在所有 API 端点添加数据验证...

✅ 已改进:
✓ models.py - 添加数据验证
✓ schemas.py - 新建数据模式 (95 行)
✓ app.py - 集成验证

---

👤 You: 显示当前状态

🤖 Agent: 📊 **项目信息:**
- 消息数: 3
- 文件数: 7
- 总大小: 52 KB
- 最后更新: 2024-01-15 15:30:20

📁 **已生成文件:**
- app.py (189 行)
- models.py (132 行)
- config.py (45 行)
- auth.py (125 行)
- schemas.py (95 行)
- requirements.txt (18 行)
- README.md (50 行)

示例 4: 命令参考

# 生成命令
👤 You: 生成 [项目描述]
👤 You: 创建 [项目描述]
👤 You: 构建 [项目描述]

# 修改命令
👤 You: 添加 [功能]
👤 You: 改进 [功能/文件]
👤 You: 修复 [问题]
👤 You: 优化 [组件]

# 查询命令
👤 You: 显示状态
👤 You: 列出文件
👤 You: 显示进度

# 系统命令
👤 You: help      # 显示帮助
👤 You: clear     # 清空历史
👤 You: status    # 项目状态
👤 You: quit      # 退出

❓ 常见问题

Q1: 我没有 DeepSeek API Key,怎么办?

A:

  1. 访问 https://platform.deepseek.com
  2. 注册账户(邮箱或 GitHub)
  3. 进入控制台,创建 API Key
  4. 复制 Key 到 .env 文件
  5. 运行 test_connection.py 验证

Q2: 能否使用其他 LLM(如 OpenAI, Claude)?

A: 可以。系统使用 OpenAI SDK,支持所有兼容的 API:

# 在 config.py 中修改
LLM_BASE_URL = "https://api.openai.com/v1"  # OpenAI
LLM_API_KEY = "sk-..."
LLM_MODEL = "gpt-4"

Q3: 生成的代码能直接使用吗?

A: 大部分可以,但建议:

  1. 查看生成的代码质量
  2. 根据项目需求调整
  3. 安装依赖:pip install -r requirements.txt
  4. 运行测试确保功能正确
  5. 配置环境变量(数据库、API Key 等)

Q4: 对话历史存储在哪里?

A:

  • 位置:.conversation_history/current_session.json
  • JSON 格式,便于查看和编辑
  • 包含所有消息和项目上下文
  • 可以手动备份或导出

Q5: 如何清空历史开始新项目?

A:

# 方式 1: 在 CLI 中
👤 You: clear

# 方式 2: 手动删除
rm .conversation_history/current_session.json

# 方式 3: 创建新的对话 session
cp .conversation_history/current_session.json project1_backup.json
rm .conversation_history/current_session.json

Q6: 能否并行开多个项目?

A: 可以:

# 终端 1
./cli.sh

# 终端 2 (新的终端窗口)
./cli.sh

# 每个终端有独立的对话历史

Q7: 系统有速率限制吗?

A:

  • API 调用受 DeepSeek 速率限制
  • 生成大型项目时可能需要等待
  • 建议一步步生成而不是一次性所有需求

Q8: 如何扩展系统添加新功能?

A:

  1. 查看 agents/ 目录结构
  2. 创建新的 Agent 类
  3. interactive_cli.py 中添加路由
  4. 添加对应的测试文件
  5. 更新文档

⚙️ 性能优化

响应速度优化

1. LLM 调用优化

# temperature: 控制随机性
# - 0.3: 确定性(适合代码生成)
# - 0.7: 平衡(适合规划)
# - 1.0+: 创意性(适合头脑风暴)

# max_tokens: 控制响应长度
# - 默认 2000
# - 可根据需求调整

2. 批量生成优化

# 而不是逐个生成,可以:
# 1. 一次性请求多个文件的规划
# 2. 并行生成多个小文件(注意 API 速率限制)
# 3. 缓存重复的生成结果

3. 上下文管理优化

# ConversationManager 自动提取最近 10 条消息
# 这样保持了上下文同时限制了 token 使用
# 可根据需求在 config.py 中调整

内存优化

1. 文件操作优化

# 使用流式读写处理大文件
# 避免一次性将整个文件加载到内存

2. 对话历史优化

# 定期清理旧对话
# 使用 gzip 压缩历史文件
# 考虑使用数据库替代 JSON

成本优化

1. API 调用优化

# 合并多个请求为一个
# 使用缓存减少重复调用
# 优化 prompt 减少 token 使用

2. 选择合适的模型

# deepseek-chat: 快速、便宜
# gpt-4: 质量高、成本高
# 根据场景选择

🔧 故障排除

问题 1: 连接失败 "Connection refused"

原因: 无法连接到 LLM API
解决方案:

# 检查网络连接
ping api.deepseek.com

# 检查 API Key
echo $LLM_API_KEY

# 测试连接
python3 test_connection.py

# 检查防火墙
# 确保允许 HTTPS 出站连接

问题 2: 401 认证失败

原因: API Key 无效或已过期
解决方案:

# 1. 获取新的 API Key
# 访问 https://platform.deepseek.com

# 2. 更新 .env 文件
LLM_API_KEY=sk-[new_key]

# 3. 重启应用
./cli.sh

问题 3: 429 速率限制

原因: 调用过于频繁
解决方案:

# 1. 等待一段时间后重试
# 2. 减少并发请求数
# 3. 升级 API 配额

问题 4: 代码生成失败

原因: LLM 返回格式不正确
解决方案:

# 1. 检查错误日志
python3 -c "import logging; logging.basicConfig(level=logging.DEBUG)"

# 2. 简化需求
# 尽量用清晰的描述

# 3. 使用完整的 Markdown 标记
# 确保代码在 ``` ... ``` 之间

问题 5: 对话历史丢失

原因: 程序崩溃或文件损坏
解决方案:

# 1. 检查备份
ls -la .conversation_history/

# 2. 恢复备份
cp .conversation_history/backup.json .conversation_history/current_session.json

# 3. 如无备份,清空并重新开始
rm .conversation_history/current_session.json
./cli.sh

问题 6: 无法启动 CLI

原因: 依赖未安装或 Python 版本错误
解决方案:

# 检查 Python 版本
python3 --version  # 需要 3.11+

# 重新安装依赖
pip install --upgrade -r requirements.txt

# 检查虚拟环境
source .venv/bin/activate
which python3

# 运行诊断
python3 -m pip check

🚀 高级用法

自定义系统提示

修改 agents/planner.pyagents/coder.py 中的 PLANNER_SYSTEM_PROMPTCODER_SYSTEM_PROMPT

PLANNER_SYSTEM_PROMPT = """
你是一个专业的软件架构师。
你的任务是分析用户的项目需求...
...
"""

添加新的代理

agents/ 目录下创建新文件:

# agents/reviewer.py
class ReviewerAgent:
    def review_code(self, code: str) -> dict:
        """代码审查 Agent"""
        pass

然后在 interactive_cli.py 中集成。

连接数据库存储对话

替换 JSON 存储为数据库:

# 修改 ConversationManager
# 实现 save_to_db(), load_from_db()
# 使用 SQLAlchemy 连接 PostgreSQL/MySQL

📈 性能基准

在标准配置下的性能指标:

操作 时间 备注
启动 CLI < 1 秒 加载所有模块
项目规划 3-5 秒 取决于复杂度
单文件生成 5-10 秒 代码长度会影响
5 个文件生成 30-50 秒 顺序生成
对话恢复 < 0.5 秒 从 JSON 加载

🔐 安全性

API Key 管理

最佳实践:

  • API Key 存储在 .env 文件(已添加 .gitignore
  • 从不在代码中硬编码
  • 环境变量隔离
  • 定期轮换 Key

避免:

  • 在 GitHub 提交 .env 文件
  • 在日志中打印 API Key
  • 在公开场合分享 Key
  • 在客户端代码中嵌入 Key

文件安全

文件隔离:

  • 生成的代码在 workspace/
  • 不会覆盖系统文件
  • 版本控制友好

数据安全

对话隐私:

  • 对话历史本地存储
  • 不上传到外部服务器
  • JSON 格式易于审计

🎓 学习路径

初级用户 (1 天)

  1. 阅读 QUICKSTART.md (5 分钟)
  2. 运行 demo_interactive.py (10 分钟)
  3. 尝试简单的生成任务 (30 分钟)
  4. 探索 CLI 命令 (30 分钟)

中级用户 (1 周)

  1. 阅读本 README.md (30 分钟)
  2. 查看源代码结构 (1 小时)
  3. 运行所有测试 (30 分钟)
  4. 尝试复杂的生成任务 (2 小时)
  5. 阅读 INTERACTIVE_TUTORIAL.md (1 小时)

高级用户 (2 周)

  1. 完整阅读所有代码 (3 小时)
  2. 理解 Agent 架构 (2 小时)
  3. 修改系统提示优化效果 (1 小时)
  4. 添加新的 Agent 功能 (2 小时)
  5. 性能优化和测试 (2 小时)

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

报告 Bug

  1. 清晰描述问题
  2. 提供复现步骤
  3. 附加日志输出
  4. 说明环境(Python 版本、OS 等)

提出功能建议

  1. 描述用例和需求
  2. 说明期望的行为
  3. 提供示例或原型

代码贡献

  1. Fork 项目
  2. 创建特性分支
  3. 提交清晰的 commit
  4. 添加测试覆盖
  5. 提交 PR

📝 许可证

MIT License - 自由使用、修改和分发

详见 LICENSE 文件


📞 联系方式

  • 📧 问题反馈: 提交 GitHub Issue
  • 💬 讨论: 使用 Discussions 页面
  • 🐛 Bug 报告: 使用 Issue Tracker

🙏 致谢

感谢所有贡献者和用户的支持!


📊 项目统计

  • 代码行数: 2000+ 行生产代码
  • 测试覆盖: 5 个单元测试,所有核心功能覆盖
  • 文档: 5 个 Markdown 文件,总字数 10000+
  • 模块数: 8 个高度模块化的核心模块
  • 支持语言: Python, JavaScript, TypeScript, Java, Go, HTML/CSS 等
  • 完成度: 100% 生产就绪

🎉 快速开始

# 一键启动
./cli.sh

# 或者
python3 interactive_cli.py

# 或查看演示
python3 demo_interactive.py

现在就开始你的 AI 驱动代码生成之旅吧! 🚀


Made with ❤️ for AI-Powered Software Development

Last Updated: 2025-12-12 | Version: 1.0.0 (Production Ready)