本文へスキップ
ColliePWA

06/Documentation

スマートフォンでのdurable agentの表示

durable agentのセクション、会話、質問、receiptの表示内容

実験的。 スマートフォン上でdurable agentが表示する内容は、今後のマイナーリリースで変更されるか、機能自体が削除される可能性があります。durable agentに存続を決定する条件が記載されています。

このページでは、ダッシュボードの行、会話リスト、質問、チャット、スターター、プッシュ通知など、スマートフォン上でdurable agentが表示されるすべての場所を説明します。durable agentで最初にdurable agentをアタッチします。

durable agentは、helloで実行可能と宣言した操作のコントロールのみを描画します。コントロールを指定している以下の行は、durable agentがそれを宣言していることを前提としています。

ダッシュボードのDurable agentsセクション

各durable agentは、スペースとは別のDurable agentsセクションに1行として表示されます。

スペースの上にあるDurable agentsセクション。deskの2つの会話が待機中。
スペースの上にあるDurable agentsセクション。deskの2つの会話が待機中。
行の項目表示内容
1行目sources.jsonのdurable agent名、およびExperimentalバッジ
2行目ランタイム、durable agentがhelloで自称する名前(なければdurable)。続いてlocalまたはremote
右端、準備完了開いている会話の数、および要対応色で表示されるユーザー待ちの会話数。2つ目のカウントは0件のときは非表示
右端、未準備「Starting」、「Unreachable」、または「Version mismatch」の文字列。件数は非表示

ソケット、あるいはhttp://127.0.0.1またはhttp://localhost経由でアクセスされたdurable agentはlocalになります。それ以外のURLはすべてremoteになります。

このセクションはスペースの下に配置されます。ユーザーの入力を待っている会話が1つでもあるdurable agentが存在する場合はスペースの上に移動し、最後の1つに応答すると再び下に戻ります。durable agentが1つもアタッチされていない場合、このセクションは描画されません。

「要対応ペインのみ表示」が有効な場合、このセクションにはユーザー待ちのdurable agentのみが一覧表示されます。行をタップすると、状態を問わずそのdurable agentの会話リストが開きます。

会話リスト

durable agentのホームには、メッセージングアプリのチャット一覧と同じ形式で会話が一覧表示されます。

durable agentの会話リスト: 待機中1件、オープン2件、クローズ2件。
durable agentの会話リスト: 待機中1件、オープン2件、クローズ2件。

ユーザー待ちの会話が先頭に表示され、その後にその他の開いている会話が新しい順に並びます。クローズした会話は「Closed」ラベルの下に続きます。各行にはタイトル、状態マーク、最終アクティビティの時刻が表示され、その下の1行に待機中の質問(なければdurable agentのサブタイトル)が表示されます。待機中の行には、保留中の質問数も表示されます。タイトルのない行には「Untitled conversation」と表示されます。

開いている行をタップするとChatで開きます。クローズした行をタップすると読み取り専用で閲覧できます。durable agentが会話の再開に対応している場合、クローズした会話には「Reopen」ボタンが表示されます。

開いている行はダッシュボード自体のデータから取得されるため、即座に描画されます。クローズした行はdurable agentから取得され、Collieはアクセスごとに1回、および会話のオープン/クローズ時に再問い合わせを行います。毎回のポーリングで取得されることはありません。

リストの末尾表示条件
さらに読み込むdurable agentの会話が100件を超えている場合。タップするごとに次の100件を読み込みます
「このdurable agentは会話のリストを保持していません。」durable agentから、リストを保持していない旨の応答があった場合
「durable agentが応答しませんでした。しばらくしてから再試行してください。」durable agentが読み取り要求に応答しなかった場合
「durable agentのwireバージョンはv2ですが、このCollieはv1です。CollieまたはエージェントのSDKを更新してください。」wireバージョン(レシート)を理由にCollieがdurable agentを拒絶した場合
「会話を読み込めませんでした。再試行してください。」読み取り処理が途中で失敗した場合

履歴を保持しない durable agent は、進行中の会話のみを表示し、Closed グループや注記は表示しません。描画済みのリストは、その後の読み込みが失敗してもそのまま表示され続けます。

スマートフォンでの質問

durable agent による質問は、対象となるツール呼び出しの下にチャット内のカードとして表示されます。

desk からの権限要求カード(回答期限まで残り4分)。
desk からの権限要求カード(回答期限まで残り4分)。

キャプションには durable agent の名前が表示されます("Needs your answer · desk")。durable agent が有効期限を設定した場合、タイトルの下の行に "Expires in 4 min"、"Expires in 40 s"、"Expired" とカウントダウンされます。期限切れ後もボタンは残り、遅れてタップされた場合は durable agent 自身が回答します。

