Pro Collaboration Controller

Pro Collaboration Controller

让 Codex 不只完成一步,而是把整个任务推进到结果

你只需要告诉 Codex 最终要什么,不需要自己管理中间每一步。

Codex 很擅长写代码、研究问题、修改文件和处理具体任务。

但任务一旦变复杂,你往往还是需要自己做很多“管理工作”:

  • 判断下一步应该做什么;
  • 把大任务拆成几个阶段;
  • 检查结果有没有遗漏;
  • 要求它修改不合格的部分;
  • 重新解释前面已经发生了什么;
  • 在不同工作之间传递上下文;
  • 决定什么时候继续,什么时候停止;
  • 长任务隔一段时间后,再回来重新接上。

Pro Collaboration Controller 把这部分工作交给 Codex 自己管理。

你负责告诉 Codex:

我要什么。

Controller 负责让 Codex持续知道:

现在做到哪里、什么已经确认、还有什么没解决、接下来唯一该做什么。


一个目标进去,Codex 自己组织过程

最简单的用法不需要学习任何新概念。

你可以直接说:

把这个功能做完,包括检查和修复。

或者:

研究这个问题,最后给我一个可靠结论。

或者:

继续推进这个项目,直到遇到真正需要我决定的事情。

然后 Controller 会根据任务复杂度决定接下来需要什么。

一个简单任务可能只是:

理解目标 → 完成工作 → 检查结果 → 交付

一个复杂任务可能变成:

分析 → 实现 → 测试 → 发现问题 → 修订 → 再检查 → 交付

一个研究任务可能是:

确定问题 → 查已有工作 → 推导 → 找反例 → 复核 → 收敛结论

这些流程不需要你提前设计。

你给目标,Codex 自己组织完成路径。


你不再需要当 Codex 的项目经理

没有 Controller 时,复杂任务很容易变成:

你提要求 → Codex 做一步 → 你看结果 → 决定下一步 → 再告诉 Codex → 再检查 → 再纠正……

真正消耗精力的,往往不是每一步本身,而是中间这些协调工作。

Controller 的目标就是把它变成:

你提出总目标 → Codex持续推进 → 真正需要你时再回来

也就是说,你不需要反复告诉它:

  • “现在继续下一步。”
  • “前面这个已经做过了。”
  • “不要再走刚才失败的路线。”
  • “把这个结果交给下一步。”
  • “先检查一下是不是对的。”
  • “如果不行就修改一次。”
  • “别重新研究已经解决的问题。”

这些都应该成为 Controller 的工作。


简单任务保持简单

Controller 不会把每一个请求都变成庞大的 AI 工作流。

普通任务默认走最短路径:

理解任务 → 完成 → 检查 → 返回结果

如果第一次结果已经满足要求,就结束。

它不会为了“自动化”而自动制造:

  • 很多角色;
  • 很多对话;
  • 多轮审查;
  • 大量搜索;
  • 复杂任务卡;
  • 长链交接;
  • 无限修改。

只有当任务真的需要时,它才升级。

例如:

  • 第一次结果没有达到要求;
  • 出现互相冲突的结论;
  • 关键约束被遗漏;
  • 需要独立验证;
  • 需要判断已有研究是否已经解决问题;
  • 工作需要跨较长时间继续;
  • 当前能力不足以可靠完成任务。

复杂度由问题决定,而不是由 Controller 的存在决定。


Codex 会一直知道“现在在哪里”

长任务最大的麻烦之一,是状态会逐渐丢失。

做了几十步以后,真正重要的信息可能只剩几件:

  • 哪些事实已经确认;
  • 哪些工作已经完成;
  • 哪些路线已经证明走不通;
  • 现在还有什么没解决;
  • 下一步究竟是什么。

Controller 会持续维护这部分状态。

它不会把整个历史无限堆积,而是尽量保留:

已接受的事实
未解决的问题
关键证据
失败路线及失败原因
当前唯一下一步

所以任务越长,Controller 的价值通常越明显。

它的作用不是单纯“记住更多东西”。

而是:

记住真正影响下一步的东西。


不再反复搬运整段上下文

传统的长任务很容易出现一个问题:

每进入下一阶段,就把前面的完整历史再塞进去一次。

结果往往是:

  • 已解决的问题被重新讨论;
  • 旧错误再次出现;
  • 新任务被大量无关内容淹没;
  • 上下文越来越长;
  • 实际有效信息却没有同比增加。

Controller 默认只把下一步真正需要的信息带过去。

例如一个实现任务完成以后,后面的检查阶段不一定需要重新知道最初几十轮讨论的全部内容。

