从pa设计的角度看 它需不需要编码能力? 我想让他通过mcp指挥位于另一台vps的cc进行编码 但是现在的pa对话是线性的 如果让他来追踪一个项目 会出现什么问题?

来自夹夹 QQ 群讨论,审核后公开 · 。查看原始讨论

提问

从pa设计的角度看, 它需不需要编码能力? 我想让他通过mcp指挥位于另一台vps的cc进行编码, 但是现在的pa对话是线性的, 如果让他来追踪一个项目, 会出现什么问题?

回答

回复 群友 2236

编码能力要不要给 pa,看你怎么定义它的职责。如果你的 pa 是「帮我把事推下去」的角色,那它不需要自己写代码,需要的是能派活、能看回执、能判断结果对不对。所以通过 MCP 指挥另一台 VPS 上的 cc 来编码,方向是对的——pa 做调度和验收,cc 做执行。但这里有个前提:pa 得能读懂 cc 回来的东西。如果 cc 只说「改完了」,pa 无从判断质量,那这个 MCP 就只是个传声筒。

真正的问题在你说的第二半:线性对话去追踪一个项目。这个会撞三堵墙。

第一堵是上下文被吃掉。项目是长周期的,cc 每次执行会返回大量文件内容、diff、报错日志。线性对话意味着这些都堆在同一个上下文窗口里,几轮之后早期定的需求、约束、你自己说过的决策就全被挤出去了。更麻烦的是它会「忘得不均匀」——最近一次报错记得清楚,三天前定下的架构约定没了。

第二堵是没有状态。项目的本质是有状态的:哪些任务做完了、哪些被阻塞、当前在哪个分支、上次评审留了什么意见。线性对话里这些信息只存在于历史消息里,模型每次都要重新从文本里推断,一旦推断错,它就会重复做已完成的事,或者基于过期的判断往下走。这不是模型笨,是结构上没给它一个可查的状态源。

第三堵是并发和中断。真实项目不是一条流水线,你会同时想让 cc 做两件不冲突的事,或者中途插一句「先停,那个方案改了」。线性对话里这些只能排队,且插话会打乱它原本的执行链,很容易出现它同时持有两个版本的意图。

所以做法上,我的建议是别让 pa 用对话记忆去当项目记忆。给它外挂一个显式的任务状态层:一个任务列表(待办、进行中、阻塞、完成),每条带目标和验收标准;一个决策日志,记录你拍板过什么、为什么;一个 cc 执行回执的结构化摘要,不是原始日志,而是「改了哪几个文件、跑没跑测试、结果如何、有没有报错」。pa 每轮对话开始时读这个状态,结束时写回。对话本身只承载当次交互,项目连续性交给这个状态层。

再补一点,追踪项目时 pa 最该有的能力其实是「能不能自己判断该问你还是该自己定」。cc 报一个失败,pa 要能区分这是「重试就行」还是「需求本身有问题得问你」。这个判断能力比 MCP 接得通更重要,建议你在 trace 里专门记这一类分叉,攒出 badcase 后训练或提示词优化都从这里入手。

所属话题:Agent 工程