種類カードの表示内容制限
permission選択肢ごとにボタンを1つ配置します。Collie の文言(Allow、Always allow、Deny、Cancel)が使われます。durable agent 独自のラベルは控えめな2行目に表示されます最大6個の選択肢
choice選択肢ごとに1行。1回タップすると選択内容が送信されます。multiple の場合、"Pick any number" の下で各行の選択状態が切り替わり、Send を押すと一括送信されます最大8個の選択肢
text1行の入力欄、"12 of 500" などの文字数カウント、および Send500文字、または durable agent による上限(最大2000文字)
form入力フィールドが1つの Send の下に並びます(1行テキスト、一覧から選ぶ選択肢、トグルのいずれか)。必須項目には Required と表示されます最大6個のフィールド

"Always allow" には2回のタップが必要です。1回目のタップでボタンが "Tap again to always allow" とツール名に変わり、2回目で送信されます。質問にツール名が含まれていない場合、Collie はこのボタンを表示しません。

Collie が durable agent の文言を切り詰めたり整理したりした場合、全文が表示されていないため、カードに "Text shortened" と表示され "Always allow" は選択できなくなります。

この Collie が認識できない種類のカードは、その文言を表示し、"This ask cannot be answered from the phone." と表示します。会話内では最初の5件の質問がカードとして描画され、"Show N more" 行から残りを展開できます。

タップ後の動作

各タップは1つのリクエストIDを保持し、タップ操作によってのみ回答が送信されます。

発生した事象カードの表示対応手順
durable agent が回答を受領した何もなし: カードが閉じます何もしない
durable agent が先に決定した"Decided in the durable agent."何もしない。チャット上にはログが1行残ります
質問が先にタイムアウトしました"Timed out before an answer."何もしない。チャット上にはログが1行残ります
別の回答が先に行われました"Already answered. This card goes away on the next update."何もしない
質問がオープンになっておらず、durable agent から理由が返されませんでした"Not taken. The question may show again in a moment."待機してください。再起動した durable agent が再度質問します
質問内容が途中で変更されました"This ask changed. Read it again, then tap an answer."新しい内容を確認し、もう一度タップしてください
回答が届いていない可能性があります"Not sure the answer arrived. Try again sends it once more."「Try again」をタップしてください。同一のリクエストIDが送信されるため、durable agent に重複して伝わることはありません
再試行時に質問が終了していたか、変更されていました"May already be applied. Check the chat."チャットを確認してください
Collie が回答を拒否しましたCollie による理由。なければ「The answer was refused.」理由を確認してください
durable agent のマシンで古いバージョンの Collie が実行されています"This machine runs an older Collie and cannot take answers here. Update it, or answer in the durable agent."該当するマシンを更新してください

レシート

Collie は、ユーザーが回答しなかった質問がどう終了したか、また durable agent が拒否された理由を表示します。

到着が遅すぎたカード: Decided in the durable agent.
到着が遅すぎたカード: Decided in the durable agent.
状況表示内容
質問には有効期限がありますカードのタイトル下に残り時間が表示されます
durable agent が決定した後、または有効期限が切れた後にタップしましたカードが固定され、「Decided in the durable agent.」または「Timed out before an answer.」と表示されます
質問がタイムアウトしたか、ユーザーが操作することなくdurable agentが決定しましたチャット内の1行: 「Timed out before an answer:」または「Decided in the durable agent:」に続き、質問のタイトルが表示されます
Collieはwireのバージョンが一致しないためdurable agentを拒否しましたdurable agentのホームに警告ボックスが表示され、ダッシュボードの行に「Version mismatch」と表示されます

スマートフォンから回答した質問や、ターンを停止したために終了した質問には、この行は残りません。操作したカードが既に表示されています。

拒否されたdurable agentのホーム: 「Program speaks wire v2, this Collie speaks v1.」
拒否されたdurable agentのホーム: 「Program speaks wire v2, this Collie speaks v1.」

