diff --git a/docs/cmd-code.md b/docs/cmd-code.md new file mode 100644 index 0000000..397e7b9 --- /dev/null +++ b/docs/cmd-code.md @@ -0,0 +1,138 @@ + + +# AI-Powered Issue to PR Workflow + +## 概述 +该流程通过 GitHub Issue 评论触发,自动创建分支、生成代码修改并提交 PR,全程由 AI 驱动。适用于自动化代码维护场景。 + +## 流程图 +```mermaid +graph TD + A[Issue Comment Event] --> B[创建工作空间] + B --> C[创建Git分支] + C --> D[创建初始PR] + D --> E[初始化Session] + E --> F[调用AI生成代码] + F --> G[解析结构化输出] + G --> H[更新PR内容] + H --> I[提交代码变更] +``` + +--- + +## 详细步骤 + +### 1. 初始化阶段 +| 步骤 | 操作 | 关键数据 | +|------|------|----------| +| 1.1 | 接收 GitHub Issue 评论事件 | `event *github.IssueCommentEvent` | +| 1.2 | 创建带 AI 模型信息的工作空间 | `ws := CreateWorkspaceFromIssueWithAI()` | +| 1.3 | 创建并推送 Git 分支 | `CreateBranch(ws)` | + +### 2. PR 准备阶段 +| 步骤 | 操作 | 关键方法 | +|------|------|----------| +| 2.1 | 创建初始 Pull Request | `CreatePullRequest(ws)` | +| 2.2 | 建立工作空间映射 | `MoveIssueToPR(ws, prNumber)` | +| 2.3 | 创建 Session 目录 | `CreateSessionPath()` | +| 2.4 | 注册工作空间 | `RegisterWorkspace(ws, pr)` | + +### 3. AI 交互阶段 +**Prompt 模板:** +```markdown +根据Issue修改代码: + +标题:{{issue_title}} +描述:{{issue_body}} + +输出格式: +### 改动摘要 +简要说明改动内容 + +### 修改内容 +- 列出修改的文件和具体变动 +``` + +| 关键控制点 | 说明 | +|------------|------| +| 重试机制 | `promptWithRetry(ctx, code, prompt, 3)` | +| 输出解析 | `parseStructuredOutput(aiStr)` | + +### 4. PR 内容生成 +**PR Body 结构:** +```markdown +### 改动摘要 +{{summary}} + +### 修改内容 +{{changes}} + +### 测试计划 +{{testPlan}} + +--- +
AI 完整输出 +{{raw_ai_output}} +
+ +
原始 Prompt +{{original_prompt}} +
+``` + +### 5. 代码提交阶段 +| 操作 | 方法 | 错误处理 | +|------|------|----------| +| 提交变更 | `CommitAndPush(ws, result, code)` | 自动回滚分支 | +| 最终状态 | 更新 PR URL 到日志 | `pr.GetHTMLURL()` | + +--- + +## 数据结构 +### Workspace 关键字段 +```go +type Workspace struct { + Path string // 工作目录路径 + Branch string // Git 分支名 + AIModel string // 使用的AI模型标识 + PRNumber int // 关联的PR编号 + SessionPath string // Session存储路径 + PullRequest *github.PullRequest +} +``` + +### ExecutionResult +```go +type ExecutionResult struct { + Output string // AI原始输出 + // ...其他审计字段 +} +``` + +--- + +## 错误处理策略 +1. **关键步骤失败**:立即终止流程并返回错误 + - 工作空间创建失败 + - 分支创建失败 + - AI 调用连续 3 次失败 + +2. **非关键错误**:记录后继续执行 + - 工作空间移动失败 + - 非阻塞性的文件操作错误 + +3. **错误信息展示**:自动在 PR Body 中标记错误段 + ```markdown + ## 错误信息 + ```text + {{error_details}} + ``` + ``` + +--- + +## 扩展能力 +1. **多模型支持**:通过 `aiModel` 参数指定不同 AI 引擎 +2. **自定义 Prompt**:可通过 `args` 注入额外指令 +3. **审计追踪**:保留完整的 AI 交互记录在 PR 中 + diff --git a/docs/cmd-continue.md b/docs/cmd-continue.md new file mode 100644 index 0000000..a954e1c --- /dev/null +++ b/docs/cmd-continue.md @@ -0,0 +1,94 @@ +## /continue + +1. handler.go: 读取模型参数和其余args,要是没读到模型参数就使用默认模型 +2. handler.go: 169行,执行ContinuePRWithArgsAndAI() +3. agent.go: 542, processPRWithArgsAndAI(xxx. "continue") +4. agent: 384, GetOrCreateWorkspaceForPRWithAI()*获取或创建 PR 工作空间,包含AI模型信息*, +5. agent:393, *拉取远端最新代码* +6. *获取所有PR评论历史用于构建上下文* +7. *构建包含历史上下文的 prompt* + +> ### 1. 初始化阶段 +> ```go +> var prompt string +> var taskDescription string +> var defaultTask string +> ``` +> 定义三个变量来存储最终结果和任务描述。 +> +> ### 2. 模式判断(switch 语句) +> 根据 `mode` 参数设置不同的任务描述: +> +> | 模式 | taskDescription | defaultTask | +> | ---------- | ------------------------------------------------------------ | -------------------------------- | +> | "Continue" | "请根据上述PR描述、历史讨论和当前指令,进行相应的代码修改。" | "继续处理PR,分析代码变更并改进" | +> | "Fix" | "请根据上述PR描述、历史讨论和当前指令,进行相应的代码修复。" | "分析并修复代码问题" | +> | 其他 | "请根据上述PR描述、历史讨论和当前指令,进行相应的代码处理。" | "处理代码任务" | +> +> ### 3. 提示词构建逻辑(双重条件判断) +> +> #### 条件1:是否有具体指令(args != "") +> - **有指令 + 有历史上下文**: +> ``` +> 作为PR代码审查助手,请基于以下完整上下文来[模式]: +> +> [历史上下文] +> +> ## 当前指令 +> [args] +> +> [taskDescription]注意: +> 1. 当前指令是主要任务,历史信息仅作为上下文参考 +> 2. 请确保修改符合PR的整体目标和已有的讨论共识 +> 3. 如果发现与历史讨论有冲突,请优先执行当前指令并在回复中说明 +> ``` +> +> - **有指令 + 无历史上下文**: +> ``` +> 根据指令[模式]: +> +> [args] +> ``` +> +> #### 条件2:是否有历史上下文(historicalContext != "") +> - **无指令 + 有历史上下文**: +> ``` +> 作为PR代码审查助手,请基于以下完整上下文来[模式]: +> +> [历史上下文] +> +> ## 任务 +> [defaultTask] +> +> 请根据上述PR描述和历史讨论,进行相应的代码修改和改进。 +> ``` +> +> - **无指令 + 无历史上下文**: +> ``` +> [defaultTask] +> ``` +> +> ## 逻辑流程图 +> +> ``` +> 开始 +> ↓ +> 设置 taskDescription 和 defaultTask(根据 mode) +> ↓ +> args != "" ? +> ├─ 是 → historicalContext != "" ? +> │ ├─ 是 → 构建完整提示词(包含历史上下文和当前指令) +> │ └─ 否 → 构建简单提示词(仅当前指令) +> └─ 否 → historicalContext != "" ? +> ├─ 是 → 构建基于历史上下文的提示词 +> └─ 否 → 使用默认任务描述 +> ↓ +> 返回构建好的 prompt +> ``` +> + +8. 执行AI处理;resp, err := a.promptWithRetry(ctx, codeClient, prompt, 3) agent.go : 435 + +9. *提交变更并更新 PR*, *Continue模式不返回错误,继续执行评论* + +10. 评论到 PR* \ No newline at end of file diff --git a/docs/design-doc.md b/docs/design-doc.md new file mode 100644 index 0000000..3866ef4 --- /dev/null +++ b/docs/design-doc.md @@ -0,0 +1,478 @@ +# CodeAgent 产品设计文档 + +## 1. 场景介绍 + +### 1.1 提高基于github合作的效率 + +用于自动化处理 GitHub PR 和issues的通用agent,可以回答问题并实现代码更改。基于webhook监听github仓库中的各类事件,并激活 agent 对不同事件处理的工作流。 + +- **Code Review** :分析 PR 更改并提出改进建议 +- **Code Implementation** :可以实现简单的修复、重构,甚至新功能 +- **PR/Issue Integration**:与 GitHub 评论和公关评论无缝协作 + +### 1.2 支持大量用户接入使用(交由AIGC部门主要负责“api.qnnaigc.com”) + +需要面向内部大规模使用,但 LLM 的官方api_key是有限的,无法为每个人提供一个官方的api_key。我们希望设计一个AI Gateway(AI网关/账号池),为每个人分发一个内部账号,该账号会通过AI Gateway映射到一个可用的api_key + +#### 基础功能 + +- **多账户管理**: 可以添加多个Claude账户自动轮换 +- **自定义API Key**: 给每个人分配独立的Key +- **使用统计**: 详细记录每个人用了多少token + +#### 高级功能 + +- **智能切换**: 账户出问题自动换下一个 +- **性能优化**: 连接池、缓存,减少延迟 +- **监控面板**: Web界面查看所有数据 +- **安全控制**: 访问限制、速率控制、客户端限制 +- **代理支持**: 支持HTTP/SOCKS5代理 + +## 1. 产品概述 + +### 1.1 CodeAgent 是什么 + +CodeAgent 是一个基于 AI 的代码代理系统,专门为 GitHub 开发流程设计。它能够: + +- **自动处理 GitHub Issue 和 Pull Request**:通过 Webhook 监听 GitHub 事件,自动响应开发者的指令 +- **智能代码生成和修改**:利用 AI 模型(Claude、Gemini)理解需求并生成代码 +- **无缝集成开发流程**:直接在 GitHub 界面中通过评论触发,无需切换工具 +- **基于 Git Worktree 的工作空间管理**:为每个任务创建独立的工作环境,确保代码隔离 + +### 1.2 工作机制 + +CodeAgent 的工作机制如下: + +1. **事件监听**:通过 GitHub Webhook 监听 Issue 评论、PR 评论等事件 +2. **命令解析**:解析评论中的特定命令(如 `/code`、`/continue`、`/fix`) +3. **工作空间创建**:基于 Git Worktree 为每个任务创建独立的工作环境 +4. **AI 处理**:调用 AI 模型(Claude/Gemini)理解需求并生成代码 +5. **代码提交**:自动将生成的代码提交到 Git 仓库并创建/更新 PR +6. **结果反馈**:在 GitHub 界面中展示处理结果 + +#### 1.2.1 自动化前后对比 + +**传统开发流程**: +```mermaid +graph TD + A[开发者] --> B[手动创建 Issue] + B --> C[手动分析需求] + C --> D[手动编写代码] + D --> E[手动测试] + E --> F[手动创建 PR] + F --> G[手动代码审查] + G --> H[手动合并代码] + + I[开发者] --> J[手动创建 Issue] + J --> K[手动分析需求] + K --> L[手动编写代码] + L --> M[手动测试] + M --> N[手动创建 PR] + N --> O[手动代码审查] + O --> P[手动合并代码] + + Q[开发者] --> R[手动创建 Issue] + R --> S[手动分析需求] + S --> T[手动编写代码] + T --> U[手动测试] + U --> V[手动创建 PR] + V --> W[手动代码审查] + W --> X[手动合并代码] + + style A fill:#ff9999 + style I fill:#ff9999 + style Q fill:#ff9999 +``` + +**CodeAgent 自动化流程**: +```mermaid +graph TD + A[开发者] --> B[批量创建多个 Issue] + B --> C[CodeAgent 自动监听] + C --> D[并行处理多个任务] + + D --> E[任务1: 自动分析需求] + D --> F[任务2: 自动分析需求] + D --> G[任务3: 自动分析需求] + + E --> H[任务1: AI 生成代码] + F --> I[任务2: AI 生成代码] + G --> J[任务3: AI 生成代码] + + H --> K[任务1: 自动测试] + I --> L[任务2: 自动测试] + J --> M[任务3: 自动测试] + + K --> N[任务1: 自动创建 PR] + L --> O[任务2: 自动创建 PR] + M --> P[任务3: 自动创建 PR] + + N --> Q[并行代码审查] + O --> Q + P --> Q + + Q --> R[自动合并代码] + + style A fill:#99ff99 + style C fill:#99ccff + style D fill:#99ccff + style R fill:#99ff99 +``` + +**核心流程示例**: +``` +开发者评论 "/code 实现用户登录功能" +→ CodeAgent 创建独立工作空间 +→ 调用 AI 生成代码 +→ 自动提交到新分支 +→ 创建 PR 并展示结果 +``` + +### 1.3 当前功能 + +- 支持 Claude 和 Gemini 两种 AI 模型 +- 基于 Git Worktree 的工作空间管理 +- GitHub Webhook 集成和签名验证 +- Docker 容器化执行环境 +- 自动代码生成和 PR 创建 +- 支持 `/code`、`/continue`、`/fix` 等命令 +- 历史评论上下文理解 +- 自动清理过期工作空间 + +## 2. 竞品分析 + +### 与 Claude Code 和 Gemini-Cli 的横向对比 + +| 功能特性 | CodeAgent | Claude Code | Gemini-Cli | +|---------|-----------|-------------|------------| +| **集成方式** | GitHub Webhook | 本地 CLI | 本地 CLI | +| **工作空间管理** | Git Worktree | 本地目录 | 本地目录 | +| **多模型支持** | Claude + Gemini | 仅 Claude | 仅 Gemini | +| **自动化程度** | 全自动 | 半自动 | 半自动 | +| **成本控制** | 计划支持 | 无 | 无 | +| **负载均衡** | 计划支持 | 无 | 无 | +| **API 接口** | 计划支持 | 无 | 无 | +| **监控统计** | 计划支持 | 无 | 无 | +| **团队协作** | GitHub 集成 | GitHub 集成,但prompt黑盒 | 本地使用 | +| **部署复杂度** | 中等 | 简单 | 简单 | + +**CodeAgent 优势**: +- **团队协作友好**:直接集成 GitHub,支持团队协作 +- **自动化程度高**:从代码生成到 PR 创建全自动 +- **扩展性强**:支持多模型、负载均衡、成本控制等高级功能 + +**CodeAgent 劣势**: +- **部署复杂度**:需要配置 Webhook 和服务器 +- **学习成本**:需要了解 GitHub 集成流程 +- **依赖外部服务**:需要 GitHub 和 AI 服务商 + + +## 3. 当前问题分析 + +### 3.1 技术架构问题 + +1. **AI 模型支持有限**: + - 仅支持 Claude 和 Gemini + - 缺乏对新 AI 模型的快速接入能力 + - 没有统一的模型接口标准 + +2. **成本控制不足**: + - 无法根据任务类型智能选择最经济的 AI 模型 + - 缺乏用量统计和成本分析 + - 没有预算控制机制 + +3. **账号管理简单**: + - 仅支持单一账号配置 + - 缺乏多账号池管理 + - 没有账号状态监控和故障转移 + +4. **API 接口缺失**: + - 仅支持 GitHub Webhook 触发 + - 缺乏标准化的 API 接口 + - 无法被其他系统集成 + +5. **Workflow 流程固化**: + - 当前 prompt 和流程写死在代码中 + - 缺乏灵活的工作流配置 + - 无法根据项目需求定制流程 + +### 3.2 业务功能问题 + +1. **任务分类不智能**: + - 无法区分编码任务和非编码任务 + - 缺乏针对不同任务类型的优化策略 + - 没有成本效益分析 + +2. **负载均衡缺失**: + - 无法在多个 AI 模型间智能分配任务 + - 缺乏基于用量和成本的负载均衡 + - 没有故障自动切换机制 + +3. **监控运维不足**: + - 缺乏详细的用量统计 + - 没有成本监控和告警 + - 缺乏性能指标监控 + +## 4. 产品目标 + +### 4.1 总体目标 + +将 CodeAgent 从一个简单的 GitHub 代码代理,扩展为一个功能完整的 AI 服务代理平台,为开发者提供统一的、智能的、成本优化的 AI 服务接口。 + +### 4.2 具体目标 + +#### 目标 1:支持 Classfile 编码 +**背景**:当前 CodeAgent 仅支持通用语言的代码生成,缺乏Classfile DSL的支持。 + +**目标**:扩展 AI 模型支持,增加对 Classfile 等特殊格式的编码能力。 + +**实现思路**: +- 设计统一的编码接口,支持多种文件格式 +- 为不同 AI 模型实现编码适配器 +- 提供编码格式转换和验证功能 + +#### 目标 2:融合 CLI 支持 +**背景**:当前所有任务都使用相同的 AI 模型,无法根据任务类型和成本要求进行优化。 + +**目标**:智能选择最适合的 CLI 工具来处理不同类型的任务,优化成本和性能。 + +**实现思路**: +- 建立任务分类体系(编码任务 vs 非编码任务) +- 设计 CLI 选择算法,考虑成本、性能、质量等因素 +- 实现动态 CLI 切换和故障转移 + +#### 目标 3:多渠道账号池管理 +**背景**:当前仅支持单一账号配置,缺乏多账号管理和故障转移能力。 + +**目标**:统一管理多个 AI 服务商的账号,包括账号状态监控、用量统计、负载均衡等功能。 + +**实现思路**: +- 设计账号池管理架构,支持多服务商、多账号 +- 实现账号状态监控和自动故障转移 +- 提供账号用量统计和成本分析 + +#### 目标 4:账号池账号的 AccessToken 有效性维持 +**背景**:AI 服务商的 AccessToken 会过期,需要手动更新,影响服务可用性。 + +**目标**:自动监控和刷新 AccessToken,确保服务持续可用。 + +**实现思路**: +- 实现 Token 有效性检测机制 +- 设计自动刷新流程 +- 提供 Token 轮换和备份策略 + +#### 目标 5:账号池账号状态/用量查询 +**背景**:缺乏对账号状态和用量的实时监控,无法及时发现问题和优化使用。 + +**目标**:实时监控账号状态和用量,提供详细的统计和分析。 + +**实现思路**: +- 设计监控指标体系 +- 实现实时状态查询和用量统计 +- 提供可视化监控界面 + +#### 目标 6:对外提供 OpenAI 范式 API +**背景**:当前仅支持 GitHub Webhook 触发,无法被其他系统集成。 + +**目标**:提供标准化的 OpenAI 兼容 API 接口,支持 API Key 认证、QPS 限制、用量统计等功能。 + +**实现思路**: +- 设计 OpenAI 兼容的 API 接口 +- 实现 API Key 管理和认证 +- 提供 QPS 限制和用量统计 + +#### 目标 7:API 提供 QPS 限制,用量,费用预估 +**背景**:缺乏对 API 使用的限制和成本控制。 + +**目标**:为 API 提供完整的限制、监控和成本控制功能。 + +**实现思路**: +- 设计 QPS 限制和配额管理 +- 实现实时用量统计和费用预估 +- 提供成本告警和预算控制 + +#### 目标 8:转发 API 请求时,负载均衡账号用量 +**背景**:无法在多个账号间智能分配请求,可能导致某些账号过载而其他账号闲置。 + +**目标**:基于账号用量、成本、性能等因素进行智能负载均衡,确保资源的最优利用。 + +**实现思路**: +- 设计负载均衡算法,考虑用量、成本、性能等因素 +- 实现动态负载分配和故障转移 +- 提供负载均衡策略配置 + +#### 目标 9:Workflow 流程引擎 +**背景**:当前 prompt 和流程写死在代码中,缺乏灵活性,无法根据项目需求定制。 + +**目标**:设计可配置的工作流引擎,支持自定义 prompt 和流程。 + +**实现思路**: +- 设计 Workflow 配置格式,支持 YAML/JSON 配置 +- 实现可插拔的 prompt 模板系统 +- 支持条件分支和循环流程 +- 提供 Workflow 版本管理和回滚功能 + + +## 5 AI 智能网关竞品分析 + +### 5.1.1 CC Replay (Claude Code Router) + +**产品定位**:基于 Claude Code 的路由器,支持多模型切换和负载均衡 + +**核心功能**: +- 多 Claude 账号管理 +- 智能路由和负载均衡 +- 成本控制和用量统计 +- 故障自动切换 + +**与 CodeAgent 对比**: +- **相似点**:都支持多账号管理和负载均衡 +- **差异点**:CC Replay 专注于 Claude,CodeAgent 支持多模型 +- **优势**:CC Replay 更专注于单一模型优化 +- **劣势**:缺乏 GitHub 集成和团队协作功能 + +### 5.1.2 Qiniu AIGC API + +**产品定位**:七牛云提供的统一 AI 服务 API 网关 + +**核心功能**: +- 多 AI 模型统一接口 +- 智能路由和负载均衡 +- 成本控制和用量统计 +- 高可用和故障转移 + +**与 CodeAgent 对比**: +- **相似点**:都提供统一的 AI 服务接口 +- **差异点**:Qiniu AIGC 是通用 API 网关,CodeAgent 专注于代码生成 +- **优势**:Qiniu AIGC 更通用,支持更多 AI 模型 +- **劣势**:缺乏 GitHub 集成和代码生成优化 + +### 5.1.3 Claude Router + +**产品定位**:开源的 Claude API 路由和负载均衡工具 + +**核心功能**: +- Claude API 路由 +- 多账号负载均衡 +- 简单的成本控制 +- 故障切换 + +**与 CodeAgent 对比**: +- **相似点**:都支持多账号管理和负载均衡 +- **差异点**:Claude Router 更轻量,专注于路由功能 +- **优势**:Claude Router 更简单易用 +- **劣势**:功能相对简单,缺乏高级特性 + +### 5.2 市场定位分析 + +**CodeAgent 的差异化优势**: + +1. **GitHub 原生集成**:唯一深度集成 GitHub 的 AI 代码代理 +2. **团队协作导向**:支持团队协作和代码审查流程 +3. **全流程自动化**:从需求到代码到 PR 的全自动流程 +4. **多模型智能选择**:支持多种 AI 模型并智能选择最优方案 + +**目标用户群体**: +- **开发团队**:需要 AI 辅助代码生成的团队 +- **开源项目**:需要自动化代码贡献的项目 +- **企业开发**:需要标准化 AI 代码生成流程的企业 + +## 6. 最终交付产品 + +### 6.1 产品形态 + +CodeAgent 将从一个 GitHub 代码代理,扩展为一个完整的 AI 服务代理平台,包含以下核心组件: + +1. **AI 服务网关**:统一的 API 入口,支持多种 AI 模型 +2. **账号池管理系统**:多账号、多服务商的统一管理 +3. **智能负载均衡器**:基于成本、性能、用量的智能分配 +4. **监控分析平台**:用量统计、成本分析、性能监控 +5. **Workflow 引擎**:可配置的工作流系统 +6. **GitHub 集成模块**:保持原有的 GitHub 集成能力 + +### 6.2 核心功能 + +#### 6.2.1 统一 AI 服务接口 +- **OpenAI 兼容 API**:提供标准的 OpenAI 格式 API +- **多模型支持**:支持 Claude、Gemini 等多种 AI 模型 +- **智能路由**:根据任务类型和成本要求智能选择模型 + +#### 6.2.2 智能账号管理 +- **多账号池**:支持多个 AI 服务商的账号管理 +- **自动故障转移**:账号故障时自动切换到备用账号 +- **Token 自动刷新**:自动监控和刷新过期的 AccessToken + +#### 6.2.3 成本优化系统 +- **智能 CLI 选择**:根据任务类型选择最经济的 AI 模型 +- **成本监控**:实时监控用量和成本 +- **预算控制**:设置预算限制和告警 + +#### 6.2.4 负载均衡系统 +- **多维度负载均衡**:基于用量、成本、性能的智能分配 +- **动态调整**:根据实时情况动态调整负载分配 +- **故障恢复**:自动检测故障并恢复服务 + +#### 6.2.5 监控分析平台 +- **实时监控**:API 调用量、响应时间、错误率等指标 +- **成本分析**:详细的成本统计和分析报告 +- **性能优化**:基于监控数据的性能优化建议 + +#### 6.2.6 Workflow 引擎 +- **可配置流程**:支持 YAML/JSON 配置工作流 +- **模板系统**:可插拔的 prompt 模板 +- **条件分支**:支持复杂的条件判断和分支流程 +- **版本管理**:Workflow 版本控制和回滚功能 + +### 6.3 技术架构 + +![流程图](./流程图.png) + +### 6.4 用户价值 + +1. **降低 AI 使用成本**:通过智能选择和负载均衡,显著降低 AI 服务使用成本 +2. **提高开发效率**:统一的 API 接口,简化 AI 服务集成 +3. **增强系统可靠性**:多账号管理和故障转移,提高服务可用性 +4. **优化资源利用**:智能负载均衡,最大化资源利用效率 +5. **保持开发体验**:继续支持 GitHub 集成,保持原有的开发体验 +6. **灵活定制能力**:Workflow 引擎支持根据项目需求定制流程 + +## 7. Workflow 设计 + +### 7.1 当前流程分析 + +CodeAgent 目前有以下固定的流程: + +1. **Issue 处理流程**: + - 解析 `/code` 命令 + - 创建工作空间 + - 生成代码 + - 创建 PR + - 更新 PR Body + +2. **PR 继续流程**: + - 解析 `/continue` 命令 + - 获取历史上下文 + - 继续开发 + - 提交代码 + - 添加评论 + +3. **PR 修复流程**: + - 解析 `/fix` 命令 + - 分析问题 + - 修复代码 + - 提交修复 + - 添加评论 + + + +### 7.2 Workflow 优势 + +1. **灵活性**:支持自定义流程和 prompt +2. **可扩展性**:易于添加新的步骤和模板 +3. **可维护性**:配置与代码分离,便于维护 +4. **可测试性**:每个步骤可以独立测试 +5. **版本控制**:支持 Workflow 版本管理和回滚 + +通过 Workflow 引擎,CodeAgent 将从一个固定的代码生成工具,转变为可配置的、灵活的 AI 开发助手,能够根据不同的项目需求和团队偏好进行定制。 + + diff --git a/docs/flowchart.png b/docs/flowchart.png new file mode 100644 index 0000000..e8c5b47 Binary files /dev/null and b/docs/flowchart.png differ