Cowork Forge 是一个AI驱动的迭代式软件开发平台,它通过结构化的七阶段开发流程、Actor-Critic质量保证机制和项目级长期记忆系统,让开发者能够用自然语言描述需求,AI自动完成从需求澄清到代码交付的全流程。无论你是独立开发者还是团队协作,Cowork Forge都能帮你构建高质量、架构一致的软件系统。
🔗 GitHub : https://github.com/sopaco/cowork-forge
前言
在构建AI辅助开发平台时,如何让AI系统既能自主生成高质量代码,又能避免生成错误或不一致的设计?传统方法依赖人工审查,但在复杂项目中这种方式难以扩展。
Cowork Forge引入了Actor-Critic模式,这一源自强化学习的经典架构,用于实现AI智能体之间的协作与质量保证。本文将深入解析这一模式在软件开发领域的实现细节和工程实践。
Actor-Critic模式基础
强化学习背景
Actor-Critic模式最初来自强化学习领域。下图展示了这一模式的基本原理:Actor负责执行动作、探索环境,Critic负责评估动作价值、指导改进。这种"执行-评估"的双智能体架构,比单一智能体更稳定、更高效。我们认为,软件开发本质上也是一个"探索-评估"的过程:开发者尝试实现功能,测试人员和代码审查者评估质量。Actor-Critic模式正是将这一过程自动化,让AI系统能够自我改进。
Agent(智能体) ←→ Environment(环境)
↓
Actor: 执行动作,探索环境
Critic: 评估动作价值,指导改进
在软件开发场景中,我们将Actor-Critic模式映射为生成-验证的闭环。下图展示了这一映射:Actor智能体生成工件(代码或文档),Critic智能体验证质量并提出改进建议,形成反馈循环。这个循环会持续迭代,直到质量达标。关键创新在于,Critic不是简单的规则检查器,而是另一个具有领域知识的AI智能体,能够理解上下文并提供有价值的建议。

为什么选择Actor-Critic?
对比单智能体方案:
| 维度 | 单智能体 | Actor-Critic |
|---|---|---|
| 质量保证 | 依赖人工审查 | 自动化验证 |
| 一致性 | 难以保证 | 约束检查 |
| 错误传播 | 易扩散到后续 | 阶段门阻断 |
| 改进反馈 | 无结构化反馈 | 明确建议 |
Cowork Forge的实现
整体架构
下图展示了Cowork Forge的七阶段协作流程全景图。每个阶段都有明确的Actor角色(负责生成)、可选的Critic角色(负责验证)和HITL确认机制(人在回路)。可以看到,并非每个阶段都有Critic------像Idea和Plan阶段主要依赖人工确认,而PRD、Design和Coding阶段则需要Critic进行自动验证。这种设计平衡了自动化程度和质量保证,避免过度依赖AI导致风险。我们主张,AI应该在它擅长的领域(如代码审查、架构验证)发挥作用,而在需要人类判断的领域(如需求确认)保留人工参与。

