Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと

TSKaigi 2026 Day2 / 14:20 ~ 14:50 (RightTouchトラック)での10分セッションの発表スライド

AIエージェントが日常的に使われる時代に、エージェントが操作しやすいCLIツールの設計はどうあるべきか。本トークでは、BunとTypeScriptを用いたCLIツールの開発・検証を通じて見えてきた「エージェント親和性の高いCLI設計」の知見を共有する。

Bunのネイティブ実行速度・TypeScript直実行・標準APIの充実により、CLIのプロトタイピングが劇的に速くなった。一方でAIエージェントがCLIを操作する場合、出力の機械可読性・エラーハンドリングの明示性・冪等性など、人間向けとは異なる設計上の考慮が必要になる。

実際にOpenClawのエージェントハーネスをBunで量産する中で得た具体的な知見と、TypeScript/Bunエコシステムがこの文脈でどう活きるかを10分でまとめる。

Avatar for よしこ

よしこ

May 23, 2026

More Decks by よしこ

Other Decks in Programming

Transcript

  1. 2 ⾃⼰紹介 事業開発部 エンジニアリングリード 2020年 中途⼊社 yoshikouki よしこ / 吉本

    康貴 • 鹿児島.mk・エンジニアBar 主催(鹿児島在住) • 理学療法士 → ソフトウェアエンジニア • 自宅でAIエージェント OpenClaw が稼働中 • デジタルプロダクト開発・3Dプリントが趣味
  2. OpenClawが⼈間も含めたタスク を管理する git hooks の類似機能で拡張する よくあるフィードツール sitemap にも対応して便利に 使っている git

    hooks の類似機能で拡張する OpenClaw と作った CLIの例 3 ⾃⼰紹介 feeds-cli todai discorddaemon Discord Bot をCLI経由で操作 通知を起点にスクリプトを フックできる freecad-cli AIエージェントからFreeCADを 操作するCLI ⼈間の利⽤は想定していない applefm macOS 26+ でリリースされた Apple Foundation Models のCLI nota Notion API / SDK を使⽤するCLI 公式の ntn でお役御免に。
  3. 4

  4. AIエージェントがCLIを使う時代 6 • Claude Code, Codex, OpenClaw... など • yoshikouki/freecad-cli

    ◦ OSSの3Dモデリングツール FreeCAD をCLIから操作 ◦ 想定利⽤者はAIエージェントのみ • ⼈間もユーザーであり続けるだろうが、 今後はAIエージェントも主な想定利⽤者になる AIエージェントがCLIを使う時代
  5. OpenClawが⼈間も含めたタスク を管理する git hooks の類似機能で拡張する よくあるフィードツール sitemap にも対応して便利に 使っている git

    hooks の類似機能で拡張する ほとんどが OpenClaw 向け 7 feeds-cli todai discorddaemon Discord Bot をCLI経由で操作 通知を起点にスクリプトを フックできる freecad-cli AIエージェントからFreeCADを 操作するCLI ⼈間の利⽤は想定していない applefm macOS 26+ でリリースされた Apple Foundation Models のCLI nota Notion API / SDK を使⽤するCLI 公式の ntn でお役御免に。 AIエージェント AIエージェント システム AI AIエージェント AIエージェント 人間 AIエージェントがCLIを使う時代 AI
  6. $ gws drive files list --params '{"q":"name contains \"TSKaigi\""}' {

    "files": [ { "id": "****", "kind": "drive#file", "mimeType": "application/vnd.google-apps.presentation", "name": "AIエージェントと協働する CLI開発 - TSKaigi 2026" } ], "incompleteSearch": false, "kind": "drive#fileList" } AIエージェントがCLIを使う時代 8 gws CLI (googleworkspace/cli)
  7. プリミティブ 単⼀の概念に作⽤(CRUD) そのCLIで取り扱える概念の コンテキストにもなる 基本利⽤の中⼼となる機能 例: $ gh issue .

    統合 複数の概念に対して作⽤ ドメイン知識を要求する操作 副作⽤‧危険操作へのガード (各コマンドに対するサブコ マンドとして提供されること も) 例: $ gh search . 緊急ハッチ 既存操作を超えて利⽤できる 機能 AIが⼗分な前提知識を保持 しているなら、ハッチの提供 だけで⼗分なケースもある 例: $ gh api . 12 AIエージェントのためのCLI設計 機能は3つの軸で⽤意する
  8. --help. 事前にコンテキストを伝える しかし、必ず叩いてくれるとは 限らないことを念頭に置く Agent Skills も検討する 異常に気付ける インターフェースを⽤意する 13

    AIエージェントのためのCLI設計 エージェントのコンテキスト補完 --json. 機械可読‧変換可能な出⼒ --json-schema. 結果‧出⼒を取捨選択できる ように渡しておく エラー 以下を伝える What なんのエラーか Why なぜエラーが起こったか How どのようにするべきか $ * doctor. $ * log. エラーの調査、エージェントの コンテキストを跨いだ操作など で探索可能なインターフェース を⽤意する
  9. 14 • 必要な周辺道具が単⼀環境で実現 ◦ 実装‧テスト‧配布が⾼速 • 豊富な Bun API •

    開発上の摩擦が少ない 特徴は相対的に薄くなりつつあるが、 試⾏する開発リズムとの相性で採⽤ Bun がCLI開発を加速 AIエージェントのためのCLI設計 Bun API(例) SQLite/S3/Redis JSON/YAML/TOML Cron Secrets WebView Image
  10. 15 AIエージェントのためのCLI設計 利⽤者 インターフェース 機能 データ ⼈間 AI Agent CLI

    MCP Other Tools --json-schema. --help. $ * doctor. $ * log. --json. システム $ * {commands}. アプリデータ ユーザデータ 各種ログ 統合 プリミティブ 緊急ハッチ
  11. 17

  12. AIエージェントの時代でも変わらないもの 18 • ここでは Bun の Rust 移⾏の是⾮は置いといて‧‧‧ • Claude

    Max プランの Claude Code 対応が2025年5⽉ ◦ まだ1年しか経っていない ◦ ChatGPT 登場からは3年半 • では1年後‧3年半後にどのように変わっているか? ◦ → 結論、分からない。なので問いを変える AIエージェントによる変化
  13. 19 ジェフ‧ベゾス(Amazon.com 共同創設者) "It's interesting, I do get asked quite

    frequently what's going to change in the next 10 years. One thing I rarely get asked is probably even more important — and I encourage you to think about this — is the question: What's not going to change in the next 10 years." “今後も変わらないものは何か” 出典: Live from Las Vegas, it's re:MARS 2019 https://www.aboutamazon.com/news/innovation/live-from-las-vegas-its-re-mars-2019
  14. 20 利⽤者 インターフェース 機能 データ ⼈間 AI Agent CLI MCP

    Other Tools --json-schema. --help. $ * doctor. $ * log. --json. システム $ * {commands}. アプリデータ ユーザデータ 各種ログ 統合 プリミティブ 緊急ハッチ AIエージェントの時代でも変わらないもの
  15. 21 利⽤者 インターフェース 機能 データ ⼈間 AI Agent CLI MCP

    Other Tools --json-schema. --help. $ * doctor. $ * log. --json. システム $ * {commands}. アプリデータ ユーザデータ 各種ログ 統合 プリミティブ 緊急ハッチ ? ? 変わら ない? 変わら ない? AIエージェントの時代でも変わらないもの
  16. 22 利⽤者 インターフェース 機能 データ ⼈間 AI Agent CLI MCP

    Other Tools --json-schema. --help. $ * doctor. $ * log. --json. システム $ * {commands}. アプリデータ ユーザデータ 各種ログ 統合 プリミティブ 緊急ハッチ この流れは 変わらない AIエージェントの時代でも変わらないもの
  17. 利⽤者 インターフェース 機能 データ ⼈間 AI Agent システム アプリデータ ユーザデータ

    各種ログ 品質 (ビッグワードを形で表現) AIエージェントの時代でも変わらないもの
  18. • Linter • TypeScript • Test • Coverage • Error

    tracking AIエージェントの時代でも変わらないもの 25 品質を担う仕組み • Bundle size / Web Vitals • Accessibility check • Security scan • Observability
  19. 地図としての SQuaRE ファミリー規格( ISO/IEC 25000 系のソフトウェア品質要求‧評価の規格群) 利⽤時品質モデル ISO/IEC 25019 データ品質モデル

    ISO/IEC 25012 製品品質モデル ISO/IEC 25010 26 26 AIエージェントの時代でも変わらないもの サービス品質モデル ISO/IEC TS 25011
  20. 27 機能適合性 性能効率性 互換性 対話性 信頼性 セキュリ ティ 保守性 柔軟性

    安全性 機能完全性 機能正確性 機能適切性 時間効率性 資源効率性 容量満⾜性 共存性 相互運⽤性 適切度認識性 習得性 運⽤操作性 ユーザエラー 防⽌性 ユーザエンゲー ジメント 包括性 ユーザ⽀援性 ⾃⼰記述性 無障害性 可⽤性 障害許容性 回復性 機密性 インテグリ ティ 否認防⽌性 責任追跡性 真正性 耐攻撃性 モジュール性 再利⽤性 解析性 修正性 テスト可能性 適応性 拡張性 インストール性 置換性 運⽤制約性 リスク識別性 フェールセーフ 危険警告性 統合時安全性 共存性 相互運⽤性 製品品質モデル ISO/IEC 25010:2023