它可能只需要知道:

我们要实现什么
已经改了什么
验收标准是什么
目前哪里最值得检查

这种上下文压缩,让 Codex 更像是在维护一个持续运行的工作状态,而不是不断重新阅读聊天记录。


长期研究不会反复从头开始

对于数学、技术研究、架构设计这类长期任务,Controller 还会维护已经检查过的研究范围。

如果问题没有变化:

复用已有结论。

如果只有一部分变化:

只检查变化部分。

只有出现真正的新情况时才重新展开搜索,例如:

  • 研究对象改变;
  • 关键假设改变;
  • 原路线失败;
  • 出现新的命题;
  • 需要确认一个新的创新性声明;
  • 旧结论已经不足以支持当前判断。

它不会因为任务持续了很久,就定期把同一个问题再搜一遍。

目标不是“搜索更多”。

而是:

只在新信息可能改变决策时重新搜索。


它会检查结果,而不是只负责继续

自动推进并不等于不断往前跑。

Controller 每完成一个阶段,都需要判断结果属于哪一种情况:

接受
修改
停止
换路线
交给下一步

例如:

如果实现已经满足验收条件,就不需要再制造额外工作。

如果结果基本正确但漏了一项要求,可以只修一次。

如果路线本身错误,就应该停止,而不是在错误方向上继续追加工作。

如果当前信息不足以判断,也不应该假装已经完成。

所以 Controller 的目标不是:

让 Codex 做更多步骤。

而是:

让 Codex做尽可能少、但足够完成目标的步骤。


真正需要额外能力时,Codex 可以自己组织

有些任务一个执行过程就能完成。

有些任务则可能需要:

  • 独立复核;
  • 第二种推理路线;
  • 外部搜索;
  • 更强的模型能力;
  • 不同上下文中的独立判断;
  • 专门工具;
  • 延迟一段时间后重新检查状态。

这些都应该是 Controller 根据任务需要调用的能力。

用户不需要提前知道背后具体用了几个模型、几个对话或者什么内部角色。

对用户而言,仍然只是:

我把任务交给 Codex。

只有当这些执行细节会影响费用、隐私、授权或最终结论时,Controller 才需要把它们暴露出来。


如果你拥有 ChatGPT Pro,复杂思考会优先交给它

对于高级任务,Controller 会在宿主环境支持且数据边界允许时,把用户已有的 ChatGPT Pro 当作默认的高质量推理资源,而不是等 Codex 失败后才使用。Controller 优先追求复杂任务的完成质量,节省 Codex token 只是次级收益。

例如:

  • 让 Pro 起草复杂计划、完成主体研究或长推理;
  • 让 Codex 联网搜索、修改文件、运行测试并检查现实证据;
  • 在关键结论无法直接验证时,让第二个 Pro 从不同角色攻击它;
  • 只有两个角色在一个明确争点上仍冲突时,才让第三个 Pro 做限定裁决。

这不是“整个任务只调用一次 Pro”。长期任务每出现一个新的、会改变下一步的复杂认知问题,都可以调用一个新的 Pro 工作单元;已经接受且问题没有变化的结论会直接复用。

但这是 Controller 的执行方式,不是用户使用产品前必须理解的概念。

你不需要先知道:

“这个任务是不是应该用 Pro?”

也不需要决定:

“应该开几个 Pro?”

你仍然只需要说:

把这个任务做完。

Controller 会自动判断当前阶段是由 Codex 直接执行,还是交给一个或多个有明确分工的 Pro。

如果产品明确显示这个账户没有 Pro,或 Pro 的周/计划额度已经达到硬上限,Controller 会在同一个 ChatGPT Chat 界面中选择当前最强、且能够被产品证据唯一确认的非 Pro 模型继续。它会明确告诉你这是“非 Pro”结果,并记录界面选项标签和实际观察到的模型标签。临时限流、网络错误、界面加载失败或状态不清楚不会触发降级;它也不会偷偷改用 API、Work、Codex、额外付费额度或其他服务。你也可以在任务中明确要求 Pro-only,此时无法使用 Pro 就停止。


自动推进,但不会偷偷替你做决定

Controller 可以自动处理已经授权范围内的工作,但不会把“自动化”理解成无限授权。

如果一个新的步骤会改变重要边界,例如:

  • 产生额外费用;
  • 使用新的外部服务;
  • 把数据发送到新的地方;
  • 切换到明显不同的执行方式;
  • 做不可逆操作;
  • 需要新的用户判断;

它应该回来询问你。

它的原则是:

