
2026/03/13 2:04
**Show HN:** **Understudy – デスクトップエージェントに一度の実演で学習させる**
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
(主要ポイントをすべて組み込んだ、推測や曖昧な表現を加えずに翻訳)
要約
Understudy は macOS 用の教えることができるデスクトップアシスタントで、1 回だけの実演からタスクを学習します。ユーザーは
/teach start/stop/confirm/publish を使用してセッションを記録し、意図・パラメータ・手順・成功基準を取得します。システムは再利用可能なスキルファイル(SKILL.md)を生成します。エージェントは 5 つの進歩的レイヤーで動作します:
- ネイティブにソフトウェアを操作 – ローカルアプリの GUI を直接制御
- 実演から学習 – 実演を記録し再生
- 成功したものを覚える – 成功したワークフローを自動で結晶化;部分的に実装済み
- ルート最適化 – ルート優先とガードポリシーの指導;完全な自律プロモーションは未完了
- 能動的自律性 – 完全自律計画への長期ビジョン
現在の実装はレイヤー 1–2 をカバーし、レイヤー 3 は部分的に進行中です。
Understudy の GUI グラウンディングはデュアルモデリングアーキテクチャを採用しており、HiDPI 画面にも対応し、ベンチマークで 30/30 ターゲット解像度(明示的ラベル、不明確なターゲット、アイコンのみ要素、曖昧プロンプト)を達成しています。組み込みツールは次のとおりです:
- GUI – 13 アプリとスクリーンショットグラウンディングの制御
- ブラウザ – Playwright と Chrome 拡張リレー
- シェル – ローカルシステムへの bash アクセス
- ウェブ – web_search および web_fetch ユーティリティ
- メモリー – セッション間のセマンティックメモリー
- メッセージング – 8 のアダプタ(Telegram、Slack、Discord、WhatsApp、Signal、LINE、iMessage、Web)
- スケジューリング – cron + ワンショットタイマー
- サブエージェント – 並列子セッション
計画者は各ステップのルートを選択します。単一タスクは 1 セッション内でブラウジング、シェルコマンド、GUIクリック、メッセージングを含む場合があります。すべての操作は安全性・信頼性・ロギングポリシーを強制する単一の HTTP/WebSocket ゲートウェイ経由で実行されます。ローカル優先ストレージはスクリーンショットとトレースを保持します。
インストールには Node ≥ 20.6、pnpm、および macOS GUI 自動化依存(Xcode CLT、アクセシビリティ & スクリーン録画権限)が必要です。オプションコンポーネントには Chrome、Playwright、ffmpeg、tesseract、signal‑cli が含まれます。サポートされるモデルプロバイダーは Anthropic、OpenAI(GPT‑4/5)、Codex、および Google Gemini であり、デフォルトは
openai-codex/gpt-5.4 です。これは understudy wizard を通じて設定可能です。リポジトリには 47 の組み込みスキル、8 のチャンネルアダプタ、および公開例フォルダーに掲載されたパブリッシュ済みスキルアーティファクトが含まれています。
このバージョンは主要ポイントをすべて網羅し、新たな推測や曖昧な表現を追加していません。
本文
AIツールはソフトウェアの使い方を変えている―しかし、まだ私たちの仕事のほんの一部しかカバーしていません。
日々のタスクはブラウザ、デスクトップアプリ、端末、メッセージングツールに散在し、それぞれが独自のインターフェースと習慣を持ち、互いに接続されていません。
Understudy は教えることのできるデスクトップエージェントです。
GUI・ブラウザ・シェル・ファイルシステム―すべてをひとつのローカルランタイムで統合し、人間の同僚のようにコンピュータを操作します。
一度タスクを示せば、意図(座標だけではなく)を抽出し、成功した経路を記憶し、時間とともに高速化ルートを発見・採用していきます。最終的には定型作業を自律的に処理します。API統合は不要です。ワークフロービルダーも必要ありません。ただ、一度だけ実演すれば十分です。
Five Layers(5層構造)
Understudy は、新入社員が信頼できる同僚へと成長する過程を模した階層的進化設計です。
| Day | Week | Month | Layer |
|---|---|---|---|
| Day 1 | ネイティブにソフトウェア操作 – 見て、クリックして、入力し、検証する | ||
| Week 1 | 実演から学習 – 意図を抽出し、妥当性を確認し学習する | ||
| Month 1 | 結晶化メモリ – 日常使用で蓄積した経験を蓄える | ||
| Month 3 | ルート最適化 – より高速な経路を発見しアップグレードする | ||
| Month 6 | 主動的自律性 – ユーザーの指示なしに行動する |
各層は下位層を基盤に構築され、抜け道はありません。
「Understudy」と呼ぶ理由
舞台ではアンダースタディが主役を観察し、役割を学び、必要になれば即座に踏み込む存在です。
Layer 1 – コンピュータをネイティブに操作
現状: macOS で今日実装済み。
Understudy は単なる GUI クッカーではなく、コンピュータが提供するすべての実行経路(GUI・ブラウザ・シェル・Web・メモリ・メッセージング・スケジューリング・サブエージェント)を一つのエージェントループで統合したデスクトップランタイムです。
| Route | Implementation | Coverage |
|---|---|---|
| GUI | 13 ツール + スクリーンショット基盤 + ネイティブ入力 | macOS の任意のデスクトップアプリ |
| Browser | Playwright 管理 + Chrome 拡張リレー | 任意のウェブサイト、ログインセッション付き |
| Shell | Bash ツール(完全ローカルアクセス) | CLI ツール・スクリプト・ファイルシステム |
| Web | + | リアルタイム情報取得 |
| Memory | セマンティックメモリ(セッション横断) | 永続的コンテキストと好み |
| Messaging | 8 チャネルアダプタ(Telegram, Slack, Discord, WhatsApp, Signal, LINE, iMessage, Web) | メッセージングプラットフォーム |
| Scheduling | Cron + ワンショットタイマー | 定期的自動化タスク |
| Subagents | 子セッションで並列作業 | 複雑なマルチステップ委任 |
Planner は各ステップに最適な経路を選択します。単一のタスクがウェブサイト閲覧、シェルコマンド実行、ネイティブアプリ内クリック、メッセージ送信を一つのセッションで完結させることも可能です。
Layer 2 – 実演から学習
現状: 今日実装済み。
Teach はデモを記録し解析しタスクを明確化し、再生を検証するオプション付きで再利用可能なスキルを公開します。
/teach start # スクリーンビデオ + セマンティックイベントのダブルトラック録画 /teach stop "file the weekly expense report" → AI が解析 → 意図・パラメータ・ステップ・成功基準を抽出 → マルチターン対話でタスクを洗練 /teach confirm [--validate] # タスクカードをロック;再生して検証可能 /teach publish <draftId> [skill-name]
公開された
SKILL.md は三層抽象化です:
- 意図手順(自然言語ステップ)
- ルートオプション(優先 / フォールバックパス)
- GUI 再生ヒント(最後の手段として、現在のスクリーンショットから再構築)
公開例は次で確認できます:
examples/published-skills/taught-person-photo-cutout-bc88ec/SKILL.md
Layer 3 – 成功したことを覚えておく
現状: 部分的に実装済み。
Understudy は日常使用のワークフロー結晶化ループを持っていますが、プロモーションポリシーと自動経路アップグレードはまだ初期段階です。
| Stage | User Experience |
|---|---|
| 0 | 「AI が検討中」 |
| 1 | 「前回より速い」 |
| 2 | 「ルーティンを知っている」 |
| 3 | 「ワンクリック」 |
| 4 | 「質問する前に実行済み」 |
/teach コマンドは不要です。同一作業スペースでの反復的多ターン作業はバックグラウンドで圧縮されます。パターンが十分頻度で繰り返されると、Understudy は自動でワークスペーススキルを公開し、アクティブセッションにホットロードして「結晶化したワークフローが準備完了」と通知します。
現在の境界:
- 学習ループは保守的。パターンが不明瞭なら探索を継続。
- セグメンテーション・クラスタリング・スキル合成は LLM 先行。
- プロモーション閾値はヒューリスティック。
Layer 4 – 時間とともに高速化
現状: 部分的に実装済み。
経路優先度、ガードポリシー、Teach 経路注釈が今日動作しますが、完全自動経路発見・プロモーションは進行中です。
例:Slack へメッセージ送信
- API 呼び出し(ミリ秒)→
(数秒)→ ブラウザ(数秒)→ GUI(10 s)。slack-cli send - Day 1 は GUI で開始。使用が蓄積されると、Understudy が高速化手段を発見し安全検証後にアップグレードします。
システムプロンプトはツール/API > シェル/CLI > ブラウザ > GUI の順でエージェントを誘導。ルートガードは連続失敗数を追跡。Teach 生成スキルは各ステップに優先・フォールバック・観測経路を注釈し、GUI を省略できる場合に自動で回避します。
現在の境界:
- 経路最適化はガイダンスと安全な優先順序付け。完全自律オプティマイザーではない。
- 自動経路プロモーション(発見→検証→促進)は設計済みだが、まだ完全実装されていません。
Layer 5 – 主動的自律性
現状: ほぼビジョン段階。
スケジューリングとランタイム表面は存在しますが、受動観測・分離ワークスペース・主動的自律はまだ先行です。
長期目標:Understudy が同僚として長期を観察し、自ら行動するようになること。
| Phase | Implementation | User Experience |
|---|---|---|
| Current | フォアグラウンドウィンドウ + アプリフォーカス制御 | AI が確実にタスク完了 |
| Near‑term | macOS セカンドデスクトップ / ヘッドレスウィンドウ | ユーザーは AI 作業を観察可能 |
| Long‑term | Docker + VNC / クラウド VM | AI が 24/7 動作 |
クロスアプリオーケストレーションが真のマルチアプリ並列操作を実現します。分離ワークスペースにより、メールから情報を抽出してスプレッドシートへ更新し、カレンダーを調整し、結果を Slack で送信するなど、データフローを統括できます。
信頼モデルの進化:
- manual – ユーザーが毎回実行(デフォルト)
- suggest – AI が提案;ユーザーは確認後実行
- auto_with_confirm – AI が実行し、結果をレビュー
- full_auto – AI が実行+検証し、例外時のみ通知
Architecture(アーキテクチャ)
┌──────────┐ ┌───────────┐ ┌─────────┐ ┌──────────┐ ┌─────────┐ │ Terminal │ │ Dashboard │ │ WebChat │ │ Telegram │ │ Slack │ ... └────┬─────┘ └─────┬─────┘ └────┬────┘ └────┬────┘ └────┬────┘ └──────────────┴────────────┴────────────┴────────────┘ │ Gateway (HTTP + WebSocket + JSON‑RPC) │ ┌────────────┴────────────┐ │ │ Session Runtime Built‑in Tools + Policy Pipeline ┌──────────────────────┐ │ gui_* │ browser │ │ bash │ memory │ │ web │ schedule │ │ message│ subagents │ └──────────────────────┘
- ローカル優先:スクリーンショット・録画・トレースはデフォルトでローカルに保存。
- ワンゲートウェイ:ターミナル、Web、モバイル、メッセージングアプリすべてが一つのエンドポイントを通じて接続。
- ワンスクエンスタンス:チャット・Teach・スケジュールタスク・サブエージェントは同一ループで共有。
- ポリシーパイプライン:すべてのツール呼び出しは安全性、信頼性、ログハックを通過。
Quick Start(クイックスタート)
# npm からインストール npm install -g @understudy-ai/understudy understudy wizard # セットアップウィザードが起動 # またはソースビルド git clone https://github.com/understudy‑ai/understudy.git cd understudy pnpm install && pnpm build pnpm start --wizard # ゲートウェイデーモンを開始 understudy daemon --start # あるいは: understudy gateway --port 23333 # ターミナルインタラクティブモード(自動で稼働中のゲートウェイに接続) understudy chat # 管理 UI understudy dashboard # ブラウザでコントロールパネルを開く
Requirements(必要条件)
| Dependency | Install | Purpose |
|---|---|---|
| Node.js ≥ 20.6 | あるいは nvm | コアランタイム |
| pnpm ≥ 10 | | ワークスペースパッケージマネージャ |
macOS GUI 自動化(GUI ツールと Teach‑by‑Demonstration に必須)
| Dependency | Install | Purpose |
|---|---|---|
| Xcode Command Line Tools | | スクリーンキャプチャ・入力イベント用 Swift ヘルパーをコンパイル |
| Accessibility permission | システム設定 → プライバシー & セキュリティ → アクセシビリティで許可 | マウス/キーボード注入、ウィンドウクエリ、デモイベントキャプチャ |
| Screen Recording permission | システム設定 → プライバシー & セキュリティ → スクリーンレコーディングで許可 | スクリーンショット、GUI 基盤化、デモビデオ録画 |
Optional(任意)
| Dependency | Install | Purpose |
|---|---|---|
| Chrome | | 拡張リレー・ブラウザモード |
| Playwright | | ブラウザツール用管理済み Chromium |
| ffmpeg + ffprobe | | Teach‑by‑Demonstration のビデオ解析 |
| tesseract | | Vision_read 用 OCR |
| signal-cli | | Signal メッセージングチャネル |
Supported Models(対応モデル)
Understudy はモデル非依存です。プロバイダー/モデルで設定します(例:
anthropic/claude-sonnet-4-6)。真実の情報源は Understudy ランタイムに組み込まれたモデルカタログと、ローカルレジストリに追加された任意エントリです。
understudy models --list # 利用可能なモデルを表示
Auth 備考:
| Provider | Auth | Notes |
|---|---|---|
| Anthropic | または OAuth | Claude モデル可 |
| OpenAI | | GPT‑4.x, GPT‑5.x 等 |
| OpenAI Codex | 同上 | gpt-5.4 など |
| Google / Gemini | または | alias: gemini |
Skills & Channels(スキルとチャネル)
understudy skills --list # 利用可能なスキル一覧 understudy skills install <name-or-url> # レジストリまたは URL からインストール
組み込みチャネルアダプタ(8 種類):Web, Telegram, Discord, Slack, WhatsApp, Signal, LINE, iMessage。
Repository Layout(リポジトリ構成)
– CLI エントリポイントapps/cli
– エージェントセッションランタイム、設定、認証、スキル、ポリシーpackages/core
– HTTP/WebSocket ゲートウェイ、セッションランタイム、Web 表面packages/gateway
– ネイティブ GUI ランタイム、スクリーンショット基盤化、デモレコーダーpackages/gui
– 組み込みツール(ブラウザ, Web, メモリ, スケジュール, GUI, メッセージ)packages/tools
– チャネルアダプタ(8 種類)packages/channels
– 共有 TypeScript 型定義packages/types
– 47 の組み込みスキルモジュールskills/
– 公開例とリファレンス出力examples/
– ビジョン・プロダクト設計ドキュメントdocs/
Development(開発)
pnpm install # 依存関係をインストール pnpm build # すべてのパッケージをビルド pnpm test # テスト実行 pnpm lint # oxlint でリント pnpm typecheck # すべてのパッケージで型チェック pnpm check # ビルド + リント + 型チェック + テスト を一括実行
Contributing(貢献)
CONTRIBUTING.md を参照。関心領域:
- GUI バックエンド(Linux AT‑SPI, Windows UIA)
- 人気アプリ・ワークフロー用スキルモジュール
- 経路発見 – 自動 API 検出とアップグレードロジック(Layer 4)
- Teach 改善 – 証拠パック解析と検証の向上
- ドキュメント & 翻訳
License
MIT © Understudy AI
Watch → Learn → Remember → Optimize → Anticipate