Skip to content

Repository files navigation

CodeFlow Agent

基于 DeepAgents 与 LangGraph 构建的本地 Coding Agent。它能够从自然语言需求出发,完成任务分类、Todo 规划、技术方案生成与人工确认、代码修改、测试验证、Git 提交以及 Gitee Pull Request 创建。

界面展示

以下截图来自本地真实运行记录,演示仓库信息已做脱敏处理。

需求分析、Todo 与方案确认

Agent 读取目标仓库后,结合现有代码结构生成 Todo、接口设计、测试策略、影响范围与风险说明;方案输出后等待用户确认,不会直接执行代码写入。

CodeFlow Agent 需求分析与技术方案

人工确认与测试验证

用户确认方案后,主 Agent 执行文件修改并返回变更清单与测试结果;截图中的两项新增接口测试均已通过。

CodeFlow Agent 人工确认与测试验证

代码修改与测试闭环

确认方案后,主 Agent 按计划完成文件修改、测试验证、Git 提交与分支交付。

CodeFlow Agent 代码修改与测试闭环

完整任务结果

端到端任务完成后,前端汇总 7/7 项 Todo、任务状态、分支与 PR 结果;公开截图已遮盖仓库和 PR 标识。

CodeFlow Agent 完整任务结果

核心能力

  • 端到端代码交付:需求理解 → 方案规划 → 人工确认 → 代码修改 → 测试 → Commit/Push → PR。
  • 多 Agent 协作:主 Agent 负责最终执行,只读分析子 Agent 负责代码分析、风险识别与建议。
  • 受控本地执行:自研 LocalShellBackend 提供 Windows 路径映射、文件工具、Shell 执行与工作区隔离。
  • 安全与恢复:危险命令拦截、敏感目录保护、Token 脱敏、工具参数清洗,以及基于用户确认消息的 Commit/Push/PR 交付范围校验。
  • 状态与可观测性:LangGraph Checkpoint 保存会话状态,业务 Store 保存线程、运行、事件和 PR 信息,SSE 实时推送执行过程。
  • Gitee 交付:使用 GIT_ASKPASS 注入凭据,避免 Token 出现在命令、日志与仓库配置中。

系统架构

flowchart LR
    UI[React Dashboard] -->|REST / SSE| API[FastAPI]
    API --> Runtime[Task Runtime]
    Runtime --> Main[Main Coding Agent]
    Main --> Analyst[Read-only Analysis Subagent]
    Main --> Tools[Web / Gitee / Review Tools]
    Main --> Backend[LocalShellBackend]
    Backend --> Workspace[Isolated Workspace]
    Runtime --> Checkpoint[(LangGraph Checkpoint)]
    Runtime --> Store[(Business Store)]
    Store -->|Run Events| UI
Loading

任务流程

sequenceDiagram
    participant U as User
    participant A as CodeFlow Agent
    participant W as Workspace
    participant G as Gitee

    U->>A: 提交自然语言开发需求
    A->>A: 分类任务并生成 Todo
    A-->>U: 输出技术方案并等待确认
    U->>A: 确认实施
    A->>W: 分析并修改代码
    A->>W: 执行测试与 Git 操作
    A->>G: Push 分支并创建 PR
    A-->>U: 返回修改摘要、测试结果与 PR 地址
Loading

项目结构

agent/
├─ api/             FastAPI 与 Dashboard 接口
├─ backends/        LocalShellBackend、路径与命令权限
├─ core/            任务运行、流式事件、Checkpoint 与中间件
├─ memory/          工作区长期记忆
├─ skills/          仓库分析与代码审查 Skills
├─ store/           SQLite 业务 Store
└─ tools/           Gitee、网页抓取、搜索与 Review 工具

scripts/            启动、基础验证与真实 Gitee E2E 脚本
ui/                 React + TypeScript Dashboard

快速开始

1. 环境要求

  • Windows 10/11
  • Python 3.14+
  • Node.js 22+
  • Git

2. 安装后端

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .
Copy-Item .env.example .env

编辑 .env,至少配置 DeepSeek API 和专用 Gitee 测试仓库的 Token。不要将真实 .env 提交到版本库。

3. 安装前端

cd ui
yarn install
cd ..

4. 启动

.\.venv\Scripts\python.exe scripts\start_all.py

启动后访问:

  • Dashboard:http://127.0.0.1:3000/agents
  • Backend Health:http://127.0.0.1:2024/health

验证

项目提供 18 个专项验证脚本,覆盖:

  • 任务分类与方案确认
  • 用户确认后的 Commit、Push 与 PR 交付权限边界
  • 流式文本、Todo、工具及子 Agent 事件
  • 中断任务恢复
  • 文件工具与中间件错误恢复
  • 工作区权限与 Gitee Token 脱敏
  • SQLite 并发读写(120 条事件写入场景)

基础验证不会调用模型或执行远程 Push:

.\.venv\Scripts\python.exe scripts\verify_backend.py

真实 Gitee E2E 会调用模型、修改测试仓库并创建 PR,请仅在专用测试仓库中运行:

.\.venv\Scripts\python.exe scripts\verify_gitee_e2e.py https://gitee.com/owner/repo.git

安全说明

  • Agent 只能在配置的工作区及允许的虚拟目录中读写。
  • 危险系统命令与敏感目录访问会被拒绝。
  • Gitee Token 通过环境变量和 GIT_ASKPASS 注入,并在日志与工具返回中脱敏。
  • 仓库默认不跟踪 .env、SQLite、日志、虚拟环境、依赖目录和构建产物。

已知限制

  • 当前版本面向 Windows 本地单机运行;SQLite 方案适合本地与低并发场景。
  • 代码交付链路当前以 Gitee 为目标平台。
  • 模型效果、运行耗时和费用取决于模型服务及目标仓库复杂度。

Acknowledgements

Dashboard 中的部分界面组件修改自 langchain-ai/open-swe,依据 MIT License 使用。完整版权与许可证文本见 THIRD_PARTY_NOTICES.md

About

A production-oriented Coding Agent workflow built with DeepAgents and LangGraph.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages