本文へスキップ
ColliePWA

スマートフォンから自身のエージェントのアクションを承認します。

ColliePWAは、自作エージェントからの質問をターミナルエージェントの横、スマホ上に表示します。タップ1回で回答でき、エージェントはその回答を受け取ります。

01/Durable agents

自作のエージェントを、スマートフォンで。

durable agentとは、Pi Durableなどを使って自分で構築し実行するエージェントのことです。軽量なプロトコルであるwireを介してCollieと通信し、NodeおよびBun用のSDKがその通信を処理します。ColliePWAがエージェントの質問、会話、チャットを描画するため、UIコードを書く必要はありません。

実験的機能。ワイヤーはマイナーリリースで変更される可能性や、機能自体が削除される可能性があります。現時点ではCollieリポジトリ内のサンプルのみがこれに対応しています。

02/ColliePWA

提供される機能

残り時間付きの承認
エージェントからの質問は、スマートフォン上にカードとして表示されます。はい/いいえ、選択肢、1行のテキスト、短いフォームなどの形式があります。1回のタップで回答でき、カードには質問の受付時間が表示されます。
履歴付きチャット
エージェントの各会話はチャットとして開きます。エージェントが記録を保持するため、終了した会話も読むことができます。
専用セクションとプッシュ通知
スマホ上ではエージェント専用のDurable agentsセクションが作られ、質問が待機中の場合はセクションがスペースの上に移動します。pushを有効にすると、質問時に通知も届きます。
ターミナルセッションの横に表示
Herdr、tmux、zellijのセッションの見た目と動作は以前のままです。durable agentは、セッションの追加ソースの1つとして機能します。

03/hello.mjs

最初の質問まで10行

エージェントのフォルダにSDKをインストールします:

$ npm install @colliepwa/durable-sdk@experimental

このエージェントをhello.mjsとして保存し、node hello.mjsまたはbun hello.mjsで実行します。ソケットのパスを出力して待機状態になります。

import { openCollie } from "@colliepwa/durable-sdk";

const socket = process.env.COLLIE_DURABLE_SOCKET ?? `${process.env.XDG_RUNTIME_DIR}/hello/app.sock`;
const collie = await openCollie({ socket, hostName: "hello", caps: { asks: true } });
const pane = collie.workspace("hello", { title: "Hello" }).tab("main", { title: "Questions" }).pane("deploy", { title: "Deploy", harness: "hello" });
collie.ready();
console.log(`listening ${collie.address}`);
const options = [{ id: "yes", label: "Yes" }, { id: "no", label: "No" }];
const answer = await pane.ask({ kind: "choice", toolCallId: "deploy-1", itemId: "deploy-1", title: "Deploy to staging?", options });
console.log(`answer: ${answer.optionIds[0]}`);
await collie.close();

2つ目のターミナルで、出力されたパスを使ってエージェントをCollieに接続します。--restartはCollieブリッジを再起動します: 数秒でスマホが再接続され、ターミナルセッションはそのまま継続します。

$ collie durable attach hello --socket /run/user/1000/hello/app.sock --restart

スマホでColliePWAを開きます。Durable agentsセクションにhelloの行が表示されます。これを開くと、その会話内に「Deploy to staging?」という質問が表示されます。「Yes」または「No」をタップすると、エージェントが回答を出力して終了します。

04/Socket · HTTPS

実行場所

同一マシン上
Collieは、現在のユーザーのみが開けるファイルであるプライベートソケットを介してエージェントにアクセスします。
その他の場所
Collieは32バイト以上のランダムなトークンを使いHTTPS経由でエージェントにアクセスします。トークンを持つ人なら誰でも代わりに回答できます。
NodeまたはBun
SDKはNode 22.18以降およびBun 1.4以降で動作します。

05/ドキュメント

ドキュメントを読む

ドキュメントのDurable agentsのページでは、セットアップ手順、2種類の接続方法、トラブルシューティング、スマホに表示できる内容について解説しています。