Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LT発表資料_20260707_菅野又_AIBot
Search
NTTデータ フィナンシャルテクノロジー 決済イノベーション事業部
August 05, 2026
Technology
33
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LT発表資料_20260707_菅野又_AIBot
事業部内Lightning Talkイベントでの登壇資料。
NTTデータ フィナンシャルテクノロジー 決済イノベーション事業部
August 05, 2026
Other Decks in Technology
See All in Technology
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
310
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
310
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
440
Classmethod Company Deck
satoshi7
1
730
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
120
Getting Started with Google Antigravity
glaforge
0
320
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
130
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
180
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
130
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
160
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
360
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.2k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Chasing Engaging Ingredients in Design
codingconduct
0
360
Designing for humans not robots
tammielis
254
26k
Ethics towards AI in product and experience design
skipperchong
2
440
Large-scale JavaScript Application Architecture
addyosmani
516
110k
30 Presentation Tips
portentint
PRO
1
430
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Side Projects
sachag
456
43k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Transcript
コードの調査を民主化しよう - AIを使ったソースコード探索bot 2026年7月7日 @Re+ LT NTTデータフィナンシャルテクノロジー 菅野又 啓 ©
2026 NTT DATA Japan Corporation
 自己紹介 • 菅野又 啓 (すがのまた けい) • 農学 修士卒
(理系だけど非情報系) • 2021年入社 (6年目) 第四担当 主任エンジニア • 入社以来、基本的にずっと同じ決済代行システムに所属 (ロールはほぼDev、たまにSRE的おしごと) • ソフトウェアアーキテクチャに興味があります © 2026 NTT DATA Japan Corporation 2 @nomata̲tech
 背景 ・問い合わせ対応 ・仕様調査 つらい🥺 © 2026 NTT DATA Japan
Corporation 3
 背景 管理web画面を 全員が 触る状態 ・店舗の運用担当者 ・中継システムの運用担当者 ・開発の担当者 ・仕様を把握したいビジネス上位層 ・仕様を把握したい新規参画者
しかし、作りが汚いので不明点や疑問点が続出... © 2026 NTT DATA Japan Corporation 4
 背景 例) ソースコードを検索してみる (44万行のtypescriptプロジェクト!) ❓「決済事業者情報」と付く画面が8箇所もある 改修対象はどれ? ❓ どの画面がどのようにたどり着けるのか不明瞭 ログインユーザは店舗?
法人? 中継元? admin? 開発? © 2026 NTT DATA Japan Corporation 5
 背景 デカすぎて探索しきれない → Claude Codeに調べてもらおう! トークン消費: 20万-50万token = 100-150円ほど(Sonnet5)
回答自体はそこそこ精度よく得られたが... - ややこしいため要件の勘違いが発生 = 何往復か必要で余計にトークンがかさむ - 複数リポジトリにまたがる仕様の調査が難しい - AI Agentが使える人にしかまともな調査ができない © 2026 NTT DATA Japan Corporation 6
 背景 ToBeの前にAsIsをぜんぜん把握できない! ・「今の仕様はどうなっていますか?」への回答に時間を吸われる ・ 新規参画者が現状を把握する難易度が高すぎる ・ 要件定義に苦労するのは仕様の把握が大変なせい これはきっとみんな困っているはず ©
2026 NTT DATA Japan Corporation 7
 案1: Chatbotを作ろう → Agentに手元のソースコードを読んでもらうのではなく、 加盟店webのソースコードを事前学習させたChatBotを作って、 簡単に聞けるようにしよう! Open Web UI
を活用してみる - RAG付きのChatBotを作れるサービス - 環境構築不要! ブラウザからDev以外の人でも簡単に使える © 2026 NTT DATA Japan Corporation 8
 OpenWebUI RAGの手順 • 加盟店管理Webのソースコード (Vue2/Typescript) の内容を要約した RAG用 markdown ファイルをAIで作成
(250個になりました) • 作成した約250個のmarkdownファイルを OpenWebUIのナレッジベースに登録 # 目的 RAGを使用してこのプロジェクトを生成AIに学習させ、 どのフラグがどんな画面の制御に使用されるかを リファレンスするChatbotを作成します。 # 手順 1. このvueプロジェクトが持つページ構造をリスト化します。 これはこのCopilotAgentのためのタスクリストとして使用します。 2. 各ページについて、そのページ内の要素の制御に使用する値と、 その値がどのようなAPIによって取得されたものかとを、 RAG学習用のmarkdownファイルに要約していきます。 • 作成したナレッジベースを指定してAIと会話 3. markdownファイルはプロジェクトルートに配置された`pagetree` フォルダに格納してください。ファイルには階層に基づく適切な名称を つけてください。 4. 1つのページをmarkdown化するたびに、私がレビューを行います。 私が続行を指示したら、次のページの要約に進んでください。 © 2026 NTT DATA Japan Corporation 9
 うまく行かない... 現在取り組んでいる改修タスクでは、この 加盟店ポータルサイトの決済事業者情報画面で、 以下は、いただいたコンテキストに基づく回答です。 事業者ごとにボーナス払い受付日時を登録できる 決済事業者情報画面とアクセス階層について: ようにする必要があります。 提供いただいたコンテキストは「加盟店グループ単位の審査操作ハブ (/merchant-management/screening)」のみで、決済事業者"
