TL;DR

LLMを使った仕様駆動開発では、あるエージェントで作った仕様書を別のエージェントに渡すと、実装品質が大きく下がることがあります。OracleからPostgreSQLへの移行タスクで検証した結果、仕様の長さだけでは品質は決まらず、エージェントごとの解釈の違いが影響することが分かりました。対策として、仕様の書き換えや検索拡張(RAG)が有効な場合があります。

解説

AMI HAPPY

ねえ智也くん、このブログのタイトル見て!「LLM開発エージェント間で仕様書は使い回せるか?」って。なんか面白そうじゃない?

TOMOYA NEUTRAL

ああ、それね。要するに、あるAIエージェントが作った仕様書を別のエージェントに渡して実装させると、品質が落ちることがあるって話だよ。

AMI SURPRISED

え、そうなの?同じ仕様書なら同じように作ってくれそうだけど、なんで品質が変わるの?

TOMOYA NEUTRAL

それが、エージェントごとに解釈の仕方が違うからなんだ。特に、OracleからPostgreSQLへの移行みたいな複雑なタスクだと、仕様書の書き方次第で結果が大きく変わるらしい。

AMI CURIOUS

へー、じゃあ仕様書を長く詳しく書けばいいってわけでもないの?

TOMOYA NEUTRAL

うん、この研究では仕様の長さだけでは品質は決まらないって言ってる。むしろ、エージェントがどう解釈するかが重要で、同じ仕様書でもエージェントが違うと結果が変わっちゃうんだ。

AMI CURIOUS

じゃあ、どうやって対策するの?仕様書を書き直すとか?

TOMOYA HAPPY

そうそう、仕様の書き換えや、検索拡張(RAG)を使うのが有効な場合があるって書いてあるよ。RAGで関連情報を追加してあげると、エージェントの解釈が安定するみたい。

AMI CURIOUS

なるほどね。でも、なんでこんな研究をしたんだろう?

TOMOYA NEUTRAL

理由は、実際の開発現場でエージェントを切り替えることがあるからだよ。例えば、仕様書を作るエージェントと実装するエージェントが別々だと、その間で情報がうまく伝わらないと困るでしょ。

AMI SERIOUS

確かに、チームで分担するなら、引き継ぎがうまくいかないと大変だもんね。

TOMOYA HAPPY

あと、この研究のすごいところは、OracleからPostgreSQLへの移行という具体的なタスクで検証してる点だよ。実際のプロジェクトで使える知見になってる。

AMI CURIOUS

でも、限界もあるんでしょ?

TOMOYA NEUTRAL

うん、この研究では特定のタスクとエージェントの組み合わせしか試してないから、他のタスクやエージェントでも同じ結果になるとは限らない。あと、RAGの効果もタスクによっては薄いかもしれないって。

AMI HAPPY

なるほどね。でも、仕様書をただ長くすればいいってもんじゃないってのは、なんか人間の仕事と似てるかも。

TOMOYA NEUTRAL

確かに、人間でも要件定義書が長すぎると逆に混乱するからね。

AMI HAPPY

じゃあ、私が将来AIエージェントに仕事を頼むときは、仕様書を短く簡潔にまとめるのがコツかな?

TOMOYA SERIOUS

いや、短くしすぎてもダメだよ。適切な情報量と、エージェントが理解しやすい構造が大事なんだ。

AMI HAPPY

あはは、やっぱりAIも人間と同じで、ちょうどいい塩梅が難しいんだね。

TOMOYA NEUTRAL

まあ、AIに限らず、伝える側の努力が必要ってことだよ。