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
LT発表資料_20260707_菅野又_AIBot
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
NTTデータ フィナンシャルテクノロジー 決済イノベーション事業部
August 05, 2026
Technology
26
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時代のアウトプット――変わったこと、変わらないこと / Devsumi 2026 Kansai #devsumi
jnchito
0
500
Model Studio CLI × Token Plan
maigo999
0
210
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
240
あなたの知らないバージョン命名規則
sat
PRO
2
110
SmartHR Engineering Team Deck
smarthr
1
3.4k
小粒でもパワフルなJS Runtime Antjsについて
comamoca
0
120
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
780
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
170
平文パスワードはログに“残り” ── 肝心の侵入は“痕跡すら残らない”
kuroneko13
0
120
三人寄ればチューリング完全
puhitaku
6
2.9k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.4k
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
Featured
See All Featured
Leo the Paperboy
mayatellez
8
2.2k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
280
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Everyday Curiosity
cassininazir
0
290
Designing for humans not robots
tammielis
254
26k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
250
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
550
sira's awesome portfolio website redesign presentation
elsirapls
0
340
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
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