- 決済事業者情報画面とはどの画面ですか? またログインアカウントがどの階層の場合に 情報"画面 アクセスできますか? (ベンダー詳細・設定を表示する画面)の説明は含まれていません。 - ボーナス払い受付日時を登録・更新・表示 するには、どのようなGraphQLのIFを そのため、どの画面(ルート/コンポーネント)を指すか、 改修する必要がありますか? またどの階層のログインアカウントがアクセスできるかは、 このコンテキストからは特定できません ❌ 「どの画面かは特定できません」が出てしまった... © 2026 NTT DATA Japan Corporation 10
 RAGむずい 🔍 ナレッジベースの学習ファイルは フォルダ分けをすることができない ・全ての学習ファイルが並列で並ぶ ・index.mdがウン十個ある状態 (重複ファイル無視バグ、既知) 🔍 そもそも多数のファイルの中から、
該当の情報がどこにあるかを見つけられていない 🔍 Open WebUIは単純なキーワード検索はしていない ベクトルDB (ビックデータとか処理するやつ) © 2026 NTT DATA Japan Corporation 11
 Open WebUIの弱点 ❌ 基本はChatbot、ターミナル操作や動的なファイルの検索は苦手 pythonコードは実行できるものの、Agent型LLMレベルの探索機能を自作はキツい ❌ ナレッジベースの学習ファイルの更新が手作業になってしまう APIの口が開けば「CICDの中でマークダウン化してナレッジベースを更新」などの方法は取れる ❌
学習したファイルしか参照できない 要約ファイルに載っている以外の情報を読み取れない = 精密な探索は苦手 ソースコードを学習させることもできるが、今度は全体把握のインデックスを工夫する必要がある ❌ 会話しかできない AIにはやはり具体的な作業をさせたい、Agentモードは偉大 © 2026 NTT DATA Japan Corporation 12
 Open WebUIの弱点 今回の 用途に は 向いて なかっ たかも ...
❌ 基本はChatbot、ターミナル操作や動的なファイルの検索は苦手 pythonコードは実行できるものの、Agent型LLMレベルの探索機能を自作はキツい ❌ ナレッジベースの学習ファイルの更新が手作業になってしまう APIの口が開けば「CICDの中でマークダウン化してナレッジベースを更新」などの方法は取れる ❌ 学習したファイルしか参照できない 要約ファイルに載っている以外の情報を読み取れない = 精密な探索は苦手 ソースコードを学習させることもできるが、今度は全体把握のインデックスを工夫する必要がある ❌ 会話しかできない AIにはやはり具体的な作業をさせたい、Agentモードは偉大 © 2026 NTT DATA Japan Corporation 13
 案2: Agentが調査する仕組みを作ろう Gitlabのパイプライン上で ソースコードをAgentが探索 - 質問者が質問文をフォームから投稿 - Gitlab Issueが作成される
- Gitlabの パイプライントリガー機能 でパイプラインが起動 - Claude Codeがリポジトリを調査して回答を自動作成 - Devが内容をレビューして最終回答を返答 (念のためHuman-in-the-Loop) © 2026 NTT DATA Japan Corporation 14
 親リポジトリがプロジェクト全体を見に行く © 2026 NTT DATA Japan Corporation 15
 PJ全部盛りリポジトリ ai_workspace/ ← このリポジトリ(親リポジトリ) ├── app/ │ ├── payment_manager/
│ ├── transaction_manager/ → 各マイクロサービスのリポジトリ (サブモジュール) │ │ ├── payment-core-service/ └── ... (たくさん) │ ├── external-app/ ← 自チーム管轄外アプリ ├── proto/ ← Protobuf (APIのIF) 定義(サブモジュール) ├── infra/ ← Terraform / Helm(サブモジュール) ├── test/ ← テストツール(サブモジュール) ├── doc/ ← HTML仕様書・ドキュメント ├── api_spec/ ← OpenAPI仕様書(サブモジュール) └── .gitlab-ci.yml ← AI回答システムのエントリポイント © 2026 NTT DATA Japan Corporation 16
 パイプラインがやっていること 1. git submodule update --init --recursive --depth 1
--jobs 4 サブモジュールを全取得 2. mise use --global
[email protected]
glab@latest claude-codeとgitlabのインストール 3. curl --fail -H "PRIVATE-TOKEN:${TOKEN}" "(略)/issues/${ISSUE_IID}" \ -o .bot/issue.json issue本文を取得 4. claude -p "$(cat .bot/full_prompt.md)" --output-format text > .bot/answer.md 非対話モードでclaude code実行 5. ANSWER="$(cat .bot/answer.md)" jq -n (略) | curl -XPOST (略) 一次回答が作成できたら専用のチャンネルにcurlでAPI投稿 6. (Devメンバが内容をチェックし、最終回答を手動投稿) © 2026 NTT DATA Japan Corporation 17
 案2はかなり効果的だった 可能になったこと... • 一次回答の作成コストをめちゃめちゃ削減 • チーム全体で回答品質を確認できる • submoduleなのでソースコードの変更を勝手に追跡できる 一方で犠牲にしたこと...
• AI直接利用のChatBotほどの回答速度は出ない (パイプラインを動かすのでどうしても) © 2026 NTT DATA Japan Corporation 18
 このLTで言いたいこと • プロジェクトについて何でも知ってるChatBotを作ろうとした • けど精度悪いのしか出来なかった、RAGって難しい... • 速度を犠牲にパイプライン化することで一定の回答品質を確保 • Dev以外向けにものを作るって難しい...
© 2026 NTT DATA Japan Corporation 19