本文へ移動

判断依頼 ​

判断依頼は、エージェントがユーザーの判断を必要とするときに出す質問です。このページでは、PCやスマホから回答する方法と、エージェント側の質問の出し方を説明します。概要は基本の考え方を参照してください。

質問に気づくには ​

質問のあるタスクは待機中で、未着手や進行中のタスク上に、質問と回答欄が表示されます。待機中のタスクはモバイルモニターでも見られます。

ブラウザで回答する ​

選択肢を選ぶか、メモを入力して回答を送ります。両方を入力することもできます。回答すると、タスクの列は変わらず、エージェントの状態が未稼働に戻ります。エージェントは、あなたの返事を読んでから、どう再開するかを決めます。

質問、2つの選択肢、自由記述の回答欄を持つ待機中のタスク

タスクに、質問、選択肢、メモのテキスト欄が表示されます。あなたの回答はエージェントが読め、簡潔な理由が履歴に保存されます。

  • PCのボードでは、回答欄を使っている間も、タスクの詳細を開いたりドラッグしたりできます。
  • タスクを完了に移すと、回答欄に入力した内容は消えます。
  • 質問に有効期限はありません。回答されるか、タスクの移動で取り下げられるか、エージェントが置き換えるまで未回答のまま残ります。

スマホで回答する ​

モバイルモニターでは、待機中のタスクに同じ回答欄が表示されます。タスクをタップすると、本文・受入条件・履歴・エピックのドロワーが開きます。左右にスワイプしてタブを切り替えます。スマホの接続はモバイルモニターを参照してください。

本文・受入条件・履歴・エピックの4タブを持つモバイルの下部ドロワー

エージェントから質問する ​

ここからは、エージェントの開発・設定を行う方向けに、コマンドで質問を出す方法を説明します。

AI担当のタスクは、未着手でも進行中でも質問できますが、稼働中にできるのは進行中だけです。エージェントは、2〜10件の選択肢で尋ねます。CLIは、質問と2〜10件の選択肢を、--request-jsonでJSONとして受け取ります。引数に直接書くことも、標準入力から-で読むこともできます。

json
{
  "question": "Which launch approach should we use?",
  "choices": [
    { "id": "preview", "label": "Publish a preview first" },
    { "id": "public", "label": "Launch publicly" }
  ]
}

引数に直接書いて送ります。

sh
agboard --project "My project" state 1 pending --actor ai --request-json '{"question":"Which launch approach should we use?","choices":[{"id":"preview","label":"Publish a preview first"},{"id":"public","label":"Launch publicly"}]}'

標準入力から読むこともできます。

sh
cat question.json | agboard --project "My project" state 1 pending --actor ai --request-json -

choicesは2〜10件で、1件以下や11件以上、--request-jsonのない待機中の指定は拒否します。依頼にはIDが付き、showやsnapshotで読めます。

質問の回答を待つ ​

pending --request-jsonは、JSONにwaitがなくても既定で回答まで待ちます。この待機にはagboard serveの起動が必要です。依頼に回答されると、コマンドはタスクと回答を表示します。既存互換の"wait": {}も無期限待機になります。

用途に応じて、次の3通りで実行します。

waitを省略して、回答まで既定で待機します。

sh
agboard --project "My project" state 1 pending --actor ai --request-json '{"question":"Which launch approach should we use?","choices":[{"id":"preview","label":"Publish a preview first"},{"id":"public","label":"Launch publicly"}]}'

質問を登録してすぐに戻る場合は、--no-waitを付けます。

sh
agboard --project "My project" state 1 pending --actor ai --request-json '{"question":"Which launch approach should we use?","choices":[{"id":"preview","label":"Publish a preview first"},{"id":"public","label":"Launch publicly"}]}' --no-wait

600秒まで待つ例です(1〜86,400秒を指定できます)。

sh
agboard --project "My project" state 1 pending --actor ai --request-json '{"question":"Which launch approach should we use?","choices":[{"id":"preview","label":"Publish a preview first"},{"id":"public","label":"Launch publicly"}],"wait":{"timeoutSeconds":600}}'

--no-waitではagboard serveは不要です。待機する2つの形式ではagboard serveが必要で、CLIは質問を保存する前に起動状態を確認します。--no-waitとwait: {}は併用できますが、整数のtimeoutSecondsとの併用はinvalid_argument(終了コード2)になり、質問・状態・履歴を変更しません。wait: nullとtimeoutSeconds: nullは期限なしとして扱います。不正なJSON、未知の項目、型違い、範囲外timeoutはinvalid_value(終了コード2)、pending --request-json以外での--no-waitはinvalid_argument(終了コード2)です。

  • 時間切れやCtrl+Cで待機は終了しますが、質問はPendingのままです。
  • サーバーとの接続が切れるとboard_unavailableを返します。これは技術的なエラーで、質問はPendingのままです。
  • タスクの移動で質問が取り下げられると、コマンドはrequest_changedで終わります。

コマンドラインで回答する ​

人はCLIからも、依頼IDを渡して回答できます。

sh
agboard --project "My project" state 1 idle --actor human --request "<request-id>" --choice preview --reason "Get feedback before the public launch"

選択肢か、--reasonによるメモの少なくとも一方を指定します。両方の指定も可能です。エージェントは、返事と履歴をすべて読んでから、再開します。

sh
agboard --project "My project" state 1 running --actor ai --reason "Preparing the preview requested by the user"

次に読む ​