Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
なぜAIは我々のソースコードを理解してくれないのか / Why AI Misunderstan...
Search
株式会社カオナビ
October 17, 2025
Technology
0
150
なぜ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 株式会社カオナビ
カオナビにおけるAI活用の歴史と現在 / AI at kaonavi: Past and Present
kaonavi
0
54
BDD_ AI駆動開発の第一歩 / BDD: First Steps in AI-Driven Development
kaonavi
0
48
インフラエンジニア、Claude Codeを連れてプロダクトチームへ留学中 / Infrastructure Engineer on Loan to Product Team with Claude Code
kaonavi
0
36
スクラムを一度諦めたチームにアジャイルコーチが入ってどう変化したか / A Team's Second Try at Scrum with an Agile Coach
kaonavi
0
290
データモデリングにもUnit Testみたいのないの? / Bringing Unit Test-like Confidence to Data Modeling with AI
kaonavi
0
150
データ組織ゼロから投資を得るまでの軌跡と未来図 〜AIの前にやるべきこと〜 / Building a Data Organization from Scratch: The Journey to Securing Investment and a Vision for the Future
kaonavi
0
440
OSSコントリビュートのすすめ
kaonavi
1
890
小さなアウトプットが自信をくれた話 / Small Outputs Build Confidence
kaonavi
0
170
AI2027をもとに FY2025上期のAIを人事評価してみた / AI Performance Review FY2025
kaonavi
0
170
Other Decks in Technology
See All in Technology
AI開発の落とし穴 〜馬には乗ってみよAIには添うてみよ〜
sansantech
PRO
8
3.2k
ビジュアルプログラミングIoTLT vol.22
1ftseabass
PRO
0
140
Regional_NAT_Gatewayについて_basicとの違い_試した内容スケールアウト_インについて_IPv6_dual_networkでの使い分けなど.pdf
cloudevcode
1
130
なぜCREを8年間続けているのか / cre-camp-4-2026-01-21
missasan
0
1.3k
The Engineer with a Three-Year Cycle
e99h2121
0
160
CodeRabbit CLI + Claude Codeの連携について
oikon48
1
640
Oracle Cloud Infrastructure:2026年1月度サービス・アップデート
oracle4engineer
PRO
0
110
みんなでAI上手ピーポーになろう! / Let’s All Get AI-Savvy!
kaminashi
0
210
AIとともに歩む情報セキュリティ / Information Security with AI
kanny
2
820
AI Agent Agentic Workflow の可観測性 / Observability of AI Agent Agentic Workflow
yuzujoe
7
2.3k
AWS Amplify Conference 2026 - 仕様からリリースまで一気通貫生成 AI 時代のフルスタック開発
inariku
3
380
メルカリのAI活用を支えるAIセキュリティ
s3h
0
210
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
2
230
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
420
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.5k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
110
YesSQL, Process and Tooling at Scale
rocio
174
15k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
220
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
The SEO identity crisis: Don't let AI make you average
varn
0
56
The agentic SEO stack - context over prompts
schlessera
0
600
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
280
Testing 201, or: Great Expectations
jmmastey
46
7.9k
[SF Ruby Conf 2025] Rails X
palkan
0
720
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.