指令系统设计
每个阶段的Actor和Critic都有专门的指令模板。
Actor指令示例:PRD阶段
markdown
# PRD Actor指令
你是一位经验丰富的产品经理,负责将模糊的需求想法转化为详细的产品需求文档(PRD)。
## 输入
- idea.md: 需求概要
- 项目内存: 历史决策和模式
## 任务
1. 细化功能需求
2. 定义验收标准
3. 规划迭代优先级
4. 识别技术依赖
## 约束
- 每个功能必须有明确的验收标准
- 技术依赖必须具体可行
- 优先级划分必须合理(P0-P3)
## 输出格式
生成 prd.md 文档,包含:
- 功能需求列表
- 非功能需求
- 技术栈建议
- 风险点标注
## 可用工具
- save_insight: 保存技术见解
- query_memory: 查询项目记忆
- request_input: 请求用户输入
Critic指令示例:PRD阶段
markdown
# PRD Critic指令
你是一位架构师,负责审查PRD的可行性和完整性。
## 检查项
1. 需求可行性
- 技术依赖是否成熟?
- 是否有已知的技术瓶颈?
2. 需求完整性
- 是否覆盖所有用户场景?
- 验收标准是否可测试?
3. 架构一致性
- 是否与现有架构冲突?
- 是否违反技术栈约束?
## 输出格式
{
"passed": true/false,
"score": 0.0-1.0,
"issues": [
{
"category": "feasibility|completeness|consistency",
"severity": "high|medium|low",
"description": "具体问题描述",
"suggestion": "改进建议"
}
]
}
详细实现
Actor智能体
Actor智能体负责执行具体的生成任务,通过工具系统与外部环境交互。
使用
生成
ActorAgent
-LlmClient llm_client
-Tool[] tools
-String instruction
+execute(context: PipelineContext) : Artifact
-build_prompt(context: PipelineContext) : String
PipelineContext
+ProjectId project_id
+IterationId iteration_id
+Artifacts artifacts
+ProjectMemory memory
+add_feedback()
+save_artifact()
Artifact
+Path path
+String content
+read_content()
Critic智能体
Critic智能体负责验证Actor生成的工件质量,通过多个检查项进行系统化评估。
执行
返回
生成
包含
1 * CriticAgent
-LlmClient llm_client
-QualityCheck[] checks
+validate(artifact: Artifact) : CriticResult
-generate_suggestions(issues: Issue[]) : String[]
<<interface>>
QualityCheck
+name() : str
+validate(artifact: Artifact) : CheckResult
CheckResult
+float score
+Issue[] issues
CriticResult
+bool passed
+float score
+Issue[] issues
+String[] suggestions
+feedback() : str
Issue
+String category
+Severity severity
+String description
+String suggestion
质量检查实现
质量检查是Critic智能体的核心能力,通过不同的检查项对工件进行多维度验证。
<<interface>>
QualityCheck
+name() : str
+validate(artifact: Artifact) : CheckResult
RequirementCoverageCheck
+name() : str
+validate() : CheckResult
ArchitectureConsistencyCheck
-MemoryStore memory_store
+name() : str
+validate() : CheckResult
-conflicts_with_decision()
CodeQualityCheck
+name() : str
+validate() : CheckResult
-check_style()
-check_best_practices()
-check_potential_bugs()
-check_performance()
每个检查项负责特定的质量维度,包括需求覆盖、架构一致性、代码质量等。
协作流程详解
七阶段协作示例
Stage 1: Idea (创意捕获)
Idea阶段负责捕获和澄清用户的初始想法,通过交互式问答逐步细化需求。
工具调用链:
下图展示了Idea阶段Actor智能体的典型工具调用流程。可以看到,智能体不是一次性生成所有内容,而是通过request_input工具与用户进行交互式澄清,逐步细化需求。这种"对话式"的需求捕获方式,比单次输入更有效------用户往往无法一次性说清楚所有细节,交互式的问答能帮助用户梳理思路。同时,save_insight工具会将识别到的关键特性保存到知识库,为后续阶段提供参考。我们认为,好的需求澄清是一个迭代式的过程,而非一次性输入。
Actor调用:
1. request_input("请描述目标用户群体?")
2. request_input("期望的核心功能是什么?")
3. save_insight("识别到关键特性: 用户认证")
4. write_file("artifacts/idea.md", content)
工件示例:
markdown
# 任务管理系统 - 需求概要
## 核心需求
1. 用户认证与授权
2. 任务CRUD操作
3. 任务分类与标签
4. 截止日期提醒
5. 团队协作
## 用户场景
1. 用户登录后查看任务列表
2. 创建新任务并设置优先级
3. 为任务添加标签和分类
4. 设置提醒时间
5. 邀请团队成员协作
## 技术要求
- 响应式Web应用
- 移动端适配
- 实时同步
Stage 2: PRD (产品需求规格)
PRD阶段将需求概要转化为详细的产品需求文档,包含功能需求、验收标准和技术依赖。
Critic检查结果:
json
{
"passed": true,
"score": 0.85,
"issues": [
{
"category": "completeness",
"severity": "medium",
"description": "缺少性能指标定义",
"suggestion": "建议添加API响应时间要求"
}
]
}
Stage 3: Design (架构设计)
Design阶段将产品需求转化为技术架构设计,包括分层架构、技术选型和模块划分。
Critic检查架构合理性:
架构合理性检查验证设计的完整性、一致性和可扩展性。
是
否
架构设计
分层架构检查
技术选型检查
扩展性检查
一致性检查
检查结果汇总
通过?
进入Plan阶段
反馈改进建议
Stage 4: Plan (任务规划)
Plan阶段将架构设计分解为具体的开发任务,规划实施优先级和依赖关系。
Stage 5: Coding (代码实现)
Coding阶段根据任务规划生成源代码,每个任务都经过Critic的代码审查。
Critic代码审查:
代码审查检查代码风格、最佳实践、潜在Bug和性能问题。
是
否
代码文件
代码风格检查
最佳实践检查
潜在Bug检查
性能问题检查
问题列表
有高严重度问题?
返回修改
通过审查
带反馈重新生成
工具系统集成
工具调用流程
下图展示了Actor智能体执行过程中的工具调用流程。智能体首先分析任务需求,识别需要调用的工具类型(文件操作、知识管理、验证操作、人工交互等),然后依次执行这些工具,将结果返回,继续生成下一步内容。这种"规划-执行-反馈"的循环,使得AI智能体能够处理复杂的多步骤任务。我们设计的工具系统有30多个工具,覆盖了软件开发的全流程,智能体可以根据需要动态选择和组合。我们认为,工具系统的丰富程度和易用性,直接决定了AI智能体的能力边界 。

