22
33[ English] ( README.md ) | 简体中文
44
5- AgentFlowDesk 是一个 ** local-first 的 AI Coding Agent 任务工作台与上下文管理器 ** 。
5+ AgentFlowDesk 是一个 ** local-first 的 AI Coding Agent 工作流管理器 ** 。
66
7- 它不是新的聊天机器人,也不是新的大模型封装层,而是给 Claude Code、Codex CLI、Cursor、Gemini CLI、OpenCode 等 AI Coding Agent 提供一层更工程化的工作流管理能力。
7+ 它 ** 不是 ** Claude Skill、不是 MCP Server、不是 IDE 扩展、不是浏览器插件,也不是新的聊天机器人。它是一个运行在本地的 Python CLI,位于你的 AI Coding Agent 外层,用来管理 Agent 工作前后的工程流程:
88
9- 它帮助开发者把一次性的 AI 对话,变成可拆分、可追踪、可复盘、可复用的工程流程:
9+ ``` text
10+ 任务 → Context Pack → Agent 指令文件 → Agent 命令 → 日志 + Diff + 检查结果 → Review Report
11+ ```
1012
11- - 在把需求交给 Agent 前,先拆成结构化任务
12- - 为每个任务生成紧凑的 ** Context Pack**
13- - 导出到 ` AGENTS.md ` 、` CLAUDE.md ` 、Cursor Rules、Codex instructions、` GEMINI.md `
14- - 调用本地 Agent 命令,并记录 prompt、日志、diff、检查结果和 review report
15- - 避免 AI Agent 工作过程散落在多个聊天窗口里,难以追踪和复盘
13+ 简单说:AgentFlowDesk 会为 Claude Code、Codex CLI、Cursor、Gemini CLI、OpenCode 等工具准备干净的任务上下文,然后记录这次给了 Agent 什么、执行了什么、改了什么、测试结果如何,以及最后是否需要人工 review。
1614
17- > 当前状态:v0.1.0 MVP,CLI 优先。Web 任务板会在核心流程稳定后再做。
15+ > 当前状态:v0.1.0 MVP,CLI 优先。MVP 不需要启动服务器。 Web 任务板会在核心流程稳定后再做。
1816>
1917> CI 说明:测试 workflow 会在 Python 3.10、3.11、3.12 上验证安装流程,以及 Context Pack / export / run 的核心路径。
2018
21- ## 为什么做这个项目
19+ ## 它到底是什么?
2220
23- AI Coding Agent 已经很强,但实际使用时仍然有很多操作层痛点:
21+ AgentFlowDesk 是一个给已经在使用 AI Coding Agent 的开发者准备的 ** 本地 Python 命令行工具 ** 。
2422
25- 1 . ** 上下文需要反复复制和重写** :每次都要重新解释项目结构、文件作用、编码风格、验收标准。
26- 2 . ** 结果难以复盘** :Agent 改完代码后,prompt、日志、diff、测试命令、人工验收状态往往分散在不同地方。
27- 3 . ** 并行任务很麻烦** :想让多个 Agent 或多个分支同时跑任务,需要手动准备目录、分支、上下文和检查命令。
28- 4 . ** 成功经验难以沉淀** :一次效果很好的 prompt 或任务拆解,很难变成下次可复用的 workflow。
29- 5 . ** 不同 Agent 工具割裂** :Claude Code、Codex、Cursor、Gemini 等工具的指令文件和上下文组织方式不同,用户缺少统一管理层。
23+ 它给这些 Agent 加了一层工程化工作流:
3024
31- AgentFlowDesk 的目标是把:
25+ - ** 任务管理器** :把需求拆成带目标、相关文件、备注和验收标准的小任务。
26+ - ** Context Pack 生成器** :为每个任务生成可复现的 prompt 上下文包。
27+ - ** 指令文件导出器** :从同一份任务上下文导出 ` AGENTS.md ` 、` CLAUDE.md ` 、Cursor Rules、Codex instructions、` GEMINI.md ` 。
28+ - ** 命令包装器** :可选地调用你本机已经安装好的 Agent CLI。
29+ - ** 运行记录器** :把 prompt、stdout、stderr、git diff、检查结果和 review report 保存到 ` .agentflow/ ` 。
3230
33- ``` text
34- 一次性聊天窗口
31+ 它本身 ** 不提供模型能力** 。除非你明确配置 ` --command ` ,否则它不会主动调用 Claude、Codex、OpenCode、Gemini 或其他远程服务。
32+
33+ ## 兼容哪些工具?
34+
35+ AgentFlowDesk 的兼容方式有两种:
36+
37+ 1 . ** 文件型上下文** :把任务上下文导出为常见 Agent 指令文件,给对应工具读取,或者人工复制粘贴。
38+ 2 . ** 命令包装器模式** :运行任意本地 CLI 命令,并把 ` {prompt} ` 替换为当前任务生成的 Context Pack 路径。
39+
40+ | 工具 | 当前支持情况 | 用法 |
41+ | ---| ---| ---|
42+ | Claude Code | 支持 | 导出 ` CLAUDE.md ` ,或者在你的 Claude Code CLI 支持 stdin 时使用 ` claude < {prompt} ` 。 |
43+ | Codex CLI | 支持 | 导出 ` AGENTS.md ` 和 ` .codex/instructions.md ` ,或者用 ` {prompt} ` 包装你本地安装的 Codex 命令。 |
44+ | OpenCode | 支持,通用 CLI 模式 | 导出 ` AGENTS.md ` / 使用生成的 ` context-pack.md ` ,或者在你的 ` opencode ` 命令支持 prompt 文件或 stdin 时用命令包装器调用。专用 preset 后续补。 |
45+ | Cursor | 支持,文件导出模式 | 导出 ` .cursor/rules/agentflow.mdc ` ,然后在项目里正常使用 Cursor。 |
46+ | Gemini CLI | 支持 | 导出 ` GEMINI.md ` ,或者用命令包装器调用本地 Gemini CLI。 |
47+ | 其他 Coding Agent CLI | 通常支持 | 只要这个工具能读 prompt 文件、读 stdin,或者支持项目级指令文件,就可以接入。 |
48+
49+ 这里的“兼容”指的是 ** 工作流层兼容** ,不是官方插件协议。不同 Agent CLI 的命令参数可能会变化,所以 AgentFlowDesk 的核心设计保持通用:你决定具体命令,AgentFlowDesk 负责提供 ` {prompt} ` 并记录运行过程。
50+
51+ ## 安装
52+
53+ ### 环境要求
54+
55+ - Python 3.10+
56+ - 推荐安装 Git,用于捕获 diff
57+ - 可选:Claude Code、Codex CLI、OpenCode、Gemini CLI 或其他本地 Agent CLI
58+
59+ ### 从源码安装
60+
61+ ``` bash
62+ git clone https://github.com/OracleNep/AgentFlowDesk.git
63+ cd AgentFlowDesk
64+ python -m venv .venv
65+ source .venv/bin/activate # Windows: .venv\Scripts\activate
66+ python -m pip install -U pip
67+ python -m pip install -e .[dev]
3568```
3669
37- 变成 :
70+ 验证安装 :
3871
39- ``` text
40- 任务 → Context Pack → Agent Run → Diff + Checks → 人工 Review → 可复用 Workflow
72+ ``` bash
73+ agentflow --help
74+ pytest -q
4175```
4276
43- ## 快速开始
77+ ## 怎么部署 / 怎么启动?
78+
79+ MVP 版本没有后台服务,也没有 Web Server,所以不需要 ` docker compose up ` 或 ` npm run dev ` 。
4480
45- 在项目根目录安装并初始化 :
81+ 所谓“部署”,就是把 CLI 安装好,然后在你要使用 AI Agent 的代码仓库里初始化 :
4682
4783``` bash
48- python -m pip install -e .
49- agentflow init --name MyProject --description " Demo project using AI coding agents"
84+ cd /path/to/your/project
85+ agentflow init --name MyProject --description " Project managed with AI coding agents"
86+ ```
87+
88+ 初始化后会在当前项目下生成:
89+
90+ ``` text
91+ .agentflow/
92+ config.json
93+ tasks.json
94+ runs.json
95+ context/
96+ runs/
5097```
5198
52- 创建一个任务:
99+ AgentFlowDesk 默认只写本地 ` .agentflow/ ` 目录,不会主动上传你的代码或 prompt。
100+
101+ ## 基础工作流
102+
103+ ### 1. 创建任务
53104
54105``` bash
55106agentflow task create \
@@ -68,13 +119,25 @@ agentflow task list
68119agentflow task show AF-20260613-001
69120```
70121
71- 生成 Context Pack:
122+ ### 2. 生成 Context Pack
72123
73124``` bash
74125agentflow context build AF-20260613-001
75126```
76127
77- 导出给不同 Agent 使用:
128+ 生成目录:
129+
130+ ``` text
131+ .agentflow/context/<task-id>/
132+ task-brief.md
133+ agent-instructions.md
134+ commands.md
135+ environment.md
136+ relevant-files.md
137+ context-pack.md
138+ ```
139+
140+ ### 3. 导出给不同 Agent 使用
78141
79142``` bash
80143agentflow export AF-20260613-001 \
@@ -86,7 +149,19 @@ agentflow export AF-20260613-001 \
86149 --force
87150```
88151
89- 运行一个 Agent 命令或普通本地命令:
152+ 导出目标:
153+
154+ | Target | 输出文件 |
155+ | ---| ---|
156+ | ` agents ` | ` AGENTS.md ` |
157+ | ` claude ` | ` CLAUDE.md ` |
158+ | ` cursor ` | ` .cursor/rules/agentflow.mdc ` |
159+ | ` codex ` | ` .codex/instructions.md ` |
160+ | ` gemini ` | ` GEMINI.md ` |
161+
162+ ### 4. 执行命令并记录结果
163+
164+ 先用安全的本地命令试跑:
90165
91166``` bash
92167agentflow run AF-20260613-001 \
@@ -95,7 +170,25 @@ agentflow run AF-20260613-001 \
95170 --check " pytest -q"
96171```
97172
98- ` {prompt} ` 会被替换为当前任务生成的 Context Pack 路径。
173+ 如果你的 Claude Code CLI 支持 stdin,可以这样接:
174+
175+ ``` bash
176+ agentflow run AF-20260613-001 \
177+ --agent claude-code \
178+ --command " claude < {prompt}" \
179+ --check " pytest -q"
180+ ```
181+
182+ 如果要接 OpenCode,可以先用通用命令包装器:
183+
184+ ``` bash
185+ agentflow run AF-20260613-001 \
186+ --agent opencode \
187+ --command " opencode < {prompt}" \
188+ --check " pytest -q"
189+ ```
190+
191+ 如果你的 Agent CLI 使用的是 ` --prompt-file ` 、` --file ` 、` run ` 、` exec ` 等其他参数,直接替换 ` --command ` 即可。` {prompt} ` 永远会被 AgentFlowDesk 替换为生成的 ` context-pack.md ` 路径。
99192
100193运行后会生成:
101194
@@ -108,87 +201,19 @@ agentflow run AF-20260613-001 \
108201 review-report.md
109202```
110203
111- ## 核心概念
112-
113- ### Task
114-
115- Task 是最小的 Agent 工作单元。它描述“这次要让 Agent 做什么”。
116-
117- 示例:
118-
119- ``` yaml
120- title : Add SARIF ruleId support
121- goal : Modify the SARIF reporter so each finding has a stable ruleId.
122- files :
123- - src/reporters/sarif.py
124- acceptance :
125- - Unit tests pass
126- - No unrelated files changed
127- agent :
128- preferred : claude-code
129- ` ` `
130-
131- 一个好的 Task 应该尽量包含:
132-
133- - 明确目标
134- - 相关文件或目录
135- - 验收标准
136- - 额外注意事项
137- - 推荐使用的 Agent
138-
139- ### Context Pack
140-
141- Context Pack 是按任务生成的上下文包,核心目标是减少重复复制粘贴,并让每次 Agent Run 都可复现。
142-
143- 它包含:
144-
145- - 任务说明
146- - Agent 操作规则
147- - 项目命令
148- - 文件树
149- - Git 状态
150- - 相关文件摘录
151- - 合并后的 ` context-pack.md`
152-
153- 生成目录:
154-
155- ` ` ` text
156- .agentflow/context/<task-id>/
157- task-brief.md
158- agent-instructions.md
159- commands.md
160- environment.md
161- relevant-files.md
162- context-pack.md
163- ` ` `
164-
165- # ## Export Target
166-
167- AgentFlowDesk 可以把同一个任务上下文导出为多个工具常用的指令文件:
168-
169- | Target | 输出文件 |
170- |---|---|
171- | `agents` | `AGENTS.md` |
172- | `claude` | `CLAUDE.md` |
173- | `cursor` | `.cursor/rules/agentflow.mdc` |
174- | `codex` | `.codex/instructions.md` |
175- | `gemini` | `GEMINI.md` |
176-
177- 这样你可以用同一份任务上下文,在不同 AI Coding Agent 之间切换。
178-
179- # ## Run
204+ ## 为什么做这个项目
180205
181- Run 表示某个任务的一次执行尝试。它会记录 :
206+ AI Coding Agent 已经很强,但实际使用时仍然有很多操作层痛点 :
182207
183- - 本次传给 Agent 的 prompt
184- - stdout / stderr
185- - Git diff
186- - 检查命令结果
187- - Review Report
208+ 1 . ** 上下文需要反复复制和重写 ** :每次都要重新解释项目结构、文件作用、编码风格、验收标准。
209+ 2 . ** 结果难以复盘 ** :Agent 改完代码后,prompt、日志、diff、测试命令、人工验收状态往往分散在不同地方。
210+ 3 . ** 并行任务很麻烦 ** :想让多个 Agent 或多个分支同时跑任务,需要手动准备目录、分支、上下文和检查命令。
211+ 4 . ** 成功经验难以沉淀 ** :一次效果很好的 prompt 或任务拆解,很难变成下次可复用的 workflow。
212+ 5 . ** 不同 Agent 工具割裂 ** :Claude Code、Codex、Cursor、Gemini 等工具的指令文件和上下文组织方式不同,用户缺少统一管理层。
188213
189- 这让每次 Agent 修改都可以被复盘,而不是只留下一段聊天记录 。
214+ AgentFlowDesk 的目标是把一次性 Agent 会话变成可 review 的工程产物 。
190215
191- # # 示例工作流
216+ ## 示例 Review 流程
192217
193218``` bash
194219agentflow init
@@ -201,11 +226,7 @@ agentflow task create \
201226 --acceptance " public CLI behavior remains unchanged"
202227
203228agentflow export AF-20260613-001 --target claude --force
204-
205- # 使用你偏好的 Agent,或者用命令包装器调用:
206229agentflow run AF-20260613-001 --command " claude < {prompt}" --check " pytest -q"
207-
208- # 查看本次运行报告:
209230cat .agentflow/runs/* /review-report.md
210231```
211232
@@ -240,7 +261,7 @@ AgentFlowDesk 默认只在项目本地 `.agentflow/` 目录下保存数据,不
240261
241262### 2. 不替代 Agent,只管理 Agent 工作流
242263
243- AgentFlowDesk 不试图替代 Claude Code、Codex、Cursor、Gemini 等工具。
264+ AgentFlowDesk 不试图替代 Claude Code、Codex、Cursor、Gemini、OpenCode 等工具。
244265
245266它做的是这些工具之上的工程化管理层:
246267
0 commit comments