AIエージェント時代、正直しんどい話
AIエージェント時代、正直しんどい話
2025年12月31日
年末やし、今年AIと格闘してきた感想を正直に書いておこうと思う。
今日、Qiitaで「Agent OS」っていうClaude Codeの拡張ツールの記事を読んだ。仕様駆動開発をAIエージェントで回せますよ、サブエージェントに仕事振れますよ、みたいな話。
一見ええやんって思うやん?
でもな、冷静に考えたら、束になってかかってくるAIエージェント全員と対話せなあかんってことやねん。
人間の組織ってよくできてる
普通の会社やったら、部長は課長と話すだけでええねん。課長は部下の面倒見てくれる。リーダーがメンバー管理してくれる。
信頼があるから「任せる」ができる。見なくてええ範囲が生まれる。
でもAIエージェントは違う。
backend-specialistの成果物チェックして、test-engineerの成果物チェックして、frontend-specialistの成果物チェックして...全部俺。
中間管理職おらんねん。
サブエージェント増やしたら効率上がるんちゃうの?いや、増やすほど俺の確認作業も増えるねん。
仕事の質が違いすぎる
人間の部下やったら「ここ、AとBどっちがいいですか?」って小出しに聞いてくるやん。ちょっとずつ確認のキャッチボールができる。
AIは違う。
「できました!」ってドカンと書類の山積んでくる。
spec.md(200行)、tasks.md(100行)、変更ファイル5個、テスト結果レポート。「ご確認ください」って。
いや、確認が「会話」やなくて「レビュー業務」になってるやん。
これがしんどい。ほんまにしんどい。
AIの「完璧です」が信用できん
AIって自信満々で「完璧です!」って言うてくるやん。
でも完璧なんて本当はないねん。ある特定の条件下で完璧に動くだけで、ちょっと前提崩れたら全体崩れる可能性あるやん。
人間は「前提が崩れる前提」で考える。
- この仕様、将来変わるかも
- このライブラリ、メンテ続くんか?
- 本番環境、メモリ足りるか?
- 担当者おらんくなったら誰がメンテするん
AIはこういうの考えてない。「今この瞬間、この仕様で、このテストで動きました」だけ。
点で考えてる。人間は面で考えてる。
レビューしきれん問題
AIって、俺が思ってない解法を提示してくることあるやん。知らんライブラリ使ってきたり、知らんパターンで書いてきたり。
人間同士やったら「俺この辺詳しないから、お前見てくれ」って分担できる。
AIの出力は?
詳しい人がおらん。 自分で全部判断せなあかん。
Stack Overflow見ても分からん、ググっても分からん、でも動いてる。「まあ動いてるし...ええか...」ってなる。
この不安がずっと続く。
「分からんけど動く」が一番キツい
自分で書いたコードなら、限界が分かる。「ここはnull来たら落ちるけど、この呼び出し元からはnull来んから大丈夫」って。
AIが書いたコードは、なんで動いてるか分からん。いつ壊れるか分からん。壊れたら直せるか分からん。
コードの「所有感」がないねん。 借り物で仕事してる感覚。ずっと薄氷の上歩いてる。
記憶に残らん問題
これ地味に深刻やねんけど、AIにコード書かせると記憶に残らん。
手を動かして書いてたら「あー、ここ3回書き直したな」「このバグで2日溶かしたな」って苦労と紐づいて覚える。
AIに書かせると「動いた、マージした、終わり」。脳に引っかかってない。
1年後に「あのプログラムってどうやったっけ?」って聞かれても、全然思い出せん。作者なのに初見。
研究システムみたいに10年使うやつ、これ致命的やで。
結局AIの使い所ってどこやねん
色々考えて、今のところこう思ってる:
メンターとして使うのが一番ええ。
「作って」って言うんやなくて、「ここどうしたらええ?」って相談する。選択肢出してもらって、自分で選んで、自分で書く。
理解してから手を動かすから、不安がない。記憶にも残る。
あとは:
- 自分でも書けるけど時間かかるやつの代筆(レビューできるから安心)
- 使い捨てスクリプト(理解せんでもええ)
- 叩き台(採用するかは自分で決める)
「AIの出力をそのまま本番に入れる」以外、やな。
正直なところ
「AIで楽になる」って言われて蓋開けてみたら、楽しさまで奪われた感じがある。
コード書くの、本当は楽しかったはずやのに。今は「指示する→待つ→読む→分からん→不安」の繰り返し。
認知負荷だけ上がって、達成感は減った。
最近、体動かす仕事の方が健康にええんちゃうかって思う時がある。目に見える成果、終わりがある、体が疲れたらちゃんと寝れる。
まとめ
AIエージェント、便利は便利やけど、人間側の認知負荷の問題は全然解決してない。
- 全承認が一人に集中する
- ドカンと成果物を積まれる
- レビューしきれん
- 不安が消えん
- 記憶に残らん
「Oversight fatigue」「Cognitive overload」って研究者も問題視してるらしいけど、解決策はまだない。
結局、人間の仕事はなくならん。「AIという道具を使いこなす仕事」が増えただけ。しかもその仕事、認知負荷高すぎて人間が壊れかけてる。
皮肉やな。
来年はもうちょっと、AIとの付き合い方を考えなあかんな。
全部任せるんやなくて、メンターとして使う。自分の手で書く部分を残す。記憶に残る開発をする。
そうせんと、たぶん頭おかしなるわ。
おわり。
Discussion
全くもって同感です。特に
これは自分もやっています。基本的に意見をもらう形で活用している。
エージェントに書かせるにしても理解できる範囲でやりたい。部分的に使うとか、コア設計とリファレンス実装は理解して、派生するもの(同じ情報を違うサービスのAPIで取得したいときの追加実装など)にエージェントを使うとか。
コメントありがとうございます。設計の初期には、まずアーキテクトとして参加してもらうのはありかもしれませんね。そこでまともな設計になればそうそう破綻はしないはずですし、概念が理解できれば、責務範囲も明確になる。おっしゃるようにコア設計が大切だと思います。結局インテリジェントな使い方というよりは、多角的な視点で設計をする役目は人間で、現状のAIは、そのモジュール化やオブジェクト志向化のプロトタイピングをさせて、人間に安心感を与えるような、そういう使い方が一番幸せな使い方のような気がしてます。
示唆に富む良い記事をありがとうございます!ただ、AIエージェントが人をしんどくしているというより、抽象化や責任分離を放棄した設計が、人をしんどくしているのだと理解しています。
「Oversight fatigue」や「Cognitive overload」も、問いを立てる側の抽象化・言語化の不足や、責任境界の未定義によって生じている側面が大きい。
本来切り分けるべきものを大きな塊として扱ってしまい、そのすべてを人が把握しようとすることで、認知負荷が増えているように感じます。不測の事態を避けるために「完全に理解したい・把握したい」と思う人間側の欲求もあるとは思いますが、全てを理解する必要は本来ないはずです。機械語とか良い例でしょう。
いずれにせよ、今後はとりあえず、設計やアーキテクチャの重要性がさらに増し、責任を適切に分離しながら、人間の認知負荷が低くなる形でAI(LLM)の実装を整理する手法が、より評価されていくのではないかな、と思います。クリーンアーキテクチャとか。まぁ今はまだ人間が構造に責任を持てる時代ですが、いずれはどうなることやら...ですが。
それはおっしゃる通り、上の方にコメントで書いたような使い方で基本設計の初期からメンターとしてAIに入ってもらい、人間がAIからの知識を吸い上げながらアーキテクチャを構築することに集中できればかなり今のAIでもいい線いくんじゃないかと思ってます。全てのコードを理解する必要はない、それはそうなんですが、エンジニアって、「自分の書いたコードについては1行1行に責任を持つ」ということにプライド持ってる人間しか生き残れないのかなと思ってて(ライブラリとか他人が書いたコードはそいつの責任やなとは思えるんですけど)、AIの生成物=自分のコードと考えると、全部把握しておかなきゃあかんかなーと思うのです。プロが「この部分はAIが書いたのでよくわかれへんのですが…」なんて答えて信用されへんやろうしって。
まあ、結局どこまでAIを信頼するか問題でもあるんですけどね。めちゃめちゃ信用していいっていうなら、全部AIでもいいんやけど。レビューもAI同士でやってもらって。。てなところですな~
まさに!同じ気持ちの人多いのでは。
人間の脳の処理能力の限界を越えるので並行処理はそこまでできないですね。
ほんま、頭がエージェントの数だけあったらいいのに
私も一年振り返って、外注費が確保できなかったので、Roo Codeですが、作られたコードを見て理解するのに疲れ果てた感が一番です。
完璧・完了とかテストせずにAIから言われると、ルールで縛ったり、指示のプロンプトが人なら一発アウトな言葉が出たりもします。傷つかないのはわかってても、後味悪かったり…
エージェントのペルソナで、アーキテクト、コーダー、テスター、ユーザなどで相互チェックさせもするのですが、効果があるのかないのかわかるのにどれくらいかかるかな。
一日の脳疲労は寝つきも悪く、やり方模索、私も続けます!
あけましておめでとうございます。Roo Codeというのがあるんですね~。私もAI同士の壁打ちを考えたりもしたのですが、結局、自分の手に回帰する感じになりそうです。もう1~2年後はわからんなぁと思うんですけど、「責任を持たせる」が、まだ現時点のAIには自分的にはできひんな~と。ソース更新したらドキュメントも更新…できてへん、って指摘したら、「あ、忘れていました」みたいなやり取りって、たまにありませんか?人間もそれは同じですが、AIよりは信頼できるかな~と。エージェントもテスターとかコーダーとか、一体誰と話してるんだかわからなくなるし、形式を守ることにエネルギーを注いでいたら1日終わってた、みたいなのが徒労感ありすぎて。
基本に立ち返って、基本設計はガッツリやろうかな、と。オブジェクトに責務を持たせることはできるので、今は人+オブジェクト+AIで、自動テストケース作りもAIに任せたいなと思っているところです。油断するとあっという間にテストファイルで汚染されますが~笑
めっちゃ共感しました
ありがとうございます。上手く付き合っていく方法を試行錯誤ですね。それまでに倒れないようにしないと😵💫
「記憶に残らん問題」凄い共感。自分が作った(?)はずなのに本当に記憶にない仕様があったりします。
思ってもない仕様を作ってたり想定していたりすることもありますよね、見抜くのが難しいです。本当の中に嘘がちょっとだけ混ざってると見抜くのが大変笑
わかり味が深すぎる。
もう少しAIが進化したら、中身は完全にブラックボックスのシステムが作れるかも...とは思うんですけど、非機能要件とかどう実装してるから穴がある・ない、みたいな根拠が必要な時に中身知ってないと困るんですよね。それもAIに説明させるかって話なんですが。。じゃあ自分は何に責任を負ってるのかって、わけがわからなくなりますね。
ある程度の範囲を作ってもらうよう投げる場合でも、
必ず既存のコードを見せた上で(それらから逸脱しないように)やってもらうことと、
AIを後輩のような立ち位置にして、コードレビューを自分が必ずするだけでもだいぶ質のブレや間違い、ミスは抑えられるかなと思います。
そして自分ごととしてやるにはまさしく壁打ち役になってもらうのが一番いい気がしますね。
方向性の相談、実装内容の相談、、、としていると、作るのは自分だという感覚が強く残ります。
既存のコードがある場合はうまくいきそうですね。基本設計ができているっていうことですもんね。そういうところの肉付け役に使ってく場合には強そうです。
0からAIに頼むと、数分で数千行レベルのコードを書いてくるし、人間がレビューするには物量的に無理かな~と思っていて、管理しきれないので、細かく・細かく使っていくのがコツなんかな~と1年ほど使ってみて感じています。ただ、AI同士でレビューできる未来もすぐ来ると思てるんで、過渡期のしんどさかもしれません。AI開発が当たり前になれば、SEは要件定義とAI管理が仕事になるかもしれないですね。
数千行は確かに厳しいですね。。
AI同士のレビュー、いいですね!
ご存知かもですがgithubのプルリクエスト上でcopilot(開発中は別AIがメイン)にワンクリックでPRレビューお願いできるので、今のチームだと人間に依頼する前にcopilotレビューを通すことをデフォルトルールにしており。
割とちゃんと細かいミスも指摘してくれるので、助かっております!
なるほどー、そういう使い方もできるんですねぇ、勉強なります~