|
| 1 | +# Roo-Code 项目概览 |
| 2 | + |
| 3 | +## 项目简介 |
| 4 | + |
| 5 | +Roo-Code 是一个基于 VSCode 的 AI 编程助手扩展,通过集成多种 AI 模型和智能工具,帮助开发者更高效地完成编程任务。 |
| 6 | + |
| 7 | +## 技术架构 |
| 8 | + |
| 9 | +### 架构模式 |
| 10 | + |
| 11 | +- **Monorepo 架构**: 使用 pnpm workspace 管理多个包 |
| 12 | +- **VSCode 扩展**: 基于 VSCode Extension API 构建 |
| 13 | +- **事件驱动**: 大量使用 EventEmitter 模式进行组件通信 |
| 14 | +- **单例模式**: 核心服务(如 CodeIndexManager)采用单例设计 |
| 15 | +- **工厂模式**: ServiceFactory 负责创建和管理服务实例 |
| 16 | + |
| 17 | +### 核心技术栈 |
| 18 | + |
| 19 | +- **语言**: TypeScript |
| 20 | +- **测试框架**: Vitest |
| 21 | +- **构建工具**: esbuild |
| 22 | +- **包管理**: pnpm workspace |
| 23 | +- **前端**: React + Vite |
| 24 | +- **AI 集成**: 支持 Anthropic、OpenAI、OpenRouter 等多种 AI 提供商 |
| 25 | +- **浏览器自动化**: Puppeteer |
| 26 | +- **向量数据库**: Qdrant |
| 27 | + |
| 28 | +## 核心组件 |
| 29 | + |
| 30 | +### 1. Task (任务系统) |
| 31 | + |
| 32 | +- 管理任务生命周期 |
| 33 | +- 处理 API 对话 |
| 34 | +- 协调工具调用 |
| 35 | +- 管理子任务 |
| 36 | + |
| 37 | +### 2. Terminal (终端系统) |
| 38 | + |
| 39 | +- **TerminalRegistry**: 终端池管理(最多5个) |
| 40 | +- **Terminal**: VSCode 终端集成 |
| 41 | +- **ExecaTerminal**: 命令执行引擎 |
| 42 | + |
| 43 | +### 3. ClineProvider (提供者) |
| 44 | + |
| 45 | +- WebView 生命周期管理 |
| 46 | +- 任务创建和切换 |
| 47 | +- 状态同步 |
| 48 | +- 配置管理 |
| 49 | + |
| 50 | +### 4. CodeIndexManager (索引管理) |
| 51 | + |
| 52 | +- 代码库语义索引 |
| 53 | +- 向量搜索 |
| 54 | +- 增量更新 |
| 55 | +- 缓存管理 |
| 56 | + |
| 57 | +## 项目结构 |
| 58 | + |
| 59 | +``` |
| 60 | +Roo-Code/ |
| 61 | +├── src/ # 核心扩展代码 |
| 62 | +│ ├── core/ # 核心功能模块 |
| 63 | +│ ├── api/ # API 集成 |
| 64 | +│ ├── integrations/ # 外部集成 |
| 65 | +│ └── services/ # 业务服务 |
| 66 | +├── webview-ui/ # React WebView UI |
| 67 | +├── packages/ # 共享包 |
| 68 | +│ ├── types/ # 类型定义 |
| 69 | +│ ├── cloud/ # 云服务 |
| 70 | +│ └── evals/ # 评估系统 |
| 71 | +├── apps/ # 应用程序 |
| 72 | +│ ├── web-roo-code/ # 官方网站 |
| 73 | +│ ├── web-evals/ # 评估 Web 界面 |
| 74 | +│ └── vscode-e2e/ # E2E 测试 |
| 75 | +└── qdrant/ # 向量数据库配置 |
| 76 | +``` |
| 77 | + |
| 78 | +## 关键技术特性 |
| 79 | + |
| 80 | +### Shell Integration |
| 81 | + |
| 82 | +- 与 VSCode 终端深度集成 |
| 83 | +- 实时捕获命令输出 |
| 84 | +- 智能终端复用 |
| 85 | + |
| 86 | +### Sliding Window Context |
| 87 | + |
| 88 | +- 对话历史管理 |
| 89 | +- 自动截断机制(75%阈值) |
| 90 | +- 保持上下文连贯性 |
| 91 | + |
| 92 | +### Context Condensing |
| 93 | + |
| 94 | +- LLM 驱动的智能压缩 |
| 95 | +- 保留最近3条消息 |
| 96 | +- 确保至少20%的压缩率 |
| 97 | + |
| 98 | +### MCP (Model Context Protocol) |
| 99 | + |
| 100 | +- 扩展工具能力 |
| 101 | +- 统一的工具接口 |
| 102 | +- 支持自定义工具 |
| 103 | + |
| 104 | +### Git Checkpoints |
| 105 | + |
| 106 | +- 基于 Git 的检查点系统 |
| 107 | +- 支持任务回滚 |
| 108 | +- 保护代码安全 |
| 109 | + |
| 110 | +## 开发工作流 |
| 111 | + |
| 112 | +1. **任务创建**: 用户通过 WebView 或命令面板创建任务 |
| 113 | +2. **API 对话**: Task 通过 API 与 AI 模型交互 |
| 114 | +3. **工具调用**: AI 决策后调用相应工具 |
| 115 | +4. **状态同步**: 结果同步回 WebView 显示 |
| 116 | +5. **任务完成**: 用户确认或继续迭代 |
| 117 | + |
| 118 | +## 扩展能力 |
| 119 | + |
| 120 | +- **多模型支持**: 支持20+种 AI 模型 |
| 121 | +- **多语言支持**: 国际化支持多种语言 |
| 122 | +- **模式系统**: 可自定义不同工作模式 |
| 123 | +- **云同步**: 支持云端状态同步 |
| 124 | +- **代码索引**: 语义搜索代码库 |
| 125 | + |
| 126 | +## 相关文档 |
| 127 | + |
| 128 | +- [命令执行流程](./02-command-execution-flow.md) |
| 129 | +- [上下文压缩机制](./03-context-compression.md) |
| 130 | +- [完整工作流程](./04-complete-workflow.md) |
| 131 | +- [目录结构详解](./05-directory-structure.md) |
| 132 | +- [代码库索引流程](./06-codebase-indexing.md) |
0 commit comments