跳到內容

Loop book

一個 loop 的狀態是一份條目檔,每個階段都從它算出來。agent 只宣告 extension 看不到的事;其餘都從證據讀出。

第一次 todo create 會以 inline 開啟 loop,kind 呼叫也能開啟或更改 loop。

loop 怎麼開啟,以及 agent 宣告什麼

第一次 todo create 會以 inline 開啟 loop:intent 取第一個 todo 的標題,anchor 取 Reality anchor: 這一行或該 todo 的 metadata.anchor。kind 呼叫也能開啟或更改 loop。任務紀錄需要 @juicesharp/rpiv-todo 的 todo 工具,book 讀它的 tool_result details {tasks, nextId} 和 rpiv-todo-state 條目。

agent 只用 anchorloop_stage 宣告 extension 看不到的事:

  • kind:用來選 quick、reviewed 或 durable,附 intent 和 anchor 指令;改掉 agent 自己選的種類時,必須附 reason。
  • verify:不是 bash 指令的檢查。
  • fresh-read、friction(tried、found、led_by)與 reflect。
  • skip 與 back。
  • close,以及查詢用的 read。

book 也記錄每個 todo 的 anchor、ref(<path>#<heading>,解析成行號範圍)和 followup metadata。

book 放在哪裡,怎麼結束

每個開啟中的 loop 有一份 YAML book,放在 ~/.pi/agent/anchorloop/books/;可用 ANCHORLOOP_BOOKS_DIR 覆寫目錄,空的專案目錄與 agents/ 目錄會被移除。subagent 的 book 放在 agents/;subagent 自己 close 時,book 留給主 session。session_start 會清掉 session 已不存在或 7 天沒有更新的 book。提示只用一行列出數量(本專案未關的 book、刪掉的過期 book),再列最新三本與其餘所在的目錄。

close 回覆 closed (landed). Clear the todo list.,只多列沒有完成的階段和還沒 reflect 的 friction。它不會因為階段或 friction 而拒絕。只在還有 pending 或 in-progress 的 todo 沒有 metadata.followup 時拒絕:票號、memory 或 drop — <reason>。