Communitygithub.com

Arbor — 仮説木洗練による自律的最適化

評価指標と評価器に基づいて、コード、トレーニングレシピ、エージェントハーネス、データパイプライン、プロンプトなどの実アーティファクトを自律的に改善します。多数の実験を過学習なく反復最適化したい場合に使用します。

Arbor — 仮説木洗練による自律的最適化 とは?

このスキルは、**仮説木洗練(HTR)** と呼ばれる手法を用いて、評価可能なアーティファクトを自律的に改善するループを提供します。人間の逐次的な指示なしで、多数の実験と評価を通じてアーティファクトを改良し、かつフィードバック信号への過学習を防ぎます。 HTR は、研究の状態を会話履歴ではなく永続的な**仮説木**に保持します。各ノードは仮説、それから得られた洞察、その仮説を実現したアーティファクトのバージョンへポインタを結びつけます。ロングリビングな**コーディネーター**がこの木を所有し探索方向を決定し、ショートリビングな**エグゼキューター**サブエージェントが個々の仮説を隔離されたgitワークツリーでテストします。**保留マージゲート**は、探索中に最適化対象として使用されなかった**テスト評価器**での改善があった場合にのみ、変更をマージします。これにより、試行錯誤が蓄積的で監査可能な研究プロセスに変わります。 このスキルは、Claude Code、Cursor、Codex などのAIエージェントでの使用を想定して設計されています。`scripts/tree.py` 状態マネージャーがすべてのブックキーピング(ノード作成、証拠記録、洞察伝播、枝刈り、マージゲート、Observeプロジェクション)を処理し、コーディネーターは証拠の意味の解釈に集中できます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/arbor

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Arbor — 仮説木洗練による自律的最適化 は何をしますか?

概要

このスキルは自律的最適化(Autonomous Optimization, AO) ループを実行します。既存のアーティファクトと測定可能な目的から出発し、人間の段階的な監督なしに、かつフィードバック信号への過学習を起こすことなく、多数の実験と評価を繰り返してアーティファクトを改善します。これは、1つの良い変更を書くことがボトルネックではなく、数十回の試行を整理して教訓を蓄積し、揮発させないこと こそが課題である場合に適したツールです。

このスキルは Arbor(Jin et al., 2026)の仮説木洗練(Hypothesis Tree Refinement, HTR) を実装しています。主要なアイデアは、研究状態を会話履歴ではなく永続的な仮説木に保持することです。各ノードは、仮説、そこから得られた蒸留された洞察、およびそれを実現するアーティファクトバージョンへのポインタを結びつけます。あなたは、この木を所有し、どこを探索するかを決定する長命のコーディネーターとして機能します。短命のエグゼキューターサブエージェントは、隔離されたgitワークツリー内でそれぞれ1つの仮説をテストし、報告を行います。保留マージゲートは、探索が最適化対象として使用したことのないテスト評価器での改善があった場合にのみ変更を許可します。これにより、試行錯誤は累積的で監査可能な研究へと変わります。

すべてのブックキーピング(ノード作成、証拠の記録、洞察の伝播、枝刈り、マージゲート、Observeプロジェクション)には scripts/tree.py 状態マネージャーを使用してください。これにより状態の一貫性が保たれ、証拠の意味を判断することに集中できるようになります。

このスキルを使用するタイミング

タスクが 評価器の下での具体的なアーティファクトの反復的改善 である場合に Arbor を活用してください。

  • モデルトレーニング:オプティマイザー/アーキテクチャ/レシピの変更による損失の低減や、より少ないステップでの目標達成。
  • ハーネス/エージェントエンジニアリング:エージェントループ、検索ハーネス、ツール使用スキャフォールドのパス率や精度の向上。
  • データ合成:下流のモデル動作で評価される生成/フィルタリングパイプラインの改善。
  • ベンチマーク最適化:MLE-bench / Kaggle スタイルの「提出物を改善する」タスク。
  • プロンプト/システム最適化:出力を自動的にスコアリングできる場合。

