| type | agent_context |
|---|---|
| project | cowork-forge |
| title | Agent Architecture Context |
| source | . |
Cowork Forge 是 AI 原生的多 Agent 软件开发平台:内置 PM、架构师、项目经理、工程师等 10+ 角色 Agent,通过 7 阶段流水线(Idea→PRD→Design→Plan→Coding→Check→Delivery)将自然语言想法转化为可交付软件。消费方包括独立开发者(CLI 自动化)、技术团队(标准化迭代与记忆继承)、以及偏好可视化监督的 GUI 用户。
核心约束:本地优先(数据驻留本机)、人在回路(HITL) 关键门控、Actor-Critic 自优化、工作区沙箱与路径校验、LLM 全局限流(30 req/min)。双入口(CLI/GUI)共享 cowork-core 域逻辑,配置驱动 Agent/Stage/Flow。
六边形架构(端口-适配器):cowork-core 为纯域核心;cowork-cli 与 cowork-gui 为入站适配器;LLM、文件系统、Shell、外部 Agent 为出站适配器。
| 容器/层 | 职责 | 主要路径 |
|---|---|---|
| cowork-core | 域模型、流水线编排、ADK Agent、工具、持久化 | crates/cowork-core/src/ |
| cowork-cli | clap 命令入口、终端 HITL | crates/cowork-cli/src/ |
| cowork-gui 前端 | React 交互、状态、流式展示 | crates/cowork-gui/src/ |
| cowork-gui 后端 | Tauri 命令/事件桥接、进程管理 | crates/cowork-gui/src-tauri/src/ |
| 配置层 | JSON 驱动的 Agent/Stage/Flow 定义 | crates/cowork-core/src/config_definition/ |
| 交互端口 | InteractiveBackend trait 抽象 CLI/GUI |
crates/cowork-core/src/interaction/ |
依赖流向:CLI/GUI → Pipeline Controller → StageExecutor → adk-rust(LoopAgent + LlmAgent)→ Tools → LLM/FS/Shell。GUI 采用 invoke 请求 + emit 事件 非对称通信。
| 模块 | 职责 | 主要路径 |
|---|---|---|
| Domain | Project/Iteration/Memory 聚合、继承模式、状态机 | crates/cowork-core/src/domain/ |
| Pipeline | 7 阶段编排、Stage trait、StageExecutor | crates/cowork-core/src/pipeline/ |
| Tools | 40+ ADK 工具(文件/工件/验证/控制/HITL) | crates/cowork-core/src/tools/ |
| Agents | 外部编码 Agent、迭代助手、遗留分析器 | crates/cowork-core/src/agents/ |
| Instructions | 各阶段 Actor/Critic 提示词库 | crates/cowork-core/src/instructions/ |
| Config Definition | Agent/Stage/Flow 注册表与校验 | crates/cowork-core/src/config_definition/ |
| Persistence | JSON 文件存储(项目/迭代/记忆) | crates/cowork-core/src/persistence/ |
| Interaction | HITL 抽象(消息/确认/流式) | crates/cowork-core/src/interaction/、cli.rs |
| ACP | Agent Client Protocol 外部 Agent 集成 | crates/cowork-core/src/acp/ |
| Importer | 遗留项目导入与分析 | crates/cowork-core/src/importer/ |
| Skills | agentskills.io 标准技能管理 | crates/cowork-core/src/skills/ |
| GUI | 桌面 UI、Runner、预览、配置面板 | crates/cowork-gui/src/、src-tauri/ |
- 用户通过 CLI/GUI 创建项目并提交想法
- Pipeline Controller 初始化
PipelineContext,IterationStore 创建 Draft 迭代 - 按 Flow 配置顺序执行 7 阶段:StageExecutor 构建 adk-rust Agent(Actor-Critic LoopAgent)
- 每阶段产出工件(markdown/代码)写入
.cowork-v2/iterations/{id}/ - HITL 门(Idea/PRD/Design/Plan/Coding)经
InteractiveBackend等待用户通过/编辑/反馈 - 完成后更新迭代状态,Knowledge Gen 提取跨迭代记忆
- 基于已完成迭代创建 Evolution 迭代,选择继承模式(None/Full/Partial)
- 变更范围分析决定工件/代码继承范围
- 流水线从指定阶段继续,Actor 可见前序 Critic 反馈(
IncludeContents::Default) - Critic 通过工具加载 artifact 审查(
IncludeContents::None),调用exit_loop或provide_feedback控制循环
- CLI/GUI 触发 import 命令
legacy_project_analyzerAgent 扫描代码库、检测技术栈- ArtifactGenerator 反向生成 PRD/Design 等文档
- 注册为 Cowork 项目,纳入迭代管理体系
- Coding 阶段可选启用
ExternalCodingAgent(配置coding_agent.enabled) - 通过 ACP 协议调用外部 CLI Agent(OpenCode、Claude CLI、Gemini CLI 等)
CoworkClient实现 ACP 服务端,约束工作区路径- 流式消息经
AgentMessage通道回传 GUI/CLI
- 语言/运行时:Rust 2024 edition、Tokio 异步
- AI 编排:adk-rust 1.0(LoopAgent、LlmAgentBuilder、Tool trait、EventActions)
- LLM:OpenAI 兼容 API(adk-model openai feature)、自定义 RateLimiter(信号量 + 2s 延迟)
- 外部 Agent:agent-client-protocol 0.9(ACP)
- CLI:clap 4、dialoguer、colored
- GUI:Tauri 2、React 18、Ant Design、Vite、Zustand hooks
- 持久化:JSON + serde 文件存储(无数据库)
- 配置:TOML(
config.toml)+ JSON 数据驱动 Agent/Flow - 安全:路径校验、命令白名单、工作区沙箱、
runtime_security.rs - 文档:Litho docs(
litho.docs/)、Terrain 知识资产(.terrain/)
| 边界 | 类型 | 说明 |
|---|---|---|
| LLM Provider API | 外部出站 | OpenAI 兼容端点;30 req/min 限流;API Key 来自 config/env |
| 本地文件系统 | 信任域内 | 项目工作区、.cowork-v2/ 迭代数据、用户 config 目录 |
| Shell/子进程 | 受限出站 | 构建/测试/开发服务器;命令清理与白名单 |
| MCP 服务器 | 可选出站 | Tavily 搜索、DeepWiki 文档等第三方能力扩展 |
| 外部编码 Agent | 可选出站 | ACP 协议;工作区路径强制校验 |
| Tauri 系统 API | 平台集成 | 托盘、文件对话框、进程管理、静态预览服务器 |
| 用户 | 入站 | CLI 命令或 GUI 交互;HITL 确认/编辑/反馈 |
信任边界:cowork-core 不直接依赖 UI;所有用户交互经 InteractiveBackend。文件工具禁止访问工作区外路径。
配置路径:macOS ~/Library/Application Support/CoworkCreative/config.toml;GUI 配置 com.cowork-forge.app/config/。
| 概念 | 位置 | 备注 |
|---|---|---|
| 项目/迭代聚合 | crates/cowork-core/src/domain/ |
Project、Iteration、Memory、InheritanceMode |
| 流水线控制器 | crates/cowork-core/src/pipeline/mod.rs |
PipelineContext、阶段转换 |
| 阶段执行器 | crates/cowork-core/src/pipeline/stage_executor.rs |
连接 Stage 与 adk-rust |
| 7 阶段实现 | crates/cowork-core/src/pipeline/stages/ |
idea/prd/design/plan/coding/check/delivery |
| 默认 Flow | crates/cowork-core/src/config_definition/default_configs/flows/default.json |
7 阶段顺序定义 |
| 内置 Agent 配置 | crates/cowork-core/src/config_definition/default_configs/agents/built-in/ |
Actor/Critic JSON |
| ADK 工具集 | crates/cowork-core/src/tools/ |
artifact/control/file/validation 等 |
| Actor-Critic 指令 | crates/cowork-core/src/instructions/ |
各阶段 prompt 库 |
| HITL 交互端口 | crates/cowork-core/src/interaction/cli.rs |
InteractiveBackend 实现 |
| 外部 Agent ACP | crates/cowork-core/src/acp/client.rs |
CoworkClient、路径校验 |
| 外部编码封装 | crates/cowork-core/src/agents/external_coding_agent.rs |
ACP 流式任务 |
| JSON 持久化 | crates/cowork-core/src/persistence/ |
ProjectStore、IterationStore、MemoryStore |
| CLI 命令 | crates/cowork-cli/src/commands/ |
init/iter/import/config 等 |
| GUI Tauri 命令 | crates/cowork-gui/src-tauri/src/commands/ |
runner/pm/preview/file 等 |
| GUI 前端组件 | crates/cowork-gui/src/components/ |
项目/迭代/聊天/配置面板 |
| 运行时检测 | crates/cowork-core/src/project_runtime.rs |
技术栈/预览类型识别 |