[{"data":1,"prerenderedAt":450},["ShallowReactive",2],{"content-\u002Fcontents\u002Fprobe-and-refine-repository-guidance":3,"surroundPost-\u002Fcontents\u002Fprobe-and-refine-repository-guidance":441},{"id":4,"title":5,"body":6,"createdAt":426,"description":427,"draft":428,"extension":429,"meta":430,"navigation":431,"path":432,"seo":433,"stem":434,"tags":435,"thumbnail":16,"updatedAt":439,"__hash__":440},"contents\u002Fcontents\u002Fprobe-and-refine-repository-guidance.md","Probe-and-Refine Tuning of Repository Guidance for Coding Agents",{"type":7,"value":8,"toc":394},"minimark",[9,17,22,30,37,40,43,61,64,67,70,73,79,82,87,90,93,104,107,110,116,119,122,125,128,131,134,137,140,143,146,149,152,163,166,169,172,175,178,181,184,189,192,196,199,203,206,210,213,216,219,222,236,243,248,251,254,257,260,263,266,270,274,277,281,284,288,291,295,298,302,305,309,312,316,319,323,326,329,360,363],[10,11,12],"p",{},[13,14],"img",{"alt":15,"src":16},"Probe-and-Refine のグラレコ","\u002Fimg\u002Fprobe-and-refine-repository-guidance\u002Fgraphic-recording.png",[18,19,21],"h2",{"id":20},"_30秒で言うと","30秒で言うと",[10,23,24,25,29],{},"コーディングエージェントに渡す ",[26,27,28],"code",{},"AGENTS.md"," や repository guidance は、あるだけで良くなるわけではない。",[10,31,32,33,36],{},"この論文は、静的に作った repository knowledge base を、合成バグ修正プローブで試し、失敗を診断し、短い運用指示へ反復的に磨く ",[26,34,35],{},"probe-and-refine tuning"," を提案している。",[10,38,39],{},"SWE-bench Verified では、no guidance が 25.5%、static KB が 28.3%、probe-and-refine が 33.0% の resolve rate だった。面白いのは、patch そのものの精度が上がったのではなく、評価可能な patch まで到達する coverage が増えたことだ。",[18,41,42],{"id":42},"この記事で持ち帰ること",[44,45,46,52,55,58],"ul",{},[47,48,49,51],"li",{},[26,50,28],{}," や repository guidance は、長く詳しく書けばよいものではなく、agent が正しい探索・再現・修正まで到達できるかで評価する運用資産である。",[47,53,54],{},"この論文の主な改善は、patch の正答率そのものではなく、評価可能な patch まで到達する coverage を増やした点にある。",[47,56,57],{},"guidance は model や step budget と相性がある。複雑な手順は、十分な手数がないとむしろ agent loop を崩す。",[47,59,60],{},"自分の運用に戻すなら、手順書を一発で完成させるのではなく、失敗しやすい小さな probe を作り、coverage \u002F precision \u002F budget \u002F model fit を見ながら直す。",[18,62,63],{"id":63},"この論文の何がいいか",[10,65,66],{},"この論文の良さは、エージェント向けの指示文を「良いことが書いてあるメモ」ではなく、行動を変える operational guidance として測っているところにある。",[10,68,69],{},"コードベースには、どのファイルを見るべきか、どのテストを走らせるべきか、どの fallback に落ちやすいか、どの修正が危ないか、という運用知識がある。人間は雰囲気で覚えているが、agent はそれを毎回 prompt から復元しようとする。",[10,71,72],{},"ただし、指示を置けば解決するわけではない。先行研究では、LLM が生成した context file が agent を誤誘導し、むしろ resolve rate を下げる例も報告されている。この論文は、そこを「指示があるか」ではなく「どう作った指示か」に分解する。",[10,74,75,76,78],{},"ゆうきの文脈では、これは ",[26,77,28],{},"、Codex skill、scheduled-ops、article-page-publisher の手順書をどう育てるかにそのまま刺さる。手順書は長くすれば良いのではなく、失敗プローブに当てて、coverage を増やし、step budget と model fit に合う形へ調整する必要がある。",[18,80,81],{"id":81},"どんな論文か",[10,83,84,86],{},[26,85,5],{}," は、coding agent が repository-specific な運用知識を使って、現実の GitHub issue を修正できるかを調べる論文である。",[10,88,89],{},"対象は SWE-bench Verified の 500 instances。各 instance は実在する Python repository の issue で、agent が patch を作り、held-out test suite を通れば resolved とされる。",[10,91,92],{},"比較する条件は大きく三つある。",[44,94,95,98,101],{},[47,96,97],{},"no guidance: repository guidance なし",[47,99,100],{},"static KB: tree-sitter などで repository structure を見て作った静的 knowledge base と generic guidance",[47,102,103],{},"probe-and-refine: static KB を初期値にし、合成プローブで失敗を診断して更新した guidance",[10,105,106],{},"probe-and-refine の特徴は、重い agentic training ではないことだ。tuning 中は multi-step agent loop も tool use も使わず、single-shot LLM call の組み合わせで、合成バグ修正プローブ、試行、judge、diagnostic aggregation、guidance edit を回す。最終的な guidance は 3000 文字以内の compact artifact として repository ごとに作られる。",[18,108,109],{"id":109},"課題と貢献",[10,111,112,113,115],{},"第一の貢献は、repository guidance を失敗から反復的に磨く ",[26,114,35],{}," を示したこと。",[10,117,118],{},"第二の貢献は、改善の内訳を coverage と precision に分けたこと。probe-and-refine は、評価可能な patch を出す割合を増やすが、評価に到達した patch が正しい確率そのものは大きく変えない。",[10,120,121],{},"第三の貢献は、step budget との相互作用を測ったこと。複雑な guidance は、十分な step budget がある時にだけ効く。短い予算では、より単純な static KB より悪くなる場合がある。",[10,123,124],{},"第四の貢献は、model fit の問題を出したこと。Qwen 向けに作った guidance を Nemotron にそのまま渡すと、agent loop が崩れ、fallback cascade が起きた。",[18,126,127],{"id":127},"手法のしくみ",[10,129,130],{},"まず repository の構造を見て、静的な knowledge base を作る。ここには、ファイル構造、よく見るべき subsystem、テストや実装に関する repository-specific な情報が入る。",[10,132,133],{},"次に、各 iteration で合成バグ修正プローブを生成する。これは本番の SWE-bench instance そのものではなく、guidance の弱点を炙り出すための小さな probe である。",[10,135,136],{},"その probe を single-shot で解かせ、期待される behavior と照合する。judge は、agent がどこで迷ったか、何を見落としたか、どの operational rule が足りなかったかを診断する。",[10,138,139],{},"最後に、診断を aggregate し、guidance を機械的に更新する。重要なのは、ただ「もっと詳しく書く」のではなく、repository の中で agent が間違えやすい行動を減らし、正しいファイルやテストへ到達しやすくする形で指示を変えることだ。",[10,141,142],{},"生成された guidance は、実際の coding agent が SWE-bench Verified を解く時に使われる。評価は official SWE-bench harness で行われる。",[18,144,145],{"id":145},"検証結果",[10,147,148],{},"主実験では、Qwen3.5-35B-A3B を使い、SWE-bench Verified 500 件を 200 steps で評価している。",[10,150,151],{},"resolve rate は次の通り。",[44,153,154,157,160],{},[47,155,156],{},"no guidance: 25.5%",[47,158,159],{},"static KB: 28.3%",[47,161,162],{},"probe-and-refine: 33.0%",[10,164,165],{},"probe-and-refine は、static KB と no guidance の両方に対して有意に良い結果を出した。",[10,167,168],{},"ただし、改善の中身が大事だ。論文は、per-patch precision は約 59% で統計的に一定だと報告している。つまり、評価まで届いた patch の正しさが大きく上がったわけではない。",[10,170,171],{},"改善は coverage から来ている。refined guidance は、評価可能な patch を 14.5pp 多く出した。言い換えると、agent が正しいファイルへ到達し、patch として評価できる形まで持っていく確率が上がった。",[10,173,174],{},"step budget の実験も実務的に重要だ。25 steps では各条件がほぼ同等。50 steps では、probe-and-refine が static KB を下回る。これは、probe-and-refine が勧める reproduce-trace-patch 的な workflow が、50 steps では完走しづらいためと解釈されている。",[10,176,177],{},"100 steps、200 steps になると probe-and-refine が伸びる。複雑な guidance は、十分な行動予算があって初めて効く。",[10,179,180],{},"cross-model ではさらに注意が必要になる。Qwen 向け guidance を Nemotron に転用すると、Nemotron は行動せずに分析文を書きやすくなり、agent loop から patch が出ず、single-shot fallback に流れる。しかも fallback patch は malformed になりやすい。ここから、guidance は model-specific な行動校正を含むと読める。",[18,182,183],{"id":183},"誤解しやすい点",[185,186,188],"h3",{"id":187},"誤解-agentsmd-は詳しく書くほど良い","誤解: AGENTS.md は詳しく書くほど良い",[10,190,191],{},"実際には、長く複雑な guidance は step budget と model capacity に合っていないと逆効果になりうる。50 steps の probe-and-refine は static KB より悪かった。",[185,193,195],{"id":194},"誤解-probe-and-refine-は-patch-の品質を上げる","誤解: probe-and-refine は patch の品質を上げる",[10,197,198],{},"この論文で上がったのは主に coverage であり、per-patch precision は約 59% でほぼ一定だった。正しい patch を作る能力というより、評価可能な patch まで到達する力を上げている。",[185,200,202],{"id":201},"誤解-良い-guidance-は別モデルにもそのまま移せる","誤解: 良い guidance は別モデルにもそのまま移せる",[10,204,205],{},"Nemotron への transfer では性能が崩れた。guidance は、モデルの出力傾向や agent loop の振る舞いに合わせた校正を含む。",[185,207,209],{"id":208},"誤解-合成プローブは本番-issue-を覚えさせているだけ","誤解: 合成プローブは本番 issue を覚えさせているだけ",[10,211,212],{},"論文は、合成プローブが本番 SWE-bench instance そのものではなく、repository guidance の失敗を診断するためのものである点を強調している。とはいえ、SWE-bench contamination は完全には否定できず、同一モデル内の条件比較として扱うのがよい。",[18,214,215],{"id":215},"おい丸運用に戻すなら",[10,217,218],{},"この論文を読むと、手順書や skill を直す時の見方が変わる。",[10,220,221],{},"「この注意書きを足せば良さそう」ではなく、次の四つを見るべきだと思う。",[44,223,224,227,230,233],{},[47,225,226],{},"coverage: そもそも正しいファイル、資料、テスト、保存先まで到達する回数が増えたか",[47,228,229],{},"precision: 到達した後の成果物品質は上がったか、それとも一定か",[47,231,232],{},"step budget: その workflow を完走するだけの手数があるか",[47,234,235],{},"model fit: その guidance は、実際に使うモデルや harness の行動傾向に合っているか",[10,237,238,239,242],{},"例えば ",[26,240,241],{},"scheduled-ops"," の paper-watch は、候補探索、wiki 保存、グラレコ、oio-blog 記事化までを含む。ここに複雑な指示を足すなら、短時間実行では逆に崩れる可能性がある。指示の複雑さと実行予算を合わせる必要がある。",[10,244,245,247],{},[26,246,28],{}," も同じだ。禁止事項や読む順番を増やすだけではなく、実際の失敗ケースを小さな probe にして、どの行動が変わったかを見る方が良い。",[18,249,250],{"id":250},"課題と議論",[10,252,253],{},"この論文の限界も明確だ。",[10,255,256],{},"まず、実証は Qwen3.5-35B-A3B が中心である。Nemotron の結果は、汎用的に壊れるというより、prompt と model behavior の mismatch を示している可能性がある。",[10,258,259],{},"次に、SWE-bench Verified 500 件は Django が 46% を占める。非 Django でも効果は見えるが、repository ごとの分布は薄く、cross-repository generality には追加評価が必要になる。",[10,261,262],{},"また、guidance length の confound も残る。probe-and-refine は compact とはいえ、静的 KB や no guidance と比較して、どの程度「内容」ではなく「量」が効いたかは完全には切り分けられていない。",[10,264,265],{},"それでも、この論文の実務的価値はかなり高い。agent に渡す指示を、自然言語の気合いではなく、coverage、precision、budget、model fit で測る道具として読めるからだ。",[18,267,269],{"id":268},"読後qa","読後Q&A",[185,271,273],{"id":272},"この論文の中心問いは","この論文の中心問いは？",[10,275,276],{},"coding agent に渡す repository guidance を、どう作れば実際の issue 解決で役に立つのか、という問い。",[185,278,280],{"id":279},"probe-and-refine-は何をする","probe-and-refine は何をする？",[10,282,283],{},"合成バグ修正プローブで guidance の弱点を露出させ、試行結果を judge し、診断をもとに短い repository guidance を更新する。",[185,285,287],{"id":286},"結果はどのくらい良い","結果はどのくらい良い？",[10,289,290],{},"SWE-bench Verified 500 件で、no guidance 25.5%、static KB 28.3%、probe-and-refine 33.0% の resolve rate。",[185,292,294],{"id":293},"何が改善した","何が改善した？",[10,296,297],{},"patch precision ではなく coverage。評価可能な patch を 14.5pp 多く出せるようになった。",[185,299,301],{"id":300},"step-budget-はなぜ重要","step budget はなぜ重要？",[10,303,304],{},"複雑な guidance は、reproduce、trace、patch のような workflow を agent に要求する。十分な steps がないと完走できず、単純な guidance より悪くなることがある。",[185,306,308],{"id":307},"別モデルにも使える","別モデルにも使える？",[10,310,311],{},"そのままは危ない。Qwen 向け guidance を Nemotron に渡すと agent loop が崩れ、fallback cascade が起きた。",[185,313,315],{"id":314},"agentsmd-にどう活かす","AGENTS.md にどう活かす？",[10,317,318],{},"一発で完璧な手順を書くのではなく、失敗しやすい小タスクを probe として用意し、どの指示が coverage を増やしたかを見る。",[185,320,322],{"id":321},"次に読むなら","次に読むなら？",[10,324,325],{},"論文の 3.3、4.4、6、7 を読むと、手法、改善の内訳、step budget、model fit がつながって見える。",[18,327,321],{"id":328},"次に読むなら-1",[44,330,331,339,346,353],{},[47,332,333,338],{},[334,335,337],"a",{"href":336},"\u002Fcontents\u002Fcode-as-agent-harness","Code as Agent Harness",": agent の行動を、model ではなく harness と実行基盤から見る視点。",[47,340,341,345],{},[334,342,344],{"href":343},"\u002Fcontents\u002Fagentic-skills-eval","Agentic Skills 評価",": skill が本当に振る舞いを変えたかを見る評価の話。",[47,347,348,352],{},[334,349,351],{"href":350},"\u002Fcontents\u002Ftokenpilot-context-management","TokenPilot",": 長期 agent の context と cache を runtime design として扱う話。",[47,354,355,359],{},[334,356,358],{"href":357},"\u002Fcontents\u002Fwhat-makes-a-harness","What makes a harness a harness",": agent harness の境界と条件を整理する話。",[18,361,362],{"id":362},"出典",[44,364,365,373,380,387],{},[47,366,367,368],{},"arXiv: ",[334,369,370],{"href":370,"rel":371},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2606.20512",[372],"nofollow",[47,374,375,376],{},"HTML: ",[334,377,378],{"href":378,"rel":379},"https:\u002F\u002Farxiv.org\u002Fhtml\u002F2606.20512v1",[372],[47,381,382,383],{},"PDF: ",[334,384,385],{"href":385,"rel":386},"https:\u002F\u002Farxiv.org\u002Fpdf\u002F2606.20512",[372],[47,388,389,390],{},"Code: ",[334,391,392],{"href":392,"rel":393},"https:\u002F\u002Fgithub.com\u002Fasashepard\u002Fprobe-and-refine-tuning",[372],{"title":395,"searchDepth":396,"depth":396,"links":397},"",2,[398,399,400,401,402,403,404,405,412,413,414,424,425],{"id":20,"depth":396,"text":21},{"id":42,"depth":396,"text":42},{"id":63,"depth":396,"text":63},{"id":81,"depth":396,"text":81},{"id":109,"depth":396,"text":109},{"id":127,"depth":396,"text":127},{"id":145,"depth":396,"text":145},{"id":183,"depth":396,"text":183,"children":406},[407,409,410,411],{"id":187,"depth":408,"text":188},3,{"id":194,"depth":408,"text":195},{"id":201,"depth":408,"text":202},{"id":208,"depth":408,"text":209},{"id":215,"depth":396,"text":215},{"id":250,"depth":396,"text":250},{"id":268,"depth":396,"text":269,"children":415},[416,417,418,419,420,421,422,423],{"id":272,"depth":408,"text":273},{"id":279,"depth":408,"text":280},{"id":286,"depth":408,"text":287},{"id":293,"depth":408,"text":294},{"id":300,"depth":408,"text":301},{"id":307,"depth":408,"text":308},{"id":314,"depth":408,"text":315},{"id":321,"depth":408,"text":322},{"id":328,"depth":396,"text":321},{"id":362,"depth":396,"text":362},"2026-06-21","AGENTS.md のような repository guidance は、書いて終わりではなく、失敗プローブで coverage を増やす運用資産として磨けるのでは、という問いを扱う論文。",false,"md",{},true,"\u002Fcontents\u002Fprobe-and-refine-repository-guidance",{"title":5,"description":427},"contents\u002Fprobe-and-refine-repository-guidance",[436,437,438],"論文まとめ","Coding Agents","Agent Guidance","2026-06-22","5pJHgu5jrJq_Ug5ad75ao0vU_X4SV8s7FJBhXha84qg",[442,446],{"title":443,"path":444,"stem":445,"children":-1},"前処理を行いツイートをWordCloudで可視化する方法","\u002Fcontents\u002Fpreprocessing","contents\u002Fpreprocessing",{"title":447,"path":448,"stem":449,"children":-1},"pytestの基本的な使い方","\u002Fcontents\u002Fpytest","contents\u002Fpytest",1782128299273]