mu を使う
目標モードと完了
タスクフレーム、/goal、そして実行が早く止まったり、脱線したり、堂々巡りしたりするのを防ぐチェック。
長いタスクが失敗するいちばん多い原因は、間違った答えではなく、早く止まることです。モデルはほぼ終わりましたと言い、テストは一度も実行されていない。mu にはこれを防ぐ仕組みがいくつかあり、どれもあなたが本当に望んでいることの記録、つまりタスクフレームの上に成り立っています。
タスクフレーム
タスクフレームには、目標、あなたの言葉どおりのハード制約とその出どころ、現在のサブゴール、受け入れ条件が入ります。受け入れ条件は、モデルが消し込んでいく ToDo リストでもあります。
あなたが送るメッセージは、それぞれ一度だけ判定されます(task.frame)。新しいタスクか、新しいハード制約か、訂正か、新しいサブゴールか、変化なしか。変化があるときだけモデルがタスクフレームを書き直すので、ただのありがとうには何のコストもかかりません。/frame で現在のタスクフレームが表示されます。タスクフレームは会話のツリーに従い、フォークや巻き戻しのあとは、そのブランチのタスクフレームが戻ってきます。
目標モード
/goal packages/api のすべてのテストが通り、README に新しいフラグの説明がある
エージェントはすぐに作業を始め、条件が満たされるまで続けます。/goal だけを入力すると、目標、その状態、最後のチェックの理由、次のステップが表示され、目標がなければ条件を尋ねます。/goal clear で終了します。アプリでは入力欄から目標を設定し、目標の行にその状態が表示されます。
エージェントが止まろうとするたびに、モデルが証拠を読んで決めます:達成、具体的な次のステップを付けた続行、またはあなたが必要。証拠とは、目標、まだ終わっていない受け入れ条件、編集したあと確認していないファイル、直近のテスト、ビルド、lint の実行とその結果、実行が行ったこと、そして締めくくりのメッセージです。言葉より事実が優先されます。未完了の受け入れ条件や確認していない編集があれば、締めくくりのメッセージが何と言おうと、常にまだです。Jev(goal.met)が答えるのは、チェックするモデルが答えを出さないときだけです。
次の場合、エージェントは自分で止まり、その理由を伝えます:
| 理由 | 既定値 |
|---|---|
| あなたが必要(あなたにしかできない選択) | |
| Esc を押した、またはモデルの呼び出しが失敗した | |
| ツールを 1 回も呼び出さずに終わった実行が続いた回数 | 2 |
| 進捗がないと判定された実行の回数 | 2(1 回目は方針を変えるよう伝える) |
| 最後のメッセージ以降の続行の回数 | 20 |
| 最後のメッセージ以降の経過時間(分) | 180 |
一時停止のあとは、次のメッセージで目標が再開されます。セッションを開き直すと、実行中だった目標は一時停止の状態で戻り、実行中のまま戻ることはありません。
毎ターンの終わりのチェック
目標がなくても、各ターンには次のチェックがあります:
- 完了の確認(
turn.completion)。モデルが終わったと言うと、mu は何かでそれを確かめたかを問います。確かめていなければ、たとえばテストを実行して確認するよう、一度だけ促します。 - 途中で止まった(
turn.continue)。次にテストを実行します で終わってそれを実行しなかった実行や、すでに頼んだ作業について進めてよいかを尋ねた実行は、作業に差し戻されます。1 メッセージにつき最大 2 回です。プッシュ、公開、削除、支払いのように、取り消しにくい手順やこのマシンの外に及ぶ手順に、この方法で向かわせることはありません。
脱線と行き止まり
- 逸脱検知(
turn.drift)。ツール呼び出し 6 回ごとに、mu は作業がまだ目標に役立っているかを確認します。もう一つの失敗である堂々巡り(直近 8 回のうちに同じ呼び出しが 3 回)は、ルールが捉えます。 - 判定による巻き戻し(
turn.rewind)。エージェントが堂々巡りをしたり、一つのコマンドが失敗し続けたりすると、判定器はそのやり方が行き止まりかどうかを問います。確信のある行き止まりで、かつ進捗がないときだけ、ターンのチェックポイントまで戻ることを提案し、何を試してなぜやめたかを書き添えます。提案はあなたの返答を 2 分間待ち、返答がなければ実行はそのまま続きます。自分で巻き戻すことはありません。
手動での巻き戻し
/checkpoints は、現在のブランチのスナップショットを新しい順に一覧します(番号、ターン、時刻、それ以降に変わったファイルの数)。/rewind は最新のものに、/rewind 3 は 3 番に戻ります。まずどのファイルが元に戻る、削除される、復元されるかを示し、それからファイル、会話、またはその両方を戻すかを尋ねます。/rewind undo で巻き戻しを取り消せます。詳しくは権限と安全性を参照してください。