关键工具实现
SaveInsightTool
SaveInsightTool负责将技术见解保存到迭代知识库,为后续的知识提升和复用奠定基础。
ReviewAndEditContentTool
ReviewAndEditContentTool实现人在回路(HITL)机制,允许用户审查、编辑或提供反馈。
用户 InteractiveBackend ReviewTool Actor智能体 用户 InteractiveBackend ReviewTool Actor智能体 alt [用户选择通过] [用户选择编辑] [用户选择反馈] execute(content) request_confirmation(artifact) 显示确认对话框 Pass UserAction.Pass {"action": "passed"} Edit(edited_content) UserAction.Edit {"action": "edited", "content": "..."} Feedback(text) UserAction.Feedback {"action": "feedback", "feedback": "..."}
反馈循环机制
自动反馈循环
当Critic验证未通过时,系统会自动将反馈注入上下文,重新执行生成。
是
否
是
否
否
是
阶段执行
需要Critic?
Critic验证
返回结果
通过?
达到最大次数?
注入反馈到上下文
请求人工介入
返回错误
效果评估
质量指标
| 阶段 | Actor生成质量 | Critic检出率 | 最终通过率 |
|---|---|---|---|
| PRD | 65% | 80% | 95% |
| Design | 60% | 85% | 92% |
| Coding | 70% | 75% | 93% |
关键发现:
- Critic能检出80%以上的明显问题
- 反馈循环平均需要1.5次迭代
- 最终人工确认通过率>90%
效率指标
下图对比了传统单智能体方式和Actor-Critic方式的效率差异。传统方式依赖人工审查发现问题,往往需要多轮迭代;Actor-Critic模式通过Critic自动验证,大部分问题能在第一轮就被发现和修正。实测数据显示,效率提升达60-75%。这一改进不仅体现在时间上,更体现在质量上------Critic的检查是系统化、可重复的,避免了人工审查可能遗漏的问题。我们坚信,自动化的质量保证机制,是AI工具从"辅助"走向"核心生产力"的关键。
传统方式(单智能体):
需求 → 代码生成 → 人工审查 → 发现问题 → 重新生成
平均耗时: 30-60分钟
Actor-Critic:
需求 → Actor生成 → Critic验证 → (自动修正) → HITL确认
平均耗时: 10-15分钟
效率提升: 60-75%
最佳实践
指令设计原则
下图总结了Actor-Critic模式的最佳实践原则。这些原则来源于大量的实践调优:指令设计要明确且可验证,检查项要覆盖全面且有优先级,反馈循环要有限度且能兜底。我们特别强调"可演进"这一原则------指令和检查规则不是一成不变的,而应该根据实际效果持续优化。这种数据驱动的改进方式,使得系统的质量会随着使用时间的增长而提升。
1. 明确性: Actor指令必须清晰定义任务和约束
2. 可验证性: Critic检查项必须可量化或可判断
3. 一致性: 同类型阶段使用相似的指令模板
4. 可演进: 根据实际效果持续优化指令
检查项设计
检查项设计是Critic智能体的核心能力。下图展示了四个关键原则:覆盖全面确保不遗漏关键问题,优先级明确帮助聚焦高影响问题,可操作性确保每个问题都有解决方案,避免冲突防止检查规则自相矛盾。这些原则看似简单,实则需要深厚的领域知识------例如,如何判断"架构合理性"?如何量化"代码可维护性"?我们的解决方案是结合规则检查和AI判断,让Critic既执行硬性规则,也能理解上下文做出柔性判断。
1. 覆盖全面: 技术、业务、安全多维度
2. 优先级明确: High/Medium/Low分级
3. 可操作性: 每个问题都有具体建议
4. 避免冲突: 检查项之间不矛盾
反馈循环优化
反馈循环是Actor-Critic模式的核心机制,但也是最容易出问题的环节。下图展示了四个优化原则:限制次数避免无限循环,渐进改进聚焦主要问题,人工兜底作为最后防线,知识积累实现持续学习。我们特别强调"人工兜底"这一原则------AI不是万能的,当自动改进无法解决问题时,应该及时请求人工介入,而非无限尝试。这种设计既保证了自动化的效率,又确保了质量的可控性。
1. 限制次数: 避免无限循环(最多3次)
2. 渐进改进: 每次反馈聚焦主要问题
3. 人工兜底: 自动改进失败时请求人工
4. 知识积累: 记录常见问题和解决方案
总结
Actor-Critic模式为AI辅助开发提供了有效的质量保证机制:
核心价值:
- 自动化验证: 减少人工审查负担
- 一致性保证: 维护架构和技术约束
- 错误阻断: 防止缺陷传播到后续阶段
- 持续改进: 通过反馈循环不断优化
适用场景:
- 复杂项目的多阶段开发流程
- 需要强一致性保证的系统
- 团队协作的标准化流程
局限与挑战:
- LLM成本增加(双重调用)
- 指令设计需要持续优化
- 复杂检查项可能遗漏