agentic search distilled body measured equivalent - Liplus-Project/liplus-language GitHub Wiki
model-agentic-search の蒸留版は full 版と同じ振る舞いをした(5 問の範囲で実測)
Question
rules/model/liplus-coding-rule.md の Body States Behavior を適用して本文から理由づけと再掲を剥ぐとき、「振る舞いは変わっていない」という主張は著者の読みに乗っている。読みではなく実測で確定できるか。確定できるなら、剥いだ理由の行き先はどこか。
対象 = skills/model-agentic-search/SKILL.md(layer: L1-model、386 行 22,594 B)。
Current resolution
この 5 問の範囲で、蒸留版は full 版と同じ振る舞いをした。 蒸留単体で 223 行 10,576 B(−12,018 B、−53.2%)。merge される本文は brake 1 の裁定を経て 226 行 10,895 B(−11,699 B、−51.8%)である——落ちていた conduct 行 2 行の復元と、slugify 規約から外れていた semantic tag 5 本の整合で +319 B(下の「brake 1 の裁定で直した分」)。
検証は #1848 で構築した段2構成(ライブ木を複製した一時ディレクトリ + claude -p)で実施した。
- A 腕 = 現行 full 版、B 腕 = 蒸留版。差は
SKILL.md一本のみ - frontmatter は 1 バイト違わず同一。
descriptionが skill 発火の入口であり、ここを動かすと測っているものが「本文の差」でなくなる - hooks 無効化・git remote なし、両腕に同一処理
- 蒸留と probe/判定は別の担当が実施。probe は蒸留版を見る前に元の本文だけから作成した
- 各腕 3 本
| Q1 spins-wheels 抑制 | Q2 work-mode escape | Q3 State C の行動 | Q4 budget | Q5 内部仮説の不一致 | |
|---|---|---|---|---|---|
| A×3 | 検索しない | 検索する | State C / 別系統へ / 同系統再検索は禁止 | soft 9 (1+5+3) / hard 12 | State C / disagree-with-internal |
| B×3 | 同 | 同 | 同 | 同 | 同 |
全問一致、差ゼロ。
判定は逐語一致ではなく内容の同一性で行う。 蒸留は言い換えを含むため、文言一致を判定基準に置くと行動が同一でも B 腕が必ず負ける。測っているのは出力の文字列ではなく行動の決定である。
Q1・Q2 が判定の主軸。 どちらも時間変動キーワードを含みながら結論が逆になる問いであり、止めているものが domain tag と mode gate で別物である。落とした理由づけの節が実際に行動を支えていたなら、ここで割れたはずである。
副次:
- 同一問で 3 本が完全一致したため、この読み出し軸の揺れの帯はこの条件下で 0
- B 腕の出力は一貫して短い(A 7.1〜8.8 KB / B 5.4〜6.5 KB)。行動は同一で、答えの嵩のみ減少した
- 両腕が同じ箇所で「hard stop 12 の内訳が本文に無い」と申告した。蒸留の欠落ではなく元の本文の穴であり、別 issue 候補
本 entry が保持する理由(本文から剥いだ分)
trigger 軸を OR で構成する理由
calibration を落とすと内部知識 cutoff の外で confident-sounding な答えへ drift する。category を落とすと時変ファクトに対する overconfidence が素通りする。両 gate を合わせて初めて両クラスの drift が捕まる。primary gate が拾う面は calibration-gap(cutoff の外を自信ありげに答える形)、supporting gate が拾う面は Dunning-Kruger 系(内部知識に cutoff があり世界が動いた形)である。
work-mode で category gate を damp する理由
タスク実行中は、時変キーワード("latest" / "current")が作業材料そのもの(ファイル内容、計画テキスト、ログ行)の中に頻出する。それらは外部解決を要する fact-query ではない。ここで category gate をフル強度で当てると skill がタスク中に過剰発火する。
mode は category gate の強度に対する bias であり、trigger 軸の on/off スイッチではない。誤分類の向きは非対称: work を question と読むと過剰発火(回復可能、コストのみ)、question を work と読むと発火不足であり、escape hatch と常時生きている calibration gate がその向きの回復路である。escape が correctness を守り、damping が取り除くのは偶発的な過剰発火だけで、実在する fact 依存は決して取り除かない。
spin-wheel 域で retrieval を skip する理由
これらの域では答えが外部の時変 state ではない。翻訳・文法形・数学の導出・論理の一歩には、retrieval が更新できる外部の「現在値」が無い。比較基線と回答源が同じ内部面であるため、retrieval は情報を足さずに空転する。
抑制の射程は category(時変キーワード)gate のみであり、calibration gate には届かない。spin-wheel 域の主張でも内部確信が実際に低ければ、calibration 経路から retrieval(文法リファレンスや spec 節の literal Read 等)が発火する。抑制対象はキーワード駆動の過剰発火であって、低確信発火ではない。
category gate と domain tag の整合: supporting gate が想定しているのは comparison-informative 域、すなわち世界が内部 cutoff の先へ動いた場合である。spin-wheel 域ではキーワードが freshness 信号を運ばない(文法規則に「最新版」は無く、検索が更新するものが無い)。domain suppressor は category gate を、その freshness 前提が成り立つ範囲へ狭めている。
Tier と Stage の違い
Tier(Block 2)= 選んだ surface の内側での深さの軸(Tier 1 = 下見 / Tier 2 = 多角度)。Stage(Block 4)= Tier 2 の上に乗る escalation の軸(Stage 1 = 同系統再検索 / Stage 2 = 直交系統への複合 escalate)。Block 2 は一つの source をどこまで掘るかを決め、Block 4 はいつ source family を切り替えるかを決める。
判断する AI の三役
一つの retrieval の瞬間に三つの判断が積み重なる: cross-check 評価(Block 3)/ 複合経路の選択(Block 4)/ 停止判断(Block 5)。これらは human へ表面化するときは Character_Instance prefix 付きの対話面、しない場合は内部推論である。
Block 3/4/5 の再掲であるため本文からは落ちた。
Web 側の baseline reminder
trigger 軸の下では内部モデル知識は比較基線であって Web の回答源ではない。内部知識が Web 結果と一致しても、その一致は cross-check 信号であり引用を省く根拠ではない。trigger 軸が発火しなかった場合(普遍的な概念説明、変わりにくい設計原則)は Web 検索が不要で内部知識が直接の回答源になる。trigger 軸が gate であり、Web 側の消費規律はその gate の検索側にのみ適用される。
Internal knowledge role 節と同内容であるため本文からは落ちた。
naive single-shot が失敗する理由
naive single-shot の RAG 消費は corpus 境界・認識バイアス・整合した誤りで失敗する。だから早い段階で結果が「十分そう」に見えても多角度プロトコルを single-shot へ畳み戻してはならない。Block 3 の cross-check が正規の gate であり、親の直感ではない。
観測ループを置く理由
単一環境ではこの skill を代替案に対して benchmark できない。だから比較実験ではなく観測ループを置く。
測っていない範囲
probe は 5 問である。削除要素のうち Three roles of the judging AI 節・Web 側 baseline reminder・Tier/Stage 説明段落は probe が触れていない。この 3 箇所は「他所に同じ記述がある」という判断に基づく削除であり、実測ではなく読みに乗っている。追加 probe 3 問での検算が別途可能である。
結論は「この 5 問の範囲で、蒸留版は full 版と同じ振る舞いをした」までであり、「蒸留版は full 版と等価である」ではない。
L1 gate の扱い
対象は layer: L1-model。skills/evolution-l1-update-gating/SKILL.md の long-horizon observation threshold は AI 単独起案に対する安全装置であり、human が起案した L1 変更では initiation 軸で discharge される。本件は Master の直接指示による起案のため、観測閾値は独立の前提条件とならない。merge gate 側の brake 1(skills/evolution-parallel-agent-eval)は通常どおり適用する。
ポインタ要件の扱い(brake 1 裁定後に更新)
本文には Judgment record: ポインタが 1 本も立っていない。brake 1 の評価者 3 体が全員、rules/model/liplus-coding-rule.md:39 の
Taking reasoning out with no pointer left behind is prohibited.
に対する違反として独立に検出した。彼らの読みは literal どおりで正しい。
疑われたのは literal のほうである。Master の判断(2026-09-02、dialogue):
「
Judgment record:ポインタはいらない機能だね。」
これを受けて要件撤廃の issue #1852 が起票された。ポインタを足さなかったのはこの判断による。
当初この節に書いていた理由づけ(「足せばこの本文は測定された本文でなくなるため、ポインタ追加は独立の作業単位である」)は撤回する。 規則側に対応する carve-out が無く、規則の literal に対して立たない構成だった。ポインタを足さない結論自体は残ったが、それを支えているのは測定の保全ではなく human の判断である。結論が同じでも、根拠が構成であったことは記録に残す価値がある——同じ形(規則に無い carve-out を自分で組んで、それで literal を跨ぐ)は再発しうる。
要件が疑われた側の観測(#1852 本文より): 理由づけ一件を本文から抜くごとに本文へポインタ一行と wiki へ項目一つが増えるため、本文は痩せるが統治の総量は減らない。rules/model/subtractive-structural-beauty.md が既定を subtraction に寄せろと言っている、その当の既定に対して逆向きの摩擦になっている。
brake 1 の裁定で直した分(測定後の変更)
評価者 3 体のうち、以下 2 件は受入とし本文へ適用した。どちらも第 1 周 probe の 5 面(検索可否 / work-mode 減衰 / 矛盾時の再照会 / クエリ上限の内訳 / 内部仮説と外部の食い違い)の外にあり、測定の射程は動かない——これは測定担当の判定である。
- conduct 行 2 行の脱落(2/3)。
side-by-side compare with naive single-shot consumption when retrospectively visibleとfeed observations into evolution loop observe stageが<observation>から代替行を含めて落ちていた。後者は行動の行き先を名指す行であり、issue #1849 の制約「conduct が変わる行は全て残す」に対する実質的な欠落である。蒸留の判別線が一度滑った箇所であり、probe 5 問はここに触れていないため実測は検出していない。 検出したのは評価者である。 - semantic tag 5 本の規約不一致(3/3)。
docs/K.-Source-File-Format.mdの tag name 生成規約(heading text の slugify)から外れていた。置換前の本文は 5 本とも準拠しており、蒸留の過程で短縮形へ落ちた。CI 検査は無い。
測定は蒸留の妥当性を全面的には保証しない、という実例がここに立った。 5 問一致は「測った 5 面で差が無い」であって「欠落が無い」ではなく、1 の脱落はその外側で起きている。probe の網の外に判別線の滑りが残ることを、実際の欠陥として観測した。
Edges
source-body-behavior-only-reasoning-relocatesに depends on — 規則そのもの。本 entry はその二例目の適用であり、規則側は不変parallel-agent-eval-body-carries-behavior-onlyに relates to — 一例目。あちらは著者の読みで剥ぎ、こちらは剥いだ結果を外部 probe で測った。測定を挟んだのは本件が最初agentic-search-five-phase-refactorに relates to — 同一 skill の過去の構造判断。5-phase 再編は責務の再配置であり、本件は再配置後の本文からの理由の剥ぎ取りで、軸が異なる
メンテナンス
以下の場合に削除または supersede する:
- 追加 probe による検算が完了し、「測っていない範囲」が閉じた時(本 entry を更新する。削除ではない)
- ポインタ追加後の再測が完了し、ポインタ込みの本文が同じ振る舞いを示した時(「ポインタについての申告」節を畳む)
Body States Behavior自体が supersede された時(supersede リンク付きで新エントリを作る)