Skip to content

摩擦:复杂度预算把按需加载的 references/ 当常驻字节计价,使官方 progressive disclosure 在本仓变成「绕过预算」 #10

Open

Description

@2233admin

主要领域:领域/横向

原始观察与影响

给 orchestrated-collaboration 补一条判据时撞到两层摩擦,第二层是结构性的。

第一层(本次触发点):第零节与第三节都以「Orca 不可用」作分支判据,但全文没有一处定义如何测出它——可用性实际由人工声明。APS 的 references/pre-action-gates.md G1 已经规定「会改变行动的能力/工具状态主张,有低成本安全探针则实测」,本 Skill 自身没有执行这条门。

第二层(本 Issue 正题):要按 G1 补上判据,就得让执行者知道用什么探针。但 resource-closeout-does-not-copy-cli-list 用 mustNotContain 钉死了「Skill 内不出现具体 CLI 命令」,唯一允许的是发现入口 orca skills get orchestration --full。第一版补出来的步骤因此是「先实测,再读指南」——探针方法在下一步才读到,执行者到第一步就卡住。该顺序矛盾现有测试测不出来(只校验字符串与字节,不校验可执行性),本次已靠把「读指南」与「实测」合并为同一步就地解决,未新增任何引用文件。

但这个解法只在探针足够简单、能塞进一行时成立,不具一般性:一旦判据需要多步或分支(例如先判运行面就绪、再判是否存在已连接的远端 runtime、失败分支各自不同),主合同就只剩两条路——要么写进具体命令(撞 mustNotContain),要么新增 references/(撞预算)。下一条稍复杂的判据就会同时撞上这两堵墙,所以这里请求的是口径裁决,不是本次改动的放行。

