优先级排序 + 探索发现:先做哪个,与如何不只走老路

优先级解决「先做哪个」,探索解决「敢不敢走没走过的路」——Module D 收官。

Module D · 第 4 讲

立靶:两个让人栽跟头的盲区

Module D 一路拆了不少设计模式。今天收官,补上两个最容易被忽略、却最影响 Agent 实战表现的模式——优先级排序(Prioritization)探索与发现(Exploration and Discovery)

它们盲在哪?因为不像「工具调用」那样有明确的 API 形态,而是藏在 Agent 的决策层:面前摆着一堆能做的事,先动哪个手?已知路径走不通,要不要往没走过的方向探一探?这两个问题答错,Agent 不会报错崩溃,只会「忙活半天、跑偏方向」——这是最贵的失败。

先看反面,把靶子立清楚。没有优先级的 Agent:眉毛胡子一把抓。用户一句话塞了五个诉求,它从第一个顺序处理;后台来了十条待办,它按到达顺序排队。结果是被低价值任务带跑——花 80% 算力在「顺手但不重要」的事上,真正卡住全局的阻塞项排在第八位迟迟没碰。不会探索的 Agent:只走老路。给它开放式问题——「排查这个偶发 bug」「调研这个新方向值不值得做」——它沿最显眼的已知路径走到底,走不通就停,输出一句「未找到相关信息」。它不会主动生成假设,不会想「会不会是另一个我还没看的模块」。一个关于怎么选,一个关于敢不敢往未知走

框架一:优先级排序——先做哪个

优先级排序的本质,是 Agent 在多个候选任务/子目标/请求之间,用显式维度算出一个执行顺序,而不是按到达顺序或随机处理。核心是四个维度,有判断次序:

维度问什么在排序里的角色
依赖关系这件事被别的事卡着吗?做完它能解锁什么?硬约束,优先于一切——被阻塞的不能先做,能解锁多项的优先做
紧急度多久内必须完成?deadline 多近?时间轴排序,临期上浮
重要度做了对总目标贡献多大?价值排序,决定「值不值得现在做」
成本收益投入多少?产出多少?同级别里的效率裁决,高 ROI 先做

实战判断次序:先解依赖(拓扑排序)→ 再看紧急与重要的组合 → 同档内用成本收益裁决。依赖是硬约束(顺序错了后面全白做);紧急×重要是经典艾森豪威尔矩阵;成本收益是同格子里并列时的最后一刀:

优先级紧急×重要四象限:紧急且重要立刻做 / 紧急不重要委托 / 不紧急重要排计划 / 都不沾砍掉
优先级紧急×重要四象限:紧急且重要立刻做 / 紧急不重要委托 / 不紧急重要排计划 / 都不沾砍掉
重要不重要
紧急立刻做(active)快速处理或委托,别占主线
不紧急排进计划、别遗忘能砍就砍,别让它占资源

要点明一个常被混淆的边界:优先级 ≠ 调度。优先级回答「选哪个」(从候选集挑下一个动手的),调度回答「同时做几个」(并发度、WIP 上限、何时切换)。两者配合:优先级排出队列顺序,调度按 WIP 限制从队头取任务。

框架二:探索与发现——敢不敢走没走过的路

探索模式解决:在未知或开放的解空间里,Agent 主动去试没走过的路径,而不是只沿已知最优反复打转。核心张力一句话——exploration vs exploitation

Exploration(探索)Exploitation(利用)
做什么试新假设、新路径、新区域沿当前已知最优继续深挖
赌的是可能有更好的解还没被发现当前这条路收益确定
风险花预算却一无所获困在局部最优,错过更好的
偏向时机信息不足、解空间大、屡屡碰壁信息充分、已找到够好的、预算将尽

