ask は何をしますか?
最初に停止
ユーザーが $ask、/ask、ask モード、oracle、深層レビュー、並列レビュー、ラウンドテーブル、議論、CAE ギャップレビュー、または ask DAG を指定した場合、このファイル全体を読んでから行動を開始してください。次に、ユーザーが明示的にフォールバックを要求した場合、またはランタイムが利用できずそのフォールバックが報告された場合を除き、実際のランタイムエントリポイントを使用してください。
spawn_agent、プレーンモデル呼び出し、プレーンな Web 検索、手動要約、または発明されたレビューを $ask の代わりに使用しないでください。
ランタイムエントリポイント
このディレクトリからコマンドを実行してください。/skill:ask webgpt What is 2 + 2? のような Pi スキルコマンド構文は、第一級のショートカットです。先頭のブラウザハンドラ(webgpt、webclaude、webkimi、webgemini、webgrok)は、--execute --json オプションを付けた Tau single-call ブラウザハンドラ DAG にルーティングされます。$ask webgpt What is 2 + 2? のようなインラインの Pi スキル参照や、スペース区切りの自然言語スペル $ask web gpt What is 2 + 2? も同様に扱う必要があります(web gpt は webgpt に正規化されます)。これは Pi ユーザー向けの互換性ショートカットに過ぎず、削除された直接 WebGPT oracle パスを使用してはなりません。
./run.sh tau-dag "<request>" は、内部的に Typer の tau-dag run サブコマンドにマッピングされます。./run.sh team-plan "<request>" --team <preset> は、ロールベースのマルチエージェント計画と凍結された Tau DAG プレビューをレンダリングします。実行には明示的な --execute --live が必要です(README「チームオーケストレーション」を参照)。
cd skills/ask
./run.sh --help
./run.sh webgpt What is 2 + 2?
./run.sh webgpt --compile-only What is 2 + 2?
./run.sh ask --help
./run.sh tau-dag run --help
すべての重要な実行では、ランタイムアーティファクトを保存する必要があります。標準のアーティファクトセットは次のとおりです。
<ask_id>.request.json<ask_id>.status.json<ask_id>.events.jsonl- モード固有の出力(
review.md、review.json、DAG マニフェスト、ブラウザエビデンスなど)
ランタイムアーティファクトは、デフォルトでは .ask_artifacts/runs/<ask_id> または指定された --run-output-root の下に配置されます。長時間実行、ライブ実行、または生成された実行では、/mnt/storage12tb/skills/ask/outputs/... などのストレージバックアップルートを推奨します。生成された ask アーティファクトをコミットしないでください。
実行されたすべてのハンドラ呼び出し(成功または失敗)は、実行チョークポイントで $memory の ask_call_log コレクションに記録されます。記録される内容は、ハンドラ、ステータス、failure_code、controlled_tab_id/会話 URL(存在する場合)、および最後に成功した呼び出しの実証済みメソッド(推論選択、タブバインディング、ライフサイクルモード、シークレットを編集したディスパッチコマンド)です。モデル ID は、コンパイル時にライブの SciLLM カタログに対して検証されます(invalid_scillm_model_id は BLOCKED となり、最も近い有効な代替案が提示されます)。連続3回以上失敗が記録されたブラウザシートは、ディスパッチ前に既知不良としてフラグが立てられ、その失敗コードが表示されます。シートに依存する前に確認してください。python3 skills/ask/scripts/ask_call_history.py --handler webgemini は、最後に成功した呼び出しと最近の失敗を出力します。--recommend を追加すると、再利用するための正確な実証済みメソッドが表示されます。成功が記録されていないハンドラは、盲目的な推測です。最初にコンパイルのみ、または低コストでプローブしてください。過去の実行はバックフィル可能です。python3 skills/ask/scripts/backfill_call_log.py [outputs-root] は、ディスク上のすべてのノードレシートを冪等的に取り込みます(実行+ノードごとに決定論的な _key を使用)。実行されたすべてのランの結果 JSON(および execution-status.json)には、handler_last_success も含まれています。これは、シートごとのメモリからの最後の成功メソッド(会話 URL、タブ、ライフサイクル/レイアウト)、現在の連続失敗数、および回避すべき失敗コードです。これらはコンテキストで返されるため、プロジェクトエージェントはランの消費後に個別の履歴検索を行う必要がありません。
詳細リファレンス(必要に応じて読む)
| これを行う前に | 読むもの |
|---|---|
計画ファイルを使用した team-plan; status --run --projection | references/plans-and-status.md |
| 明示的な Pi ネイティブサブエージェントターゲット | references/pi-subagents.md |
| ask 出力(ワンショット/ラウンドテーブル/競合/クリーンルーム)をサブエージェントレーンに変換する | references/lane-handoff.md |
herdr list/who/send で別のエージェントのペインに送信する | references/herdr.md |
| ワンショット vs ラウンドテーブル vs 競合の選択; モデル/エフォートセレクター | references/modes.md |
| パネル監査、シート名簿、レート制限シート、webclaude ポリシー | references/seats-and-audits.md |
| ライブランの実行/監視(監視、ウィンドウ、ペイロードマトリックス、ブロック解除、ドリフト) | references/operations.md |
| 実行の失敗 | references/diagnosis.md |
| マルチシート DAG(ラウンドテーブル/競合/クリエイターレビュワー)のコンパイル/実行 | references/workflows.md |
| ブラウザハンドラの実行 | references/browser.md |
4種類のターゲット
/ask は、4つの同等のターゲットタイプを扱います。これらはトランスポートが異なるだけで、ステータスに違いはありません。
| ターゲット | 例 | トランスポートの所有者 |
|---|---|---|
| Herdr セッション — ペイン内のライブエージェント | memory, w11:p13 | $monitor-herdr 経由の herdr pane run |
| モデル呼び出し — API/モデルハンドラ | gpt-5.5-high, Codex-opus-5-high, deepseek-ai/DeepSeek-V3.2-TEE | $tau(SciLLM は Tau 内部) |
Web モデル — ブラウザバックアップのレビュワー(チャットタブ。エージェンティックモデルではありません。下記の webclaude 警告を参照) | webgpt, webclaude, webkimi | $surf + $browser-oracle |
| Pi ネイティブサブエージェント — ローカルの Pi 子アドバイザー/ワーカー | pi reviewer, subagent general-purpose, local coder | pi-subagents ネイティブの subagent ツール |
プロジェクトエージェントは、ターゲットに名前を付ける以外に、どちらがブラウザ、モデル、Herdr セッション、または Pi ネイティブサブエージェントであるかを気にする必要はありません。
プロジェクトエージェントクイックスタート
ユーザーが単一のモデル呼び出し、ラウンドテーブル、競合、またはクリエイターレビュワーループを要求した場合は、ここから始めてください。以下のいずれかの形式を使用してください。カスタムのオーケストレーションパスを発明しないでください。
| ユーザーの意図 | コマンド形式 |
|---|---|
| 1つのハンドラが回答する | ./run.sh tau-dag "<task>" --repo <repo> --target <target> --immutable-goal "<goal>" --handler <handler-or-model> --execute --json |
| ラウンドテーブル | ./run.sh tau-dag "<shared task>" --repo <repo> --target <target> --immutable-goal "<goal>" --dag-template roundtable --handler <a> --handler <b> --topology concurrent --execute --json |
| 競合 | ./run.sh compete "<isolated task>" --repo <repo> --target <target> --immutable-goal "<goal>" --handler <a> --handler <b> --criterion <criterion> --execute --json |
| ワンショット(シートごとの回答、合意なし) | ./run.sh one-shot "<question>" --handler <a> --handler <b> --handler <c> — N個の独立したシングルコールレーンが同時に実行されます。各レーンは、独自のノンスバウンドの回答または名前付きブロッカーを返します。部分的な回答は DEGRADED-but-usable(--min-answered 以上で終了コード0)です。ラウンドテーブルの定足数拒否はここでは適用されません。 |
| Pi 内部からの Pi ネイティブサブエージェント | subagent({ action: "list" }) の後、subagent({ agent: "<agent>", task: "<task>" }) または1つの workflowScript ファンアウト。これは明示的な pi/subagent/local reviewer ターゲット専用です。Tau/ブラウザハンドラの代替ではありません。 |
| クリエイター → レビュワー | ./run.sh tau-dag "<creator task then reviewer verdict>" --repo <repo> --target <target> --immutable-goal "<goal>" --dag-template creator-reviewer --handler <creator> --handler <reviewer> --topology sequential --execute --json |
| GitHub イシューの診断/修正/クローズ | ./run.sh fix-issues --repo <owner/name> --issue <N> [--issue <M>] [--handler gpt-5.5] [--execute] — 各イシューを gh で収集し、デバッガラダーゲート(needs_debugger は、失敗トランジションがアーティファクトで説明できない実行時状態にある場合のみ $debugger を推奨)を使用してライブワンショットハンドラを介して構造化された原因/修正 JSON に診断し、デフォルトでは dry-run でフェイルクローズされます。--execute は、指定された検証コマンド(通常は $agentic-evals フィクスチャ)が実際に成功した場合にのみイシューをクローズします。検証なし → blocked。検証失敗 → verify-failed、イシューは開いたまま。イシューごとのレシートは outputs/fix-issues/ の下にあります。ゲート: fixtures/fix_issues.json。 |
トランスポートが異なっていても、ハンドラはピアです。ブラウザハンドラ(webgpt、webclaude、webkimi、webgemini、webgrok)は $surf と $browser-oracle を介して実行されます。gpt-5.5-high、gpt-5.5-xhigh、Codex-opus-5-high、chutes deepseek-ai/DeepSeek-V3.2-TEE などの API/モデルハンドラは、Tau によってルーティングされます。プロジェクトエージェントは、ハンドラに名前を付ける以外に、どちらがブラウザか API かを気にする必要はありません。
ハンドラは、ブラウザバックアップ(webgpt、webclaude、webkimi、webgemini、webgrok、$surf/$browser-oracle 経由)であろうと、API バックアップ(gpt-5.5-high、claude-opus-5-high、chutes <provider/model>、Tau 経由)であろうと、ピアです。マルチシート DAG を実行する前に:最初にコンパイルし(--execute を省略)、人間に印刷された ASCII チャートを表示し、確認があった場合にのみ実行してください。モードの完全な例とセレクタールールは references/modes.md を参照。完全なプロトコルとフェイルクローズのテーブルは references/workflows.md を参照。
すべての実行の譲れない条件
- 明示的な不変の目標(
--immutable-goalまたはラベル付きのImmutable goal:行)は、ラウンドテーブル、クリエイターレビュワー、競合に必須です。目標がない場合、ハンドラに連絡する前にNEEDS_INTERVIEWでプリフライトが失敗します。 - ラウンドテーブルは常に
--topology concurrentで、すべてのシートに同一のパケットを送信します。競合の候補は分離され、互いに見ることはありません。 - 実行された DAG は、ランの JSON ストリームアーティファクト(
events.jsonl、dag-progress.json、ノードレシート、execution-status.json)を介して最終評決まで監視する必要があります。起動して放置しないでください。 PASSはレビュワー/モデルのエビデンスのみです。ローカルクロージャーには、決定論的なローカル証明が必要です。DEGRADED/NEEDS_ATTENTION/レート制限はレーンローカルです。使用可能なシートを維持し、失敗したレーンのリカバリパケットに従ってください。- 非ストリーミング API の補完は、テキストがエビデンスとしてカウントされる前に、
finish_reason=stopによる型付きアドミッションに合格する必要があります。切り詰められた、フィルタリングされた、finish_reason がない、または不正な形式の補完はscillm_response_incompleteを発行します。生のバイトとresponse.meta.jsonの検証エラーを保持してください。部分的な評決テキストを修復したり、自動的に再試行したりしないでください。保持されるケース:completion-admission-rejects-truncation(キャプチャされたリプレイ)およびcompletion-admission-live-positive(実際のプロバイダー読み返し)。 - 失敗は黙視されません。すべての失敗したレーンは、
failure_code、リカバリパケット、およびnext_command/チケット指示を公開します。障害が発生した場合は、references/diagnosis.mdを読み、理論を立てる前に所有するレシートに基づいてディスパッチしてください。 - 直接 WebGPT oracle ルーティング(
$ask chatgpt、--oracle-backend webgpt、--webgpt-*)はフェイルクローズします。Tau ブラウザハンドラは引き続きサポートされます。 - フォローアップの継続性: すべてのブラウザレーンのノードレシート /
response.meta.jsonには、controlled_tab_idと会話 URL を必ず含める必要があります。タブ ID が null の場合は、ハンドオフ失敗です。人間が明確化やフォローアップの質問をする可能性がある場合は、--browser-tab-lifecycle fresh-keep(またはreuse-bound)で実行してください。デフォルトのauto/fresh-temporary は、実行後にウィンドウを閉じ、会話を強制終了します。実行後、タブ ID + 会話 URL を報告し、それらをバインドします(skills/browser-oracle/run.sh bind <project> --backend <b> --tab-id <id> --url <url> --manual)。これにより、フォローアップが同じセッションをターゲットにできるようになります。 - タブ可視性ゲート(2026-09-15 観測、webgemini): 一部のプロバイダー(Gemini 確認済み)は、タブが非表示ドキュメントである間、コンポーザーの送信を延期します。共有ウィンドウでは、一度に1つのタブだけが最前面になることができるため、N個の同時レーンのうち N-1 個は常に非表示になり、
prompt_too_large_or_stalled(「送信後もプロンプトがコンポーザーに残っている」)として停止します。したがって、同時ブラウザレーンはデフォルトで分離ウィンドウ(シートごとに1つのウィンドウ、レビュワーデスクトップに配置)を使用するため、すべてのレーンタブは可視ドキュメントになります。--window-layout sharedはオプトインです。停止した、すでに入力済みのコンポーザーは救出可能です。skills/surf/run.sh tab.switch <id>でタブを可視にし、キューに入った送信をディスパッチします。この失敗クラスのためにプロンプトを縮小する前に、document.visibilityStateを確認してください。検証済みのシートごとの動作メソッドは$memoryに保存されています(ask_call_logキーask:method:webgemini。ask_call_history.py --handler webgemini --recommendを参照)。 webclaudeは claude.ai チャットタブであり、テスト専用です。エージェンティックな Claude ではありません。claude-fable-low、次にclaude-opus-4-8-highを優先してください(references/seats-and-audits.mdを参照)。
モードルーター
ユーザーリクエストに最も一致する、最も狭いモードを使用してください。
| リクエスト | ランタイムパターン | 必須の詳細 |
|---|---|---|
| メモリバックアップの質問 | ./run.sh ask "<question>" --json | 必要に応じてスコープを含めます。 |
| Oracle 回答 | ./run.sh ask "<question>" --oracle ... --json | 要求された場合は、バックエンド/モデル/ペルソナを明示的に選択します。 |
| Pi ブラウザハンドラショートカット | /skill:ask webgpt What is 2 + 2? から ./run.sh webgpt What is 2 + 2? | Tau single-call に --handler webgpt --execute --json で書き換えられます。--compile-only を使用して、ライブブラウザトランスポートなしで DAG を発行します。 |
| 単一の名前付きハンドラ | ./run.sh tau-dag "<request>" --handler <handler-or-model> --json | ブラウザハンドラは $surf を使用します。非ブラウザハンドラは、Tau によってルーティングされる $scillm モデル名です。ライブトランスポートには --execute を追加します。 |
| Pi ネイティブサブエージェントターゲット | ネイティブ Pi subagent ツール。subagent({ action: "list" }) の後 | Pi 内で実行中で、ユーザーが明示的に pi、subagent、pi-subagent、local reviewer、または local coder を指定した場合のみ。ブラウザ/モデル/Tau Ask リクエストはこのルートを使用しません。 |
| マルチハンドララウンドテーブル | ./run.sh tau-dag "<request>" --handler webclaude --handler gpt-5.5 ... --topology concurrent --execute --json | ラウンドテーブルはプロンプトから Tau-DAG へ。ブラウザハンドラはデフォルトで Ask 所有の新しいウィンドウを取得します。browser-tab-lifecycle.json、dag.json、コマンド仕様、ハンドラレシート、および結合レシートを保持します。 |
| 競合 / ベイクオフ | ./run.sh compete "<task>" --handler webgpt --handler webclaude --handler gpt-5.5-high --criterion deterministic-proof --execute --json | 分離された候補と、競合スコアカードおよび勝者継続リクエスト。ブラウザ/API ハンドラはピアです。プロジェクトエージェントは、プロモーションの前に機能をローカルで検証する必要があります。 |
| クリエイターレビュワーループ | `./run.sh t |
…
[truncated for translation]