按 Anthropic 官方 Agent Skills 架构,这个矛盾的标准解法是把具体探针放进 Level 3 的 references/:主合同保持工具无关,执行者按需读取可执行细节。但本仓 complexityBudget.corpusMaxUtf8Bytes 把 SKILL.md 与 references/*.md 合并计价,并在注释里把这条路径定义为「否则把正文挪进 references 就能绕过」。结果是:官方推荐的修法在本仓被判为绕过预算,而预算已经没有余量执行它。

证据与复现边界

  • 时间:2026-08-17;环境:main @ ad07742,Node 24 口径(本机 v26.3.1),全部字节按 LF 规范化。
  • 预算实测(复现:按 tests/workflow-routing.test.ts 第 8.5 节同一算法遍历 plugins/*/skills/*/SKILL.md 与 references/*.md):
    • 语料合计 208,913 / 209,000,余量 87 字节。
    • 其中 SKILL.md 合计 149,413 字节,references/*.md 合计 59,581 字节 —— 28.5% 的预算花在按官方模型「未触发即不进上下文」的字节上。
  • 官方口径(https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview):Level 1 metadata(name + description)常驻系统提示;Level 2 SKILL.md 正文仅在触发时加载;Level 3 引用文件按需读取。原文:「until a Skill is triggered, only its name and description occupy context.」
  • 按该模型,本仓真实常驻成本是 8 个 description(各 ≤1000 字节门,合计约 7KB),而不是 209KB。
  • 闸自身的口径不自洽:第 8.5 节只累计 references/ 顶层 *.md,adaptive-problem-solving/references/method-registry/cards/*.md(30 张方法卡)完全不计入。也就是说「防绕过」的闸已经存在一条更大的未计价路径,当前口径既拦不住绕过,又惩罚了正当拆分。
  • 本次改动的实际代价:主 Skill 21,692 → 21,775 字节(+83,已用两处置换抵扣),语料 208,996 / 209,000,全仓余量降到 4 字节。若按官方形态把探针放进 Level 3(新增一份 references/orca-runtime.md,约 1KB),当前规则下无法落地。

候选模式与替代解释

事实:预算口径把 Level 2 与 Level 3 同价;预算余量已接近零;一次补判据即耗尽余量;闸对嵌套 references 不计价。

当前解释:预算模型建立时把「Skill 语料」等同于「会被加载进上下文的字节」(第 8.5 节注释原话)。这个等式对 Level 2 成立,对 Level 3 不成立。因此预算在度量一个比真实常驻成本大一个数量级的量,副作用是任何新判据都必须先砍旧判据,且正当的 progressive disclosure 拆分得不到任何预算回报(adaptive-problem-solving 0.2.12 把主合同从 22,537 压到 8,812,语料总量并未因此下降)。

最强替代解释:预算的真实目的可能不是"控常驻上下文成本",而是"控方法资产总复杂度"——即防止资产无限膨胀、维护面失控。若如此,把 Level 3 计入是有意为之,本 Issue 的前提不成立,正确处置是维持规则并要求每次新增都置换等量旧内容。

使该模式不再成立的证据:负责人确认预算目标是总复杂度而非上下文成本;或实测显示运行端在未触发 Skill 时也会加载 references/(若成立,Level 3 与 Level 2 同价就是正确的,官方文档与实际实现不符)。后者是可低成本证伪的——在两端各起一次新会话,不触发任何 Skill,核对上下文中是否出现 references 内容。

当前处置、停止谓词与升级条件

  • 已有缓解:本次改动已按现规则落地,不新增 references/,探针要求以工具无关措辞写入主合同并与读指南合并为同一步,用两处置换抵扣净增(第零节降级复述改为指向第三节;「Orca 的当前能力与本机样本」并入第三节开头)。两个符合性套件通过,语料 208,996 < 209,000。
  • 已知未验证:该改动仅通过字符串与字节校验,未在任一运行端做产品行为验证(docs/conformance.md 的「产品行为」证据层级);skillLifecycle.lastVerified 保持 2026-08-15 未动,因为本版未执行该 Skill 登记的最少复核步骤。
  • 停止谓词:若负责人确认预算目标是总复杂度,则本 Issue 就地关闭为「按设计」,Orca 探针维持当前工具无关形态,顺序矛盾改由指南侧解决。
  • 升级条件:若确认预算目标是上下文成本,则需要一次负责人决定——是把 Level 3 移出 corpusMaxUtf8Bytes 另设独立上限,还是保留合并计价并登记一次预算例外。两条路都会改变后续每一次方法资产改动的成本,超出单次 PR 可自决范围。

关联合同与相邻范围

  • 关联 tests/workflow-routing.test.ts 第 8.5 节与 tests/workflow-routing.json 的 complexityBudget。
  • 关联 adaptive-problem-solving 0.2.12 的主合同拆分(同类操作的既有先例)。
  • 本项不触碰:descriptionBudget(1000 UTF-8 字节门有 2026-08-11 三端实测支撑,与本项无关);maxSkills 与 agent-control#57 已登记的例外;任何运行端安装或三端指纹验收。

Activity

  1. zaurakworks commented on Aug 17, 2026

    @zaurakworks
    Owner

    第一批实施回执

    PR #17 已提交:f6300a4b7384938997c09ac7bb7b742cfd99fc54。

    已完成:

    • 将 L1 description、L2 SKILL.md、递归 L3 references/**/*.md 与 L2+L3 维护面分栏;
    • 删除活动的 corpusMaxUtf8Bytes 假口径,旧 208,420/209,000 数值只作为已退役缺陷保留;
    • 保留每项 description 1000-byte 门和 13 项数量门;
    • 生成页现在报告 7,703 B/149,332 B/204,984 B/354,316 B;
    • 明确来源通过不代表安装或实际净收益;
    • 未修改 Skill 行为、版本和安装状态。

    验证:

    • workflow routing:PASS(13 Skill/8 Plugin/83 场景);
    • CF-6 三方审阅验证器:PASS;
    • git diff --check:PASS;
    • GitHub conformance:SUCCESS;PR 当前 OPEN、MERGEABLE、非 Draft。

    下一批按已记录顺序审阅 github-collaboration 六项。重点不是把 127KB 压小,而是逐项找出只有它承载的安全边界;普通 Agent + 明确 Issue 已覆盖的行为直接退役,不移入另一份 Skill。

  2. zaurakworks commented on Aug 18, 2026

    @zaurakworks
    Owner

    迁移通知:当前 Plugin/Skill 源码与双端 Marketplace 已进入 zaurakworks/agent-system。本事项仍保留原编号、正文、评论和状态;在目标仓建立明确 successor 或在 source 中完成收口前,不把迁移解释为已验收、已采用或已关闭。真实 Codex Plugin 显式/负例与 Claude 证据仍缺,因此 source archive 继续被阻塞。

    迁移索引:zaurakworks/agent-system#70
    目标实现:https://github.com/zaurakworks/agent-system/tree/main/plugins

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions