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に気持ちよく働いていただく技術.pdf
Search
tsuemura
May 29, 2026
0
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIに気持ちよく働いていただく技術.pdf
tsuemura
May 29, 2026
More Decks by tsuemura
See All by tsuemura
Breaking your system
tsuemura
0
1.2k
自分の軸足を見つけろ
tsuemura
3
1.7k
事業継続を支える自動テストの考え方
tsuemura
0
1.6k
テスト自動化ことはじめ(202412_オープンロジ版) / Enter the testing automation (2024 Dec, for OPENLOGI)
tsuemura
0
1.7k
E2Eテストのシナリオと抽象化の粒度の話.pdf
tsuemura
6
1.3k
テスト自動化ことはじめ
tsuemura
3
630
ようこそ、ソフトウェアテストの世界へ!
tsuemura
1
170
リーダブルなE2Eテストコードのための3つのC
tsuemura
7
1.2k
コンテキストとセマンティクスを意識してリーダブルなE2Eテストコードを書こう
tsuemura
12
30k
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Embracing the Ebb and Flow
colly
88
5.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Odyssey Design
rkendrick25
PRO
2
690
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
ラッコキーワード サービス紹介資料
rakko
1
3.6M
Discover your Explorer Soul
emna__ayadi
2
1.1k
Marketing to machines
jonoalderson
1
5.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Are puppies a ranking factor?
jonoalderson
1
3.5k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
450
Transcript
AIに気持ちよく働いていただく技術 Takuya Suemura @ Ubie株式会社 「お願い」 で終わらせない、 ハーネスエンジニアリングの実践 1
自己紹介 末村 拓也 Ubie株式会社 Software Engineer in Test 自動テストに詳しいエンジニア 前職は自動テストSaaS
2
3
4
前置き 5
AIに仕事させるのはもはや普通のこと 少し前 ChatGPT などに 質問・依頼 文面の下書き、 コード補助 結果は 人間がコピペして使う いま
AIエージェント が前提に ファイル編集・外部ツール・権限つき 自律的に 仕事をやり切る 6
AIエージェントが扱えるタスクは コーディングだけではない UbieにはこんなAIエージェントがいます セキュリティアラートを出したり調べたりしてくれるAI インフラ周りを何でも調べてくれてバグも直してくれるAI n8nのワークフローを作ってくれるAI 7
AIエージェント自体も プロダクトになる 例) LayerX 『バクラクヘルプデスク』 8
しかし、 AIはやらかす --dangerously-skip-permissions のまま rm -rf ./ 「リポジトリを整理して」 が .git
ディレクトリごと削除 に 本番 DB に DROP TABLE を打ち込まれて全消失 API キー を含んだコミット 「壊さないで」 「顧客情報漏らさないで」 ってプロンプトで お願い すれば十分? 9
今日話すこと: AIエージェントの品質保証 10
AIはやらかすかもしれませんが…… 11
人間様はもちろん間違えませんよね? 12
None
再発防止策あるある ちゃんとやります層 ちゃんとやります! 気をつけます! チェックリスト層 チェックします! ダブルチェックします! 14
AIエージェントで置き換えると ちゃんとやります プロンプトの工夫 チェックリスト AGENT.md 15
AIにも人間にも仕組みが必要 人間向け: フールプルーフ、 ポカヨケ AI向け: ハーネス 16
AIエージェントの例 17
Ubieで動いているAIエージェントたち (一例) セキュリティアラートを出したり調べたりしてくれるAIエージェント インフラ周りを何でも調べてくれてバグも直してくれるAIエージェント Warren infra-agent 18
https://zenn.dev/ubie_dev/articles/sec-agent-harness-eng 19
20
infra-agent Slackで @infra-agent で呼べる 「デプロイ失敗したんだけどどうして?」 「権限追加してほしい」 などのリクエストに対応 インフラ関連のログ、 エラー、 GitHubなどにアクセスできる
賢すぎてバグすら直せてしまうので最近はとりあえず何でも infra-agent にお願いすることが多い 21
「勝手に動くもの」 をどうやってテストすればいい? ルールは決まっているが、 破るかもしれない 予想外の更に予想外をやるかもしれない 22
出典: https://www.jasst.jp/symposium/jasst24kyushu/pdf/reportS1_jasst24kyushu.pdf 23
出典: https://www.jasst.jp/symposium/jasst24kyushu/pdf/reportS1_jasst24kyushu.pdf 24
テスト (Checking + Exploring) 動かして確認する 領域 担保手段: 自動テスト + 探索的テスト
例: API契約、 入出力、 回帰、 セキュリティ、 UX、 未知の組合せ 構造的保証 (設計・ハーネス) 「このように動作すべき (しないべき) を強制す る」 領域 担保手段: 構造的制約 例: 権限境界、 通信先制約、 認証情報の隔離 問題領域が極端に広い、 自律的に動作するものに対してのテストには限界がある 問題領域を狭めるために アプリケーション設計 を用いる これをAIエージェント開発の文脈では ハーネスエンジニアリング と呼ぶことが多い テストと構造的保証 25
ハーネスの実例 26
多層防御の考え方を用いる AI Application Agent Platform Agent Model 層 役割 ハーネス例
Model LLMそのもの モデル選択 サンプリングパ ラメータ safety filter Agent 推論・記憶の管理・ツー ルオーケストレーション Agent Platform 実行環境 コンテナ 透過プロキシ Hook AI Application 業務ルール HITL プロンプト構造 化 決定的アプロー チ リンター e2eテスト SKILL.md 27
安全で柔軟な制御を実現するAgent Platform ネットワーク制御 infra-agentの通信は全て mitmproxy を経由する 単純にホストレベルで制御するのではなく、 たとえば、 github.com を一律アクセス不可とするので
はなく、 自社のリポジトリだけにアクセスできるようにする 権限管理 infra-agent はGoogle CloudのCloud Run上で動作し、 最小限の権限だけを付与している 28
決定的アプローチ package ingest.scc alerts contains {} if { not ignore
} # Log4j の脆弱性は対処済みなので問題なし ignore if { input.finding.category == "Initial Access: Log4j Compromise Attempt" } Warrenではアラートの取り込みルールは LLM に判断させず、 ポリシーで決定的(Deterministic)に処理 → 決定的な判定が必要な部分は、 そもそも LLM に触らせない 29
HITL (Human-in-the-loop) 外部にデータを送信する可能性のあるツールは 人間の承認が必須 になっている Slack の対話的ボタンで人間に承認を求める仕組み ツール呼び出しにHITLを強制させるようにしつつ、 30
補足: 判断はLLMだが実行は (人間が実装した) ツール ツール──AIエージェントの 「手足」 ここで基本原則があります。 「判断するのはLLM、 実行するのは人間が 実装したツール」
です。 LLMは自然言語を理解し、 どのツールを使うべ きかを判断しますが、 実際にファイルを読んだり、 コマンドを実行したり するのは、 人間が実装したTypeScript関数です。 この分離により、 安全 性と制御性を確保できます。 laiso. 作って学ぶAIエージェント──TypeScriptとLLMで切り拓くAI時 代のエンジニアリング エンジニア選書 (pp. 55-56). Kindle Edition. 31
設計で防げないものはテストする モデル変更による出力変化と、 それに伴うデグレード 出力の妥当性、 ハルシネーションなどの検知 AIエージェントのワークフローをテスタブルにする ≒ 設計段階でテスタビリティを考えないといけない LangGraphなど LLM一般の話も多いので、
松木先生の本を買おう! 32
まとめ 設計段階で問題領域を絞るとテスト範囲を最小限にできる 複数の層で保証する (多層防御) が重要 テストも設計もあくまで層の一つ、 とも言える 何をどの層で守るかを考えて最適な手段を取ろう 33
人もAIも環境があってこそ気持ちよく働ける 裁量があるだけではただの暴走超特急 「ちゃんとしろ!」 で改善するならプロセスはいらない 気持ちよく爆速で働くためには、 人もAIも 環境 が重要になる AIにとっての環境はすなわちソフトウェアの設計 人間も雑な設計の上で仕事するのヤだもんね
34
Enjoy Testing...? 35
Enjoy Prompting...? 36
Enjoy Engineering! 37