さまよえないようにタスクの範囲を定める
自律エージェントは特定の仕方で失敗する。漂流するのだ。一つのことを頼んだのに、「親切に」別の三つをリファクタリングし、一度も言及していないファイルに触れ、読めないdiffを携えて戻ってくる。直しは賢いエージェントではなく——きつめのブリーフだ。
良い自律タスクは四つの部分からなる:明確なゴール、明示的な制約、具体的な完了基準、そしてエージェント自身が回せるガードレール。ガードレールが最も重要な部分だ、なぜならそれがエージェントがあなたに気づかれずには乗り越えられない柵だからだ。
Goal: Make the failing tests in tests/checkout/ pass.
Constraints:
- Only edit files under src/checkout/. Do not touch src/auth/,
the database schema, or anything in config/.
- Do not add new dependencies.
- Do not change the tests themselves — the tests define correct behavior.
Done when:
- `npm test tests/checkout/` is fully green.
- `npm run typecheck` passes.
- `git diff --stat` shows changes only under src/checkout/.
If you get stuck after two real attempts, stop and report what you
tried and what's still failing. Don't paper over a failure to make
the suite go green.
三つのことがこのブリーフからさまよい出るのを難しくしている。制約はエージェントが触れてよいファイルの周りに壁を引く。完了基準は雰囲気ではなく誰でも回せるコマンドだ。そして最後の段落は、もがく代わりに立ち止まって尋ねる許可を与える——エージェントが20分間「修正し」続けてツリーを見つけたときより悪く残していくスローモーションの惨事を防ぐのが、まさにこれだ。
本物の柵はテストだ。自分のテストを回せるエージェントはきつく正直なフィードバックループを持ち、たいていその中に留まる。自分の仕事を確かめる手段のないエージェントは、壊れたものを自信たっぷりに手渡してくる。この章から習慣を一つ持ち帰るなら:エージェントに自分を検証する手段を与え、それを通すことを完了の定義とせよ。