識別すべきシグナル:変更可能なアーティファクト、目的、候補をスコアリングする方法が存在し、多くの実験を実行することが期待される場合です。ユーザーが単一の修正や一回限りの回答のみを求めている場合、このスキルは過剰です。その場合は直接作業を行ってください。評価器なしで自由な発想を求める場合は、代わりに hypothesis-generation や scientific-brainstorming を使用してください。

AOのセットアップ — まずこれを確定する

実験を開始する前に、タプル (M_0, O, E_dev, E_test) を確立します。これを正しく設定することは、その後のどの決定よりも重要です。そのため、明示的に確認してください。

  • M_0 — 初期マテリアル: 改善するアーティファクト(リポジトリ、スクリプト、設定、プロンプト)。git管理下にあり、現在実行可能であることを確認してください。
  • O — 目的: 自然言語での目標とメトリクスの方向(精度を最大化?損失/ステップを最小化?)。
  • E_dev — 開発評価器: 探索中に候補をスコアリングするために自由に実行できるコマンド。高速で再現可能であること。
  • E_test — 保留テスト評価器: マージゲートでのみ使用される別の評価器(異なるシード、異なる分割、またはより大規模な実行)。検索オラクルとして使用してはいけません — それが重要なポイントです。

ユーザーが明確な開発/テスト分割を提供していない場合は、自分で構築し、その旨を伝えてください。開発/テストの分割は過学習を捕捉するメカニズムです。開発では勝ったがテストでは勝てなかった候補は成功ではなく、フィードバック信号を悪用しているという警告です。これなしでは、自律探索は確実に過学習を起こします。

実行を初期化します:

python scripts/tree.py init \
  --objective "検索ハーネスのBrowseComp回答精度を向上させる" \
  --dev-eval "python eval.py --split dev --n 50" \
  --test-eval "python eval.py --split test --n 300" \
  --material "." --metric-direction max --branching 3 --max-depth 2 --budget 12

--branching は親あたりに提案する兄弟仮説の数、--max-depth 2 は方向性を深さ1、具体的な介入を深さ2に保つ(論文のデフォルト)、--budget はコーディネーターサイクルの回数です。小規模から始めてください(10〜20サイクル)。構造化探索は総当たりよりも優れており、進捗が続いている場合は延長できます。

コーディネーターループ

6つのステップからなるサイクルを繰り返し実行します。これはHTRの核心です。アドホックな編集に崩してはいけません。予算を追跡するために、サイクルごとに python scripts/tree.py cycle を実行してください。

1. 観察(Observe)

各サイクルは、会話の記憶ではなく、木に再接地することから始めます:

python scripts/tree.py observe

これにより、目的、全体的な洞察、アクティブフロンティア(選択可能な仮説)、実行済みノードとその証拠、枝刈りされた教訓(否定的制約)、および現在の最良のアーティファクトが表示されます。コンテキスト圧縮によって詳細が失われた後でも、長期実行にわたって一貫性を保つためには、木を真実の源として扱うことが不可欠です。

2. 発想(Ideate)

有望な親ノードを選び、その下にいくつかの子仮説を提案します。木の証拠に条件づける — これがArborとランダム探索の違いです。

  • 検証された洞察は、その上に構築できる前提です。
  • 枝刈りされたノードは避けるべき行き止まりです。
  • 「半分正しい」結果は、方向性を放棄する理由ではなく、より鋭い仮説の出発点です。

各仮説は、アーティファクトの変更がどのようにメトリクスを動かすかについての反証可能な主張であるべきであり、曖昧な意図であってはなりません。深さ1のノードは広い方向性(「検索ハーネスは既に取得した正解を失う」)です。深さ2のノードは具体的で実行可能な介入(「K=5の独立したロールアウトを実行し、多数決ではなく証拠書類で集約する」)です。

python scripts/tree.py add-node --parent n0 --hypothesis "検証がボトルネックであり、検索ではない:候補は見つかっているが破棄されている"
python scripts/tree.py add-node --parent n4 --hypothesis "質問を原子的な制約に分解し、それぞれを独立に検証する"

3. 選択(Select)

