Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstan...
Search
株式会社カオナビ
October 17, 2025
Technology
0
120
なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstands Our Code
2025年7月19日,20日開催「PRODUCT HISTORY CONFERENCE 2025」で登壇した際の発表資料です。
https://lp-prohis.youtrust.jp/
株式会社カオナビ
October 17, 2025
Tweet
Share
More Decks by 株式会社カオナビ
See All by 株式会社カオナビ
データモデリングにもUnit Testみたいのないの? / Bringing Unit Test-like Confidence to Data Modeling with AI
kaonavi
0
140
データ組織ゼロから投資を得るまでの軌跡と未来図 〜AIの前にやるべきこと〜 / Building a Data Organization from Scratch: The Journey to Securing Investment and a Vision for the Future
kaonavi
0
280
OSSコントリビュートのすすめ
kaonavi
1
820
小さなアウトプットが自信をくれた話 / Small Outputs Build Confidence
kaonavi
0
140
AI2027をもとに FY2025上期のAIを人事評価してみた / AI Performance Review FY2025
kaonavi
0
130
若手であることメリット / Benefits of Being Young
kaonavi
0
150
データとAIで明らかになる、私たちの課題 ~Snowflake MCP,Salesforce MCPに触れて~ / Data and AI Insights
kaonavi
0
500
カオナビのディレクターにおけるAI活用(Snowflake MCPによるデータ分析) / AI Utilization by Directors
kaonavi
0
240
使い続けてもらうためDifyによる社内文書 AI検索継続的改善 / Dify-Powered Document Search Improvement
kaonavi
2
190
Other Decks in Technology
See All in Technology
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
450
Ruby で作る大規模イベントネットワーク構築・運用支援システム TTDB
taketo1113
1
300
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
190
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
490
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
700
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
400
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
180
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
MapKitとオープンデータで実現する地図情報の拡張と可視化
zozotech
PRO
1
140
ガバメントクラウド利用システムのライフサイクルについて
techniczna
0
190
ChatGPTで論⽂は読めるのか
spatial_ai_network
9
28k
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
210
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Unsuck your backbone
ammeep
671
58k
The Language of Interfaces
destraynor
162
25k
Building Applications with DynamoDB
mza
96
6.8k
Code Review Best Practice
trishagee
74
19k
Faster Mobile Websites
deanohume
310
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
なぜAIは我々のソースコードを 理解してくれないのか 2025.09.19 | PRODUCT HISTORY CONFERENCE 2025 © kaonavi,
inc.
鈴木 僚太 株式会社カオナビ CTO室 エキスパート(フロントエンド) 自己紹介 © kaonavi, inc. 2
今回のテーマ : コーディング AIエージェント © kaonavi, inc. 3 コーディング AIは否が応でも発展を続けており、
開発効率向上 を考える上で避けられなくなった。 しかし、誰でもいつでも高品質なコードを ポンと出せる状況には至っていない。
今回のテーマ : コーディング AIエージェント © kaonavi, inc. 4 カオナビではコーディング AIエージェント
の導入が 進んでいる。 それに伴い、成功だけでなく失敗の体験も蓄積して きた。 AIエージェントをより使いこなすための礎として、 AIがうまく動いてくれなかった事例 を紹介します。
カオナビでの AIエージェントの活用状況 © kaonavi, inc. 5
カオナビの AI組織 © kaonavi, inc. 6 カオナビではAI推進室を立ち上げ、さまざまな面から AIの活用をサポート。 その中にはコーディングエージェ ントの導入促進も含まれる。
公式noteの記事もどうぞ →
コーディングエージェント © kaonavi, inc. 7 GitHub CopilotとClaude Codeの活用が盛ん。 - テストコードの開発速度向上
- QAエンジニアもテストコード書く - 分野越境 - 新卒メンバーの圧倒的成長 - ディレクターがPoC作る など多数の事例!
しかし…… © kaonavi, inc. 8 実際のプロダクトコードの開発に目を向けると、 うまくいった事例ばかりではない。 大規模な開発は言わずもがな、ちょっとした修正でも うまく動かない ケースが多い!
This Talk © kaonavi, inc. 9 実際にAIエージェントを活用しているエンジニアたちにヒアリ ングして、 うまくいかなかった事例 を集めました。
うまくいかなった事例集 © kaonavi, inc. 10
事例① 謎の関数に AIが気を取られる © kaonavi, inc. 11 カオナビのバックエンドはLaravelで、多言語化のために trans() 関数を使う。
フロントエンドでも、同じtrans()関数を使える仕組みが導入さ れていた。 これは一般的なReactアプリではあまり見られない。
事例① 謎の関数に AIが気を取られる © kaonavi, inc. 12 AIにフロントエンドのバグ調査を依頼すると…… - AIがtrans()を不審に思い、transの定義を探しに行く
(本題のバグ調査をしてくれない) - transの定義がないことがバグの原因とか言ってくる (機能開発時にも使いこなせないことがある)
事例① 謎の関数に AIが気を取られる © kaonavi, inc. 13 対策: フロントエンドにおけるtrans()の使い方を ドキュメント化する
(未実践。CLAUDE.mdに入れるとかよりも、 必要に応じてAIが探し出せることが重要か?)
事例② オートフォーマットに翻弄される © kaonavi, inc. 14 Claude Codeのhooks機能で自動フォーマットを設定 していたケース。 未使用のimportが削除されるようにした結果……
事例② オートフォーマットに翻弄される © kaonavi, inc. 15 Claude Codeさん「 まず、XXのために〇〇をimportします ...
importが削除されています。再度import文を追加します ... ファイルが自動フォーマットされたため、再度編集を行います ... ファイルが自動でフォーマットされてしまうため、必要なコードを作成して から再度組み込みます
事例② オートフォーマットに翻弄される © kaonavi, inc. 16 順番に作業した結果、前の作業が消されてしまい ループにはまった。(自分で気づいて抜け出した) 人間はすぐ気付けるが、AIは気づくのに時間がかかり コンテキストも消費してしまう。
事例② オートフォーマットに翻弄される © kaonavi, inc. 17 対策: 状況に応じてフォーマッターの設定を細かく制御す る?(未実施)
事例③ 空気を読まない © kaonavi, inc. 18 ORM (Eloquent) の便利機能がいろいろあるが、 既存ソースコードではあまり使用していなかった。
ソースコードの統一性の観点から新規コードでも 便利機能は使わない風潮となっていた。 しかしAIは空気を読まずに便利機能を使ってくる。 レビューで弾かれる!
事例④ 空気を読んじゃう © kaonavi, inc. 19 APIのテストにSpectatorを最近使い始めたが、 古い既存のテストコード(使ってない)に引っ張られて AIがSpectatorを使わずにテストを書いてしまう。
事例③ 空気を読まない / ④ 空気を読んじゃう © kaonavi, inc. 20 対策:
最新のコーディングルールを明文化することか。 ただ、量が多くなると精度が悪くなりそうなのが悩み。 AIがすでに持っている「常識」に反しないことも 重要になってきそう。
事例⑤ useEffectで何でも解消しようとする © kaonavi, inc. 21 ReactのuseEffectは誤った使われ方をすることが多い。 AIさんも適当なuseEffectの使い方をしてくる事例多数! - プロジェクト内のuseEffectの使い方の影響?
- 世間の平均的なuseEffect力を学習している?
事例⑤ useEffectで何でも解消しようとする © kaonavi, inc. 22 対策: useEffectの正しい使い方をプロンプトに含めると、マシに なったという報告あり。 useEffectのレビュー観点を加えてAIにレビューさせる
取り組みも。
事例⑥ 架空のAPIを使う © kaonavi, inc. 23 ReactでuseGetRequestという自前のフックがあった。 GETリクエストをするとき用。 それから類推して、usePostRequestという架空のフックを使い 始めた。
(実際にはPOSTリクエスト用のフックはない)
事例⑥ 架空のAPIを使う © kaonavi, inc. 24 対策: おそらく、AIの想像を裏切らない理にかなったAPI 設計をすることが重要。 (ただ、GETとPOSTではReactでの取り扱いがかなり異なることを
理解するのは、一般的なコーディングの実力としてできてほしい。 そこはAIの単純な実力不足)
事例⑦ 変数の命名で混乱する © kaonavi, inc. 25 「平均年齢」を取り扱う機能で、変数の命名が average_age ではなく age
となっていた。 AIに対して「平均年齢」に関する指示をしても、 AIはどこを編集すればいいか理解できなかった。
事例⑦ 変数の命名で混乱する © kaonavi, inc. 26 対策: 命名をちゃんとする。(それはそう) AIはコードを必要最小限だけ読んで理解しようとする。 変数の命名がちゃんとしていることは、効率の良いコード理解の
ために非常に重要。 やはり、AIの“常識”を裏切らないことが大事。
事例⑧ ディレクトリ構成のルールを守らない © kaonavi, inc. 27 古いディレクトリ構成と今どきなディレクトリ構成 (featureベースのやつ)があり、最近のコードは新しい ディレクトリ構成で作られているが、 AIが古いディレクトリ構成でコードを書いてしまった。
新しいディレクトリ構成に沿った既存ファイルもあるのに、AIはそち らに合わせなかった。
事例⑧ ディレクトリ構成のルールを守らない © kaonavi, inc. 28 新旧のディレクトリ構成が両方CLAUDE.mdで紹介されて いたので、旧を尊重してしまった? 対策: 全ての情報をAIに伝えるのではなく、最新の情報に比重を
寄せるべきかも? (ただし古いコードに直面して混乱する恐れはある)
なぜAIは我々のソースコードを 理解してくれないのか © kaonavi, inc. 29
なぜ理解してくれないのか © kaonavi, inc. 30 もちろん理由は1つではない。 しかし、事例を集めることで傾向が見えてきた。
なぜ理解してくれないのか © kaonavi, inc. 31 Q. なぜAIは我々のソースコードを理解してくれないのか A. 新旧のプラクティスが混在しているから 従来取られがちだった「全部一気に移行するのは大変
だから、できるところからやろう」的な戦略は AI時代にはどうやら裏目に出るようだ。つらい。
考察 © kaonavi, inc. 32 新旧プラクティスが混在していると人間の新規メンバーにも つらいが、人間は歴史的経緯を理解し適応する能力がある。 AIは常に新しくオンボーディングしてきた新人であり、プラク ティスの混在は悪影響が大きい。 (歴史的経緯を全部ドキュメント化する? コンテキストの無駄遣いすぎ
る)
やり切ることが重要 © kaonavi, inc. 33 新しいプラクティスを導入するときは、 移行しきることが重要になりそう。 幸い、大量の移行をやり切ることは、 AIによって以前よりも現実的になった。 いわゆるVibe
Codingなども、 移行用のスクリプトを作ることに活用できる。 自分も最近、画面数200以上のアプリで Reactのバージョンアップをやり切りました。
余談: AIの常識レベルを見極める © kaonavi, inc. 34 AIが持つ“常識”を裏切らないことが、AIのポテンシャルを発 揮する近道になる。 一方で、求められるレベルがAIの実力よりも高いこともある。 そこはプロンプトによる補正が必要だが、補正量を少なくして
最適化を図りたい。 AIの実力の向上にも敏感になろう。
まとめ © kaonavi, inc. 35
まとめ © kaonavi, inc. 36 弊社のエンジニアから収集したAIコーディングの事例 を考察し、AIによるコーディングがうまくいかない原因が「新 旧のプラクティスが混在しているから 」である ケースが多いことが分かった。
AIコーディングの時代、移行するならやり切る姿勢が 重要になるかも?
We are hiring! https://corp.kaonavi.jp/recruit/list/ 選考を希望する方 https://hrmos.co/pages/kaonavi/jobs/casual21 まずは話を聞いてみたいという方 37 © kaonavi,
inc.