ShipSF Workshops - Notionを活用したミニワーカーズワークショップ
Original · ShipSF Workshops - Mini-workers workshop with Notion
Key Takeaway
NotionワーカーとVercelサンドボックスの統合により、エージェントは安全なブローカー認証のもとでカスタムツールを自ら記述し、決定論的なコードを実行して複雑なタスクを処理できる。
Highlights
「ntm cli」を用いることで、カスタムコードによるNotionの拡張やエージェントツールの構築とデプロイが可能になる。
Vercel Sandboxの「ブローカー認証」機能により、サンドボックス内に直接認証情報を送信せず、APIコール時にプロキシがジャストインタイムで認証情報を注入する。
エージェントが自己拡張用に作成したツール群は、ツール名と説明のみがリストとして段階的に開示されるため、コンテキストウィンドウが圧迫されない。
サンドボックス内のユーザーコード実行には5分の制限時間が設けられており、超過した場合はサンドボックスが強制終了される。
Timeline
Notionワーカーの基本構造と3つの機能
ワーカーはAIエージェントが書いたコードやユーザー自身が書くコードを実行し、スマートホーム管理や内部データベースへのアクセスなど多様な用途に利用される。今回は特に、エージェントを拡張するプリミティブである「ワーカーツール」に焦点を当てる。NTM CLIを通じて、エージェントが自分用のツールを構築し、安全にデプロイすることが可能になる。
- ワーカーはカスタムコードでNotionを拡張するSDKおよびランタイムである。
- ワーカーの機能には、エージェントツール、外部データ同期機能、確定的な自動化機能の3つが存在する。
- ワーカーツールは認証情報の管理やデプロイメントのインフラを完全に抽象化する。
Vercelサンドボックスを活用した任意のコード実行の安全性確保
任意のコードが仮想通貨マイニングやサービス拒否攻撃を行ったり、認証情報を悪用したりするリスクを防ぐ必要がある。Vercelサンドボックスを採用した最大の理由は、ブローカー認証機能によるセキュアな設計にある。エージェントがログに認証情報を記録して読み取るリスクを排除しつつ、安全な外部API通信を実現している。
- 任意のユーザーコードの実行におけるセキュリティや計算資源共有の公平性が重要な課題となる。
- Vercelの「ブローカー認証」により、サンドボックスが直接認証情報を受け取ることはない。
- 外部サービスへのAPIコール時に、Vercelのプロキシがネットワークリクエストのヘッダーにジャストインタイムで認証情報を注入する。
ランチ注文エージェントのデモンストレーション
昼食の注文忘れを防ぐため、実際のワーカーを活用したランチ自動注文エージェントのデモが示される。エージェントは過去の注文履歴から好みを学習し、ランチ注文プラットフォームのForkableと連携して提案と注文を実行する。注文後にForkableの画面で内容が正しく反映されていることが確認され、毎週のスケジュールで自動的に処理される。
- ランチ注文エージェントは過去の注文履歴を取得し、その日のレストランや食事を確認して自動で注文を行う。
- エージェントは毎週自動実行されるため、手動で操作する必要がない。
- 注文完了後はログを更新し、ユーザーの好みを自己改善に役立てる。
TypeScriptによるワーカーの設計とサンドボックスでの実行プロセス
シンプルなストリーミングエージェントチャットを用いたワーカーの作成デモを通じて、具体的なコード構造が解説される。Muniのライブデータや経路探索を行う複雑なツールも、モジュールとして定義しBlobストレージにデプロイ可能である。実行時は標準出力のXMLタグで囲まれた部分をパースし、5分以上の長時間処理や無限ループを防ぐためにプロセスを強制終了する仕組みが組み込まれている。
- ユーザーコードにはツール名、説明、入力スキーマ、実行関数がモジュールエクスポートとして定義される。
- サンドボックスでコードを実行し、標準出力を通じてツールスキーマや実行結果を検証・取得する。
- ツールの実行ごとにクリーンな初期状態を維持するため、サンドボックスのスナップショット機能を活用して高速化を図る。
コンテキストウィンドウ管理とエンタープライズ向けのユースケース
質問セッションでは、大量のツール作成によるハルシネーションやコンテキストウィンドウのパンクへの対策が説明される。NTM CLIを用いることで、詳細なスキーマは必要なときにのみ取得されるため問題が回避される。また、保険の請求自動化といった具体的な業務への適用可能性や、Notionを介したチーム間でのエージェントおよびワーカーの共有メカニズムについて議論が行われる。
- エージェントが多数のツールを作成しても、最初はツール名と説明のみがリスト表示されるためコンテキストウィンドウを圧迫しない。
- ビジョン保険の請求手続きなどのエンタープライズ向けユースケースにワーカーを応用できる。
- Notionを通じてチームメイトとエージェントを共有し、アタッチされたワーカーツールや認証情報を共同利用できる。
Description
Vercel.com