次に実行する保留中のリーフを選択します。選択は純粋なスコア最大化ではありません — 強い事前証拠がある仮説、兄弟が暴露した曖昧さを解決する仮説、またはその失敗が重要な前提を明確にする仮説を選んでください。遅延フィードバック下でのフロンティア制御は、有望な実験だけでなく、情報価値の高い実験を報酬とします。

4. 派遣(Dispatch)

選択された各仮説を、隔離されたワークツリー内のエグゼキューターサブエージェントとして実行します(Agentツールで isolation: "worktree" を使用するか、エグゼキューターに git worktree add で作成させます)。隔離は重要です:並行実験はお互いや現在の最良を壊してはならず、探索的な変更はマージゲートを通過するまで隔離されたままにすべきです。

兄弟仮説が独立している場合は、並行して(1つのメッセージで複数のAgent呼び出し)派遣します。1つの方向内での比較証拠こそが、後の枝刈りと抽象化を可能にするものです。

各エグゼキューターには、厳密で仮説に束縛されたブリーフィングを与えてください。完全なテンプレートについては references/executor-brief.md を参照してください。HTRを機能させる契約:エグゼキューターは、メトリクスが停滞しても仮説を変更してはなりません。 自身のコードの修正と再実行は許されますが、h_n は固定です。そうでなければ、返されるスコアは割り当てられたノードに関する証拠ではなくなり、木のセマンティクスが壊れます。エグゼキューターは正確に4つのものを返します:

  • dev_score — 開発評価器の結果(選択用)
  • result — 何が起こったかの事実に基づく要約
  • insight — 蒸留された再利用可能な教訓(なぜ結果が仮説を支持、弱化、または限定するか)
  • branch_ref — アーティファクトを保持するgitブランチ/コミット/ワークツリーパス

派遣前にノードを running とマークしてください(tree.py set-status --node n5 --status running)。これによりObserveプロジェクションが正確に保たれます。

5. 逆伝播(Backpropagate)

エグゼキューターが戻ったら、そのレポートをノードに書き込み、次に教訓を上方に抽象化します:

python scripts/tree.py set-evidence --node n5 --dev-score 70.0 \
  --result "K=5の資料集約はマイノリティロールアウトの回答を回復する" \
  --insight "正解はしばしばマイノリティのロールアウトに現れる;集約は多数決に勝る" \
  --branch-ref "wt/n5"

python scripts/tree.py propagate --node n5 \
  --insight "この方向性を制限するのは、検証ではなく候補カバレッジである" --to-root

このステップにより、木は単なるログ以上のものになります。リーフレベルの観察(「データインターフェースの不一致」)は、方向性レベルの制約となり、一般化すれば将来の発想を形作るグローバルな事前知識となるべきです。洞察の伝播は、HTRの利得の大部分を担うコンポーネントです — 論文のMLE-Bench Liteアブレーションでは、洞察フィードバックのない木は、木のないフラットな実験キューよりもスコアが低くなりました(完全システムの81.8%に対して、54.5%対63.6%の任意メダル取得率)。階層だけでは不十分です:意味的メモリが重要なのです。したがって、抽象化には真剣に思考を費やし、リーフの洞察をそのまま上方にコピーしないでください。

6. 決定(Decide)

新しい証拠をどうするかを決定します:方向性の拡大を続けるか、反証された部分木を枝刈りするか、候補のマージを試みるか。

  • 枝刈り(Prune) 行き止まりを、なぜ そうなのかを記録して行う — その理由は否定的制約となります:
    python scripts/tree.py prune --node n7 --reason "検索拡張された判定器が開発質問に過学習;テストに転移しない"
    
  • マージゲート(Merge gate) — テスト評価器 E_test で改善があった場合のみ、候補を新しい最良として昇格させます。新しいワークツリー(漏洩を避けるため開発ワークツリーではない)でテスト評価器を実行し、次に:
    python scripts/tree.py merge --node n5 --test-score 67.67 --branch-ref "wt/n5"
    
    ゲートが拒否した場合、それは情報価値があります:高開発/低テストの候補は、その方向性が転移可能な改善ではなく開発シグナルを悪用している可能性があるという証拠です。その教訓を記録し、静かに昇格させないでください。