警告ボックスには双方が対応するwireバージョンが表示されます (例: 「Program speaks wire v2, this Collie speaks v1. Update Collie, or the durable agent's SDK.」)。古い方を更新してください。ルールについてはバージョンを参照してください。

チャット

durable agentの会話は、唯一のビューであるChatで開きます。

durable agentからのアイテムChatの描画内容
userユーザー自身の行
replyエージェントの回答
thinkingエージェントの思考プロセス
noticeスレッド内の短いメモ
markdownレンダリングされたMarkdown: 見出し、リスト、強調、コード、リンク。生のHTMLはテキストとして表示されます
codeコードブロック (durable agentが言語を指定した場合は言語名付き)
linkラベル付きのリンク行 (ラベルがない場合はアドレス)。https://リンクのみ
toolツール呼び出し: 実行中、出力完了、失敗、または拒否

生成中のreply、thinking、notice、markdownアイテムには末尾にカーソルが表示され、時刻は表示されません。最終テキストを受信するとカーソルは消えます。停止したターンには「stopped」というメモが残ります。

ユーザー自身の行

[送信] をタップした瞬間に、小さな時計アイコンとともに入力行がスレッドに表示されます。durable agent自身のコピーが到着すると、その行と置き換わります。

状態行の表示内容
送信中、または送信済み時計アイコン。durable agentが受け取ると、入力欄に「Sent」と表示されます
応答がありませんでした「Sending, not confirmed」。再送信すると同じリクエストIDでリトライします
拒否されたか、ターンが次に進みました「Not sent」と表示され、入力したテキストが入力欄に戻ります

リクエストIDをエコーバックしないdurable agentは、30秒以内の同一テキストによって照合されます。durable agentが書き戻さなかった行は、10分後に表示されなくなります。

スレッド内でユーザーの行が最新であり、durable agentがまだ応答していない間は、3つのドットが処理中であることを示します。

ヘッダー

ヘッダーは2行で構成されます。1行目には会話のタイトルとExperimentalバッジが表示されます。

2行目の表示内容表示条件
「Step 2 of 3: Save a note」durable agentがステップを報告しており、そのうち1つが実行中である場合
「42%: uploading」durable agentがパーセント値とラベルを報告している場合
durable agentのサブタイトル進行状況がないか、すべてのステップが完了している場合
ワークスペースdurable agentがこれらを1つも設定していない場合

進行状況は、会話の処理中またはユーザーの入力を待っている間にのみ表示されます。

ベルト

ベルトにはSteerとStopが配置され、続いてdurable agent固有のボタンが最大4つまで配置されます。

Steerは、新しいターンを開始する代わりに実行中のターンにテキストを送信します。Stopは実行中のターンを終了します。現在操作できないボタンはその場でグレーアウトされるため、位置がずれることはありません。

durable agentのボタン規則
ラベル最大16文字
アイコン次の12種類のいずれか: play、pause、check、x、refresh、archive、flag、star、send、note、search、more。これら以外の名前を指定した場合はアイコンが表示されません
ビジー状態スピナーが表示され、タップできなくなります
無効状態グレーアウトされ、タップできなくなります

タップすると、スマートフォン側で最後に確認されたターンが指定されます。すでに会話が進んでいた場合は何も実行されず、スマートフォンに「The conversation moved on, so the action did not run.」と表示されます。内容を確認し、実行を継続したい場合はもう一度ボタンをタップしてください。

durable agentペインに含まれない要素

durable agentには画面がないため、そのペインにはTerminalビュー、タブストリップ、ペインストリップ、Keys/Type/Quickボタンがありません。メニューにもHistory、Pane settings、Pin to top rowはありません。メニュー内のCloseは「Close conversation」と表示されます。

New conversationとスターター

durable agentのNewページは「New conversation」というタイトルになり、durable agentのスターターが一覧表示されます。

スターターはフォルダーやテキストを受け取りません。作業場所はdurable agent側が決定します。スターターをタップすると、durable agentが新しい会話を開きます。このページからマシンのagent、シェル、コマンドを指定することはできません。スターターが存在しないdurable agentの場合、「This machine's durable agent offers no starters yet.」と表示されます。

プッシュ通知

durable agentごとの上限内であれば、質問をスマートフォンにプッシュ通知できます。

上限制限超過時
単一ペイン毎分3回のプッシュ通知質問はスマートフォン上に表示され、プッシュ通知は送信されません
単一マシン上の単一durable agent毎分10回のプッシュ通知同上
単一マシン上の単一durable agent毎時30回のプッシュ通知「A durable agent on {host} is raising many asks」というプッシュ通知が1回送信され、その後1時間はそのdurable agentからのプッシュ通知は行われません

プッシュ通知には「Permission needed in」とペイン名が表示されます。durable agentは、最大60文字の独自のタイトルと最大120文字の1行を追加できます。Collieはマシン、durable agent、ツール呼び出しごとに質問を1回プッシュ通知するため、再起動後に再度尋ねられた質問は表示のみが行われ、プッシュ通知は送信されません。詳細はdurable agentからのプッシュ通知を参照してください。

マスキング

シークレットマスキングが有効な場合(COLLIE_REDACT、デフォルトで有効)、Collieはdurable agentの会話リストのタイトルとサブタイトルに含まれるシークレットをマスクします。

crew内

leadのダッシュボードには、crewの各マシンに対応するDurable agentsセクションが1つずつあります。メンバーのdurable agentは2行目にメンバー名を追加し(例: pi-durable, local, workshop)、lead自身のdurable agentにはマシン名が付きません。いずれかのマシンで質問が発生すると、その該当セクションがスペースの上に移動します。誰が何に応答するかについてはcrew内のdurable agentを参照してください。

GitHub でこのページを編集

The rest of the documentation