能在已有授权里继续,就继续。
需要新授权,就停下来问。


长任务可以稍后继续,但不会重复执行

有些任务需要等待:

  • 一个长时间运行的操作完成;
  • 一个结果产生;
  • 一个外部状态发生变化;
  • 稍后再回来检查。

如果宿主环境支持,Controller 可以利用完成事件或 Scheduled Task 在之后重新检查任务状态。

但这种“唤醒”只用于:

观察已经发生了什么,并决定下一步。

它不会因为重新醒来,就再次发送原任务。

如果当前状态不明确,它会停止,而不是冒险重复执行。

这能避免长任务里最危险的一类自动化错误:

同一件事被做两遍。


工具做不到时,它会明确停下来

Controller 不会假装拥有不存在的能力。

能够直接完成的步骤,它直接完成。

只能通过浏览器完成的步骤,在能力允许时再通过浏览器完成。

如果某一步当前确实无法自动完成,它会明确告诉你:

哪里被阻塞
为什么不能继续
你需要做什么

而不是伪造:

  • “已经发送”;
  • “已经完成”;
  • “已经验证”。

自动化的前提是现实能力,而不是流程图看起来完整。


Codex 的结果仍然需要证据

Controller 能让工作组织得更好,但它不会把一次模型输出自动包装成事实。

一个结果是否可信,仍然取决于任务本身需要什么证据。

例如:

代码可能需要测试。

数学结论可能需要证明。

研究结论可能需要来源。

架构决策可能需要约束和反例检查。

Controller 的作用是确保这些验收步骤真正发生,而不是用一句:

“AI 已经确认。”

来代替它们。


什么时候最有价值?

它特别适合那些:

不是做一步,而是需要持续推进到完成的任务。

例如:

  • 完成一个软件功能并测试;
  • 修复一个复杂 bug;
  • 重构一个代码库;
  • 研究一个技术问题;
  • 推进数学证明;
  • 做文献和已有工作检查;
  • 设计系统架构;
  • 比较多个方案并作出决策;
  • 持续推进一个长期项目;
  • 对重要结果进行独立验证。

如果只是问:

Python 怎么把字符串转成整数?

直接让 Codex 回答就够了。

但如果是:

把这个模块重构掉,保持兼容,补测试,检查有没有遗漏,完成后告诉我。

这就是 Controller 真正开始有价值的地方。


你不需要学习 Controller

理想情况下,用户甚至不需要经常想到它的存在。

你不需要学习:

  • 工作流 DSL;
  • YAML;
  • task ID;
  • role ID;
  • 哈希;
  • 内部状态机;
  • 对话调度协议;
  • 上下文交接格式。

这些属于内部实现和高级审计能力。

普通使用应该仍然像使用 Codex 一样简单。

你只需要说:

把这个做完。

检查完再交给我。

继续推进,只有真正需要我决定的时候再问。

研究清楚以后给我最终结论。

剩下的组织工作交给 Controller。


一句话理解

Codex 原本很擅长完成工作。

Pro Collaboration Controller 让 Codex 也开始管理工作。

你告诉它最终要什么。

它负责记住状态、安排下一步、检查结果、必要时调用更多能力,并把复杂任务持续推进到完成。


用真实运行数据继续变好

公共版包含一个最小化、OAuth 保护的遥测旁路。安装插件本身不等于同意遥测;只有用户单独打开遥测设置或明确要求连接时,才会出现一次清楚的同意页。普通任务结束时不会突然弹出 OAuth。不需要注册额外账号,也不需要提供邮箱、密码或付款信息。

同意后,每个根任务只有在最终结果和验收依据已经冻结时,Controller 才会自动尝试发送一次开始记录和一次立即提交。它只发送粗粒度任务类型、路由、Pro/搜索/修复次数、枚举结果码和耗时,用来发现路由、可靠性与延迟问题。

它不会发送 prompt、回答、推理、文件、路径、URL、账号信息、对话 ID、具体模型标签、候选模型列表、限额原文或重置时间。遥测失败、被拒绝或未连接时,主任务照常完成;不会重试、排队或以后补传。用户可以断开连接,也可以调用 telemetry.delete_my_data 删除当前匿名主体的活动数据和令牌。详见 Privacy notice。

如果任务需要调用 ChatGPT Pro、浏览器、搜索、外部连接器或其他工具,Controller 只在宿主产品实际提供相应能力且授权边界允许时使用;各服务的数据处理仍受其自身条款和隐私政策约束。


Public documents

Publisher: Eli Brad
Project brand: knockknock-hoho