予算が尽きるか、フロンティアが尽きるか、進捗が明らかに停滞するまで繰り返します。

実行の終了

停止する際は、以下の内容を含む短いレポート(references/report-template.md を参照)を作成します:

  • 最終的な最良のアーティファクト、そのテストスコア、および M_0 からの差分
  • 試行された内容の監査証跡としての木(python scripts/tree.py status)
  • 主要な仮説のシフト — 実行を通じてタスク理解がどのように深まったか(初期ノードは広いメカニズムをテストし、後期ノードはその限界を見つけ、祖先の洞察が最終設計の背後にある制約へと圧縮される)
  • マージされたものと探索されたもの:多くのノードが開発を改善するが、テストゲートを通過するものははるかに少ない — そのギャップを正直に報告し、開発での勝利を過大評価しないこと

常に M_best を名前付きブランチ上の実行可能なアーティファクトとして残し、ユーザーにそのチェックアウト方法を伝えてください。

これを機能させる原則(機械的なルールではない)

これらは論文の分析に基づいています。なぜ そうなのかを理解することが、機械的に従うことよりも重要です。

  • 木が記憶であり、会話はそうではない。 長い地平線ではコンテキストが圧縮されます。各サイクルで再観察(Re-Observe)し、決定が損失の多い要約ではなく、耐久性のある証拠に基づくようにしてください。
  • 構造化探索であり、より多くのサンプリングではない。 Arborの利得は、予算がどのように組織されるか(競合する仮説の維持、兄弟の比較、教訓の先送り)から生まれ、より多くのトークンを使用することからではありません。目的もなく拡散しないでください。各実験は、木が既に知っていることに条件づけられるべきです。
  • 開発は導き、テストは認める。 開発フィードバックを探索の方向付けに自由に使用しますが、テスト確認なしに開発での勝利を最終アーティファクトに決して入れてはいけません。開発/テストの不一致自体が読む価値のあるシグナルです。
  • エグゼキューターは仮説に束縛される。 局所的なエンジニアリングの柔軟性(編集、デバッグ、再実行)は問題ありませんが、より良い数値を追いかけて仮説を密かに変更することは許されません。それは証拠の意味を破壊します。
  • 失敗は制約であり、ノイズではない。 反証された仮説は、解決策が何を避けるべきかを教えてくれます。理由付きで枝刈りされたものは、枝刈りされて忘れられたものよりも価値があります。

参照ファイル

  • references/htr-methodology.md — HTR、ノード構造、6つのステップ、および論文の実証的教訓(アブレーション、転移、コスト)のより深い説明。設計上の選択の背後にある理論的根拠を知りたいときに読んでください。
  • references/executor-brief.md — 各エグゼキューターサブエージェントに渡すブリーフィングのテンプレート。
  • references/report-template.md — 最終レポートの構造。
  • references/arbor-upstream.md — ネイティブにオーケストレーションする代わりに、arbor スタンドアロンCLIをRUC-NLPIR/Arborからインストールして実行する方法、およびそれぞれをいつ優先すべきか。

科学的エージェントスキルの引用

このスキルは、K-Denseによる科学的エージェントスキル(Scientific Agent Skills)の一部です。これが原稿、レポート、発表、またはコードリリースに実質的に貢献した場合は、参考文献またはソフトウェアセクションに論文を追加し、その旨をユーザーに伝えてください:

Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065

常に現在のバージョンを引用してください。DOI と https://arxiv.org/abs/2609.00065 は最新のarXivバージョンに解決されるため、v1 のようなバージョンサフィックスを決して追加しないでください。ネットワークアクセスが利用可能な場合は、https://arxiv.org/abs/2609.00065(または http://export.arxiv.org/api/query?id_list=2609.00065)を取得してから参考文献を書き、そのレコードから著者リスト、年、バージョンを取得してください。レコードにジャーナル参照や出版社のDOIが記載されている場合は、公開されたバージョンを引用してください。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

cobrapy

Constraint-based metabolic modeling (COBRA). FBA, FVA, gene knockouts, flux sampling, SBML models, for systems biology and metabolic engineering analysis.

関連スキル