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 エージェント Synapse と セマンティックレイヤーの育て方
Search
Hiroaki Sano
June 15, 2026
Technology
2.2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
Hiroaki Sano
June 15, 2026
More Decks by Hiroaki Sano
See All by Hiroaki Sano
バンドルカードの クレジットカード決済システムの 泥臭い運用
hiroakis
10
8.9k
Go の Timezone と Go 1.15 の tzdata 埋め込み
hiroakis
5
3.1k
クレジットカードの通信プロトコル ISO8583 と戦う
hiroakis
31
14k
トレタのインフラ運用
hiroakis
8
5.2k
Other Decks in Technology
See All in Technology
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
160
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
1
450
【FinOps】データドリブンな意思決定を目指して
z63d
3
580
水を運ぶ人としてのリーダーシップ
izumii19
4
1.2k
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
140
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
430
NDIAS CTF 2026 問題解説会資料
bata_24
0
160
Agentic AI 時代のテスト手法: Kiro とはじめるプロパティベーステスト (AWS Summit Japan 2026 | DEV212)
ymhiroki
0
170
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
200
Why is RC4 still being used?
tamaiyutaro
0
270
10x Speed With QA Agent Platform - How we scaled adoption from individual effort to organizational capability
lycorptech_jp
PRO
0
110
初めてのDatabricks勉強会
taka_aki
2
230
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Designing for Performance
lara
611
70k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
A Soul's Torment
seathinner
6
3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
So, you think you're a good person
axbom
PRO
2
2.1k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
480
Transcript
1 株式会社カンム 佐野裕章 2026/06/16 社内 AI エージェント Synapse と セマンティックレイヤーの育て⽅
Data Career Talk #5 セマンティックレイヤーをどう育て、信頼できるAI Agentを開発するか 〜カンム&タイミー&メルカリの実践事例〜
2 2 Engineer at Kanmu, Inc. 佐野 裕章 GitHub @hiroakis
⾃⼰紹介
3 • Synapse と名付けられた社内 AI エージェントの紹介 • 主にセマンティックレイヤーに着⽬してそれをどのように導⼊しどのように運⽤しているか • ※
この発表でいうセマンティックレイヤーはAI エージェントが社内の業務⽂脈で正しく答えるた めの⽤語‧データ構造‧業務ルールの知識層を指す。セマンティックレイヤー⾃体は AI 時代の新 概念ではなく古くから存在している概念のため本発表内での意味を明らかにします。 本⽇の内容
4 目次 INDEX 0 1 2 3 Kanmu Synapse Semantic
Layer まとめ
5 0. Kanmu カンム
6 プロダクト 誰でもすぐに作って買い物できる Visaプリカアプリ 手元の資産形成に活用できる クレジットカード 生活者向け
7 プロダクト 中小事業者向け 分割あと払いサービス AI審査でオンライン完結できる 新しい資金調達サービス 企業向け
8 誰でもすぐ作れる 1分でVisaカードが発行可能 バンドルカード 1 すぐ確認できる 使ってすぐにPush通知で金額確認 2 後でも払える その場でチャージして翌月末にお支払い
3 🎊 2026年1月:累計1,400万DLを突破 ローンの機能も使える ローンもアプリ内で完結 4 New
9 1. Synapse シナプス
10 Synapse (シナプス) • 2025年頃、データ分析を⽀援する AI エージェント として⽣まれた ◦ もともと社員は
SQL を⾃⼒で書いて洞察を得ていた ◦ それを AI 時代に合わせて進化させた結果⽣まれた ◦ ユーザ属性や決済データが格納されているBigQuery をデー タソースとした Text-to-SQL が主な機能 ◦ ⾃然⾔語で問い合わせて洞察を得る • 現在は業務全般の役に⽴つように⼿⾜を広げた ◦ BigQuery に加えて... ▪ Notion 連携 ▪ Google Spreadsheet 連携 ▪ ソースコード (GitHub)参照 ▪ Redash (既存の分析SQL資産) 連携 ▪ …etc • 主に3⼈の⼈間が開発運⽤を⾏っている • 社員の1/3くらいが⽇常利⽤している
11 現在の Synapse 構成図 • ユーザは社内で承認されているクライアントから利⽤可能 ◦ ブラウザ, Claude Code,
Claude Desktop, Codex… ◦ 社内インフラ (Microsoft Entra ID) と連携して認証認可が⾏われる • Synapse Chat ◦ ブラウザにチャット様の UI を提供するウェブアプリケーション ◦ Google ADK が LLM を呼び出し Gemini シリーズが使⽤される ◦ RDS に会話内容を保存 • Tools GW ◦ Synapse Chat (ブラウザ利⽤)および各種 AI ツール (Claude Code類) に Tools を提供する MCP サーバ ◦ Tools が BigQuery へのクエリや GitHub のソース参照などを⾏う ◦ ブラウザ以外のクライアントは Synapse Chat を経由せず Tools-GW に MCP クライアントとして接続 ▪ その場合の LLM は各種クライアント任せ (Claude Code なら Claude シリーズ) • Knowledge ◦ データ構造‧⽤語‧業務に関するドキュメントを返す MCP サーバ ◦ これ⾃体も MCP サーバとなっていてブラウザ側‧AIツール側から透過 的に参照できる ◦ これが現在のセマンティックレイヤーの配置場所
12 デモ: 決済データからユーザを調査する (データは加⼯済) - Synapse Chat からの例 ↓処理過程を展開すると実⾏されたSQLや利⽤されたツール (セマンティックレイヤー含む)を参照できる
13 デモ: 業務について質問 - Claude Desktop からの例
14 デモ: セマンティックレイヤーを参照させずに同様の質問 - Codex からの例 ⼀般的な説明になる ユーザ (社員) が知りたいのはこれではない
15 • 「残⾼」をカンムのバンドルカードの業務という⽂脈で理解している ◦ 「利⽤可能残⾼ (Available Balance)」と「帳簿残⾼ (Ledger Balance)」の存在を理解 ◦
データ構造を把握して SQL を構築して残⾼を調査してユーザの特定を⾏っている • 「オーソリ」をカンムのバンドルカードの業務という⽂脈で理解している ◦ ⼀般的なオーソリ : 与信‧⽀払い能⼒を照会 ◦ バンドルカードのオーソリ: 決済そのもの‧Available Balance を引く • AI エージェントに⽤語‧データ構造‧業務に関するコンテキストが注⼊され、それを期待通 りの⽣成が⾏われている ◦ → セマンティックレイヤー • このセマンティックレイヤーをどう育てて運⽤してきたか Synapse はカンム⽂脈で回答できる
16 2. Semantic Layer セマンティック‧レイヤー
17 当初の構成とセマンティックレイヤーの位置 • Google ADKのシステムプロンプトに書くところから開始 • 当時の選択肢 ◦ ユーザ/システムプロンプト ◦
ファインチューニング ◦ RAG ◦ MCP • エージェントスキルのような概念はまだなかった • なぜシステムプロンプトを選んだか?
18 • ここでいう不確実性とは ◦ LLM は社内の知識を解釈してくれるのか? ◦ LLM は本当に社内の知識を⽂章にすることができるのか? •
例えば先ほどのオーソリに関する質問の例 ◦ ⼀般的なオーソリの意味と、カンムのプロダクトのオーソリには違いがある ◦ こちらが注⼊した知識を優先してくれるのか? ◦ ⼀般的な説明とカンムの説明が混ざってしまうことはないのか? ◦ 途中でおかしな⽂章が⽣成されることはないのか? 導⼊期: 不確実性の検証
19 • 開発者側が管理する前提でかつ⾃然⾔語で記述可能 ◦ -> システムプロンプトとして検証するのが取り回しやすかった • ファインチューニングや RAG だとうまくいかなかったときに、やりかたが悪いの
か?ミドルウェアの設定が悪いのか?ちゃんと検索できているのか?といった考慮す べき事項が増えてしまう 導⼊期: 不確実性の検証
20 導⼊期: システムプロンプトに注⼊して検証 • Markdown と YAML に⽇本語をひたすら⼿書き ◦ Markdown
と YAML である必要はない ◦ 視認性が得られて構造化しやすければ何でもよかった • それを読み込んでGoogle ADKのシステムプロンプトに与える • テストで精度をチェック ◦ Question-Answering ▪ 例えば「オーソリってなんですか?」の期待する回答をあらかじめ⽤意 ▪ Synapse に質問を投げて得られた回答と期待する回答をLLMで⽐較 ◦ SQL Generation ▪ Text-to-SQL の評価の⼿法はいくつかあるが、 EX (Execution Accuracy、 実⾏結果を⽐較) を採⽤ ▪ 例えば「ユーザAの残⾼は?」に対する正解のレコードを⽤意 ▪ 正解のレコードが出⼒されるかを⽐較 • 加えて、ユーザの利⽤をモニタリングしてセマンティックレイヤーを改善していった
21 カンムの場合のセマンティックレイヤーの書き方 name: ドメインモデル名 description: ドメインモデルの説明 bigquery_dataset: BigQuery のデータセットID root_table:
調査の起点となるテーブル名 facts: - description: fact の説明 calculation: fact の調査の手法 - description: fact の説明 calculation: fact の調査の手法 dimensions: - description: dimension の説明 calculation: dimension の調査方法 - description: dimension の説明 calculation: dimension の調査方法 • ドメインモデルごとに定義 ◦ ふわっとしているが、カンムだと「決済」「ユーザ」「カード」程度の粒度としている • ディメンジョナル‧モデリングの概念を借⽤したフォーマットで書いている ◦ 例えば「決済」ドメインにおいては「決済が発⽣した」というのは fact で、「決済ID」「決済したユーザ」な どは dimension となる • root_table は完全にオリジナルの要素で、これはカンムでは分析⽤のビューを作っていないため、調査の起点となる テーブルを指⽰してそっから JOIN で辿らせるようにしている name: BASE I 決済 description: BASE I 決済に関するデータを表す bigquery_dataset: {{ dataset_id }} root_table: {{ table_name }} facts: - description: BASE Iメッセージを受信した calculation: | tbl_a テーブルの1行が1 BASE Iメッセージである col_a カラムでメッセージ種別を判別: - 100: オーソリ - 400: リバーサル - … - description: カードが漏洩カードとして登録された... calculation: | tbl_b テーブルの1行が、漏洩カードの登録1件に対応する... dimensions: - description: トランザクションID calculation: tbl_a テーブルのidカラム... - description: カードID calculation: | tbl_c テーブルの card_id カラム …
22 サービス辞書 title: "用語辞書: 決済、VISA" category: 用語辞書 tags: - 辞書
- 決済 - BASE I - … description: 決済およびVISAに関する用語辞書 last_updated: "2026-03-10" content: | ## オーソリ オーソリは...(略)...バンドルカードではオーソリ受信時に実際に残高 (Available Balance) の減算を実行している。 同義語: Authorization ## Available Balance Available Balanceとは... 同義語: AB ## Ledger Balance Ledger Balanceとは... 同義語: LB • セマンティックレイヤーの⼀部として辞書を管理している • ⽤語の説明や業務の説明を YAML + Markdown の独⾃フォーマットで記述
23 • 少なくとも主要ユースケースでは、必要な知識を与えることで期待に近い 解釈‧回答が得られることが確認できた • 蛇⾜だが、システムプロンプトに⼊れたから良かった、という意味ではな い。システムプロンプトに⼊れたのは検証の取り回しがしやすかったか ら、というのは先に述べた通り。セマンティックレイヤーをコンテキスト に注⼊できれば指⽰通りの解釈と挙動をしてくれることがわかった、とい うことである。
検証の結果...
24 拡張期: MCP サーバへの分離 • 任意の AI ツールからも使えるようMCP 経由で知識 を注⼊するようにした
◦ 各種ツールが同じ知識を参照できるように ◦ 知識の更新を引き続きサーバ側に集約できるように ◦ ログを⾒て参照された知識を追跡しやすいように ▪ ただしシステムプロンプトはまだ活⽤。Google ADK の システムプロンプトにて「semlayer を必ず参照せよ」 と指⽰ ▪ AI ツール側はスキルに同様の指⽰を記述 • スキルは GitHub にホストして共有 • -> この形でも同じようにワークすることがわかった
25 運⽤改善期: セマンティックレイヤー⽣成の⾃動化 • プロダクトは育つ ◦ 機能も増えたり減ったりする ◦ DB 構造は変わる
• ⼿書きで追従するのは厳しすぎる • -> GitHub Actions でリポジトリを巡回するエー ジェントを泳がせて、セマンティックレイヤーに PR を出すようにした • レビューとマージは⼈間達がやっている
26 • 導⼊期: まずは不確実性の検証のために取り回しやすいやりかたを選択 ◦ システムプロンプトに⼿書き ◦ コンテキストに注⼊できれば期待通りに挙動することがわかった • 拡張期:
任意のAIツールに対応 ◦ セマンティックレイヤーをMCP サーバ化して MCP クライアントを搭載した AI ツールであればどこからでもその効果が得られるようにした • 運⽤改善期: ⾃動化 ◦ ⼿書きの限界に直⾯ ◦ GitHub Actions でセマンティックレイヤー更新を⾃動化 セマンティックレイヤーをどう育ててきたか
27 3. まとめ
28 • まずは期待通りの動きをするか⼩さな検証から始める ◦ 使っている LLM や注⼊する内容によってはワークしない可能性ある • ワークしたらどうにかしてコンテキストに注⼊するための仕組みを作る ◦
今だとスキルに記述するのが選択肢の1つになると思うが、その場合は利⽤者に スキルを配り、更新時にも再配布する仕組みを作る必要がある ◦ カンムはMCPサーバに寄せて、スキルとシステムプロンプトでそれを必ず⾒る ように指⽰する⽅式になっている • セマンティックレイヤー⾃動更新の仕組みは遅かれ早かれ必ず必要になる ◦ ⼿で追従するのは限界がある まとめ+これからセマンティックレイヤーを作る⼈に向けての考慮事項の提案
29 • 評価の仕組みを強化 ◦ セマンティックレイヤーの更新や肥⼤化、Synapse のシステム変更に よって回答の精度が落ちたり、何もしていなくてもある⽇突然おかしな 回答が出始める可能性はある ◦ テストで精度を...と話をしたが例えば70/100の正解だったら
OK なの か?60/100の正解だったら NG なのか?といった合格点の設計が難し い 今後の課題
30 Thank you! ありがとうございました