新バージョンデスクトップ v0.1.10 を公開、spec.jev 0.1.10 を内蔵
ドキュメント ドキュメント

はじめに

使い始める デスクトップアプリ コマンドライン

mu を使う

判定器 権限と安全性 目標モードと完了 コンテキスト 教訓 わかりやすいボード サブエージェントとハイブ

リファレンス

設定 機能とオプション トラブルシューティング プライバシー

mu を使う

サブエージェントとハイブ

役割を持つサブエージェントへの委任、パッチとして戻ってくる隔離された編集、そして Jev がビーの間で何を渡すかを決めるハイブ。

spec.jev は 2 つの方法で、作業をほかのエージェントに任せられます。サブエージェントは別々のタスクを受け持ち、ハイブは 1 つの難しい問題に複数のビーを同時に向かわせます。

サブエージェント

モデルは delegate ツールで委任し、あなたは /agents で頼めます。タスクごとに、判定器が難しさに応じて役割、モデルのランク、思考レベルを選びます(swarm.routing)。組み込みの役割:

役割 内容
worker 編集も含めてタスクを行う(既定)
scout 何も変更せずにコードを探して読む
planner 目標を具体的な計画にする。編集はしない
reviewer コードや diff のバグとセキュリティの問題をレビューする。読み取り専用
investigator 何も変更せずに、難しい問題の一つの側面を掘り下げる
browser 内蔵ブラウザで Web サイト上の操作を行う

独自の役割は ~/.spec.jev/agent/agents/ に置きます。同時に動くのは最大 3 つです。サブエージェントは、タスクに当てはまる教訓を受け取り、あなたのハード制約のもとで作業し、会話の権限モードを引き継ぎます。features.swarm.models には、サブエージェントの振り分け先にできるモデルを安いものから順に並べます。何も指定しなければ、すべてのサブエージェントがセッションのモデルを使います。

隔離された編集

ファイルを編集するサブエージェントは、あなたのリポジトリの外にある専用の git ワークツリーで作業します。開始時のファイルは、未コミットの変更も含めて、メインエージェントから見えるとおりです。作業が終わると、変更はファイルと行数付きのパッチとして戻ってきます。判定器は、タスク、パス、行数から、パッチがタスクの範囲に収まっているかを確認し(swarm.patch)、1 行の助言を添えます。止めることはありません。

そのあとメインエージェントが決めます。apply_patch_from は、コミットもステージもせず、インデックスにも触れずに、パッチを全部適用するか、何も適用しないかのどちらかです。git リポジトリの外や、rebase や merge の途中では、サブエージェントはその場で編集し、その理由を伝えます。

ハイブ

マルチエージェントのシステムはどれも、同じ問いに答えています。あるエージェントが知っていることを、別のエージェントにも伝えるべきか。何も伝えなければ、それぞれが同じ行き止まりに入り込みます。すべてを伝えれば、どのコンテキストもほかのエージェントのおしゃべりで埋まります。ハイブでは、判定器が門番です。

ハイブは 2〜6 匹のビーでできていて、ビーはそれぞれ自分の着眼点を持っています。ビーはコードを読み、コマンドを実行し、ブラウザを使いますが、コードは変更しません。それはメインモデルの仕事です。/hive <question> でハイブを始められます。直接の試みで問題が解けないときは、エージェント自身もハイブを始めます。

  • 公開(hive.publish)。ビーが何かを言い終えるたびに、判定器が問います。共有する価値のある発見、行き止まり、決定、ブロッカーはあるか。あれば、追記されるだけの共有ボードに載ります。
  • 配信(hive.deliver)。新しいメモごとに、判定器はほかのビー 1 匹ずつについて問います。このメモはそのビーの着眼点に関わるか。関わるときだけ、これは発見であり、指示ではない と明記して届けます。
  • 訂正(hive.relate)。後の発見が前の発見を覆すことがあります。あるビーが「テストが動かない」と報告し、あとで別のビーが環境変数を一つ消したら動いた、という場合です。判定器は 2 つのメモの関係を読み取ります。覆す、矛盾する、裏付ける のどれかです。覆された発見は訂正になり、古い発見を受け取ったすべてのビーに送られます。矛盾する 2 つのメモはどちらも残り、対立として扱われます。1 分以内に誰も決着をつけなければ、検証役のビーが確認に送られます。

実際の実行の一例です。ビー 3 匹、9 分間で、117 件のメモ候補を判定し、27 件を公開し、16 件をそれを必要とするビーに届けました。すべての判定は実行の台帳に残っています。

見る、止める

/swarm で各ビーがいま何をしているかを見られます。/swarm stop ですぐに報告を求め、/swarm kill で即座に終了させます。時間切れのビーには報告が求められ、報告がなければ終了させられます。止まってしまったモデルやツールはウォッチドッグが処理します。ハイブは必ず結果を持って戻ってきます。

デスクトップアプリのハイブタブには、各ビーとその役割、モデル、いま何を言っているかが並び、誰が誰に何を送ったかのマップが表示されます。多く届いた線ほど太くなり、訂正と対立にはそれぞれ専用の描き方があり、発見が届いた瞬間にその線が光ります。会話の中のハイブカードには、マップの小さな複製が表示されます。

spec.jev が役に立ったら、GitHub で Star を付けてください

Star があると、より多くの人が spec.jev を見つけられます。コード、ディスカッション、すべてのリリースはリポジトリにあります。

GitHub で Star を付ける1