制約がツールを封じる
エージェントに出す出力形式の指定は、ツール選択の指示を兼ねる。 「SVGで書け」「ラスタ画像を使うな」は、書式の要求のつもりでも、画像生成ツールを使うなという命令として届く。
結果が悪いとき、まず指示が粗いのだろうと考えて条件を足す。 だが原因が制約そのものだった場合、条件を足すほど結果は悪くなる。
何が起きるか
エージェントは矛盾した指示を受けたとき、明示された制約のほうを優先する。 だから禁止事項は必ず守られる。守られた上で、望んだ結果から遠ざかる。
見分け方
次の3つが揃ったら、指示の精度ではなく制約を疑う。
- エージェントが制約を守っている。「該当0件」「検証済み」と報告が返る
- **条件を足すたびに結果が悪くなる。**改善方向へ動いていない
- **同種の別タスクは成功している。**図解は通るのに絵だけ通らない、など
3つ目が効く。相手の能力の問題なら、隣接するタスクも同じように失敗するはずだ。 片方だけ失敗するなら、差分は相手ではなく依頼の側にある。
切り分ける
変数を1つずつ固定して潰す。
- **制約を全部外して投げ直す。**内容だけを1行で書く。ここで通れば犯人は制約
- **経路を変えて同じことをやる。**プラグイン経由と直接実行で結果を比べる。同じなら経路は無罪
- **モデルと設定を固定する。**この2つを動かすと、どの変更が効いたか分からなくなる
1で通った時点でほぼ確定するが、2をやっておくと「連携が悪いのでは」という疑いを潰せる。
# 制約なしで投げ直す。これで通れば制約が犯人
codex exec -m gpt-5.6-terra "二刀流の流浪侍を描く"
書き方
出力形式を指定する前に、それが図解なのか絵なのかを切り分ける。
| 依頼 | 形式指定 | 理由 |
|---|---|---|
| フロー図、構成図、手順図 | SVGを明示してよい | 座標計算とコード生成の作業。テキストや線の位置を制御したい |
| イラスト、キービジュアル、写真的な画像 | 指定しない | 画像生成ツールに任せる領域。形式を縛ると封じてしまう |
絵を頼むときは、内容だけを書く。 細かく書けば正確に伝わるとは限らない。長い仕様書より短い一文のほうが望んだ絵に近いことがある。
確認すること
- 禁止事項がツールを名指ししていないか。「ラスタ禁止」は画像生成の禁止と同義になる
- 形式の指定が、その依頼にとって本当に必要か。見た目の都合で書いていないか
- エージェントが冒頭で使うツールを宣言していないか。「◯◯は使わず」と言っていたら、そこが分岐点
- 失敗が続いたら条件を足す前に、全部外した1行で1回投げる
エージェントの応答ログは残しておく。使うツールを自分で宣言していることがあり、後から読むと原因がそこに書いてある。
実際に3回失敗するまで気づかなかった経緯は 自分の禁止事項でAIの道具を封じていた に書いた。 指示書そのものの管理は 指示書を1本にする を参照。