什么任务必须靠探索撑着?三类典型:研究型任务(答案不在某个固定文档里,要主动撒网)、找 bug / 排障(偶发问题、根因不明,要列多个怀疑点逐一验证)、开放式问题求解(没有标准答案,靠生成多个候选再筛)。探索的运转是一个不轻易停的循环:生成假设 → 验证 → 看结果调整方向 →(覆盖不够就)再生成新假设。关键纪律是覆盖度优先,不轻易停——不会探索的 Agent 验证完第一个假设失败就收手,会探索的 Agent 会问「我还有哪些区域没看过」,在预算耗尽前持续扩大覆盖。

Case:同一个任务,两个模式怎么协同

任务:「线上偶发 500 错误,排查并修复,今天下班前要有结论。」

优先级先介入,把任务拆开排序:依赖——要先定位才能修,「定位」阻塞「修复」,定位排第一;紧急——有 deadline,主线锁定这件事,其他后台请求降级;重要——线上错误影响用户,落在「紧急且重要」象限 → active;成本收益——定位先看日志(低成本高信息),而不是一上来就压测。

探索接管「定位」这一步——根因不明,正是开放解空间:生成假设(A 上游超时 / B 连接池打满 / C 边界输入),不只验 A 而是三个都列出、按成本先验最便宜的;验证 A 失败 → 不停手转向 B(NEVER STOP 的纪律);覆盖度优先——在下班前这个固定预算内尽量把怀疑面扫一遍。优先级决定「现在主线是定位这个 bug」,探索决定「定位时不止盯一个怀疑点」:一个管做哪件,一个管这件事内部怎么不走死胡同。

织进本课

优先级 ↔ Module C「边界与 feature list」。 Module C 定了 WIP=1 和「选 feature 算法」——那个「选 feature 算法」本质就是优先级排序,WIP=1 本质就是调度。features.json 的依赖字段是依赖维度,feature 业务价值是重要度,这一讲的四维矩阵就是把当时那条算法显式化、可复用化。优先级是「选哪个 active」,WIP 是「同时几个 active」,Module C 早就用上了,今天才给它正名。

探索 ↔ harness 的 autoresearch「NEVER STOP」+ Module A 任务路径。 harness 方法论里的 autoresearch 范式:固定预算内让 Agent 不停跑、单一标量打分、tsv 记账、NEVER STOP——这正是探索模式的工程落地(「固定预算」对应预算约束,「NEVER STOP」对应覆盖度优先不轻易停,每轮一个新假设就是一次 exploration)。所以优先级和探索从来不是新东西,是前面几讲那些具体做法背后的通用名字。给它们命名的价值,是让你下次遇到新场景能主动调用,而不是每次重新发明。

可操作做法

优先级:① 让 Agent 显式输出排序理由(先列候选、标四维、再给顺序);② 依赖关系先建图,能拓扑排序就拓扑排序,被阻塞的标灰绝不先碰;③ deadline/SLA 作为硬上浮信号;④ 区分优先级和 WIP,排好队再按 WIP 从队头取,别混成一锅;⑤ 低价值任务要有显式丢弃机制。

探索:① 强制一次生成多个假设(≥3),别验一个停一个;② 给固定探索预算(轮数/token/时间),预算内 NEVER STOP,预算尽则收敛;③ 用单一标量衡量「够好了没」,到阈值才从探索切到利用;④ 记账(每轮假设、验证结果、覆盖区域写进可追溯日志);⑤ 设收敛信号(覆盖度达标 or 预算耗尽 or 找到够好解,满足其一才停)。

两条线合起来:优先级帮你不被低价值任务带跑,探索帮你不困在已知老路。 前者管资源花在哪,后者管路径走多宽。

收口

优先级排序回答「先做哪个」,探索发现回答「敢不敢走没走过的路」。一个让 Agent 把力气花在刀刃上,一个让 Agent 在未知里不轻易认输——前者治「瞎忙」,后者治「偷懒」。

最后给整个 Module D 收个尾:

这一路拆下来的 21 个设计模式,不是 21 道必答题,而是一个招式库。真正的功夫不在背全每一招,而在面对一个具体任务时,知道该查哪几招、怎么把它们组合起来用。反思配规划、护栏配工具、优先级配调度、探索配评估——会查、会组合,比会背重要得多。