接手別的對話留下的箱子

對話怎麼接手別的對話留下的箱子:用 sandbox_list 找到它,用 sandbox_status 讀 goal、steps[] 與 agent;原本的對話可能還在做時,先問人。

箱子比開它的對話活得久。要接著做:

  1. sandbox_list(或 GET /v1/boxes):用 name 或 goal 找到箱子。agent.state 是 left 或 idle 的,就是沒人在做的箱子。idle 只看時間:對話可能還開著,只是一小時沒碰這個箱子。每個箱子的 recentNotes(最近 3 步的說明)講它在做什麼、說明有寫的話用了哪個測試帳號,不必一個個 sandbox_status。
  2. sandbox_status { "id": "<id>" }(只要那幾欄就用 { "id": "<id>", "fields": ["goal", "agent", "steps"] }):讀 goal(箱子要做什麼)、steps[](裡面已經做過什麼)與 agent。agent.state 是 working 或 away 又沒有 thisConversation,表示原本在用它的對話還開著、可能會回來:先在你自己的對話裡、用你的客戶端問問題的方式問人,再接手。agent.untracked: true 表示最後用它的呼叫沒帶對話 id(API key 腳本、REST),它的狀態只是照閒置時間猜的;如果是你自己用這種腳本開的,它就是你的。
  3. 用同樣的工具、同一個 id 接著做;你第一次對箱子動手的呼叫起(sandbox_exec、sandbox_build、sandbox_sync、sandbox_get、sandbox_pull、sandbox_shot、sandbox_wire 這類),箱子就算你的;sandbox_status、sandbox_list、sandbox_say 與 sandbox_review 不算。steps[] 只有命令與說明,沒有輸出、也沒有檔案:要知道做到哪裡,用 sandbox_exec 在 /work 跑 git status、git log 與 docker ps(凍結的箱子會先解凍,多幾秒)。前一個對話如果是在人的電腦上改程式、再用 sandbox_sync 送進箱子,那些改動也在人的本機 checkout 裡:那邊的 git status 也要看。只在箱子裡寫的東西,就只在 /work。/work 還在,前一個對話留下的東西都在裡面;箱子已經停掉(terminated 或 interrupted)時就不在了,這時用同一個 goal 開新箱子,沒有 commit 並 push、沒拉回來也沒發布的東西都沒了。
  4. 以 sandbox_review 或 sandbox_stop 收尾(收尾)。

沒人用的箱子在最後一次使用 24 小時後、或過了它的 idleTimeoutMin 就永久停掉(箱子狀態),要在那之前接手。

帳號沒有成員:只有帳號的登入打得開 app。沒有 app 的隊友,用自己的 agent 找等人接手的箱子:sandbox_list 裡 agent.state 是 left 或 idle 的就是,再用 name 或 id 叫它接手。

在 app 裡,AI 停手了(對話關掉了,或箱子 1 小時沒用)、又沒有卡片在等人的箱子有兩個按鈕:

  • 「接著做」複製一段提示,讓人貼到任何 AI 對話,原文如下:接手 ParallelSandbox 沙盒 {id}({name}):先用 sandbox_status 看它的目的和做過的步驟,把沒做完的做完。做完用 sandbox_review 交件給我驗收;不需要我看就用 sandbox_stop 收掉。
  • 「收掉」停掉箱子,跟 sandbox_stop 一樣。

所有工具與主題都列在工具參考。