技能與記憶
技能和記憶是兩個內建的 addon。
除非 roundtable.config.ts 把它們關掉,否則兩者都是開的;見關掉 addon。
技能是一個 Markdown 檔,叫 SKILL.md,有名稱、描述,還有一段本文,說明某一類工作怎麼做。
描述以「Use when」開頭,只說明這個技能在什麼情況下適用。
agent 帶著的技能,會以 Pi skill 檔的形式交給它的 session。
技能有三種:
- 內建。
writing-skills隨 pi-roundtable 一起發佈,每個 agent 都帶著。不能從 agent 身上移除。 - agent 寫的。 由 agent 用工具建立,存在資料目錄底下,agent 能更新或刪除。
- 連結自 repository。 技能放在主機管理的 repository 裡。在這裡是唯讀的,要改得去它的 repository 改。
寫一個技能,說明我們怎麼整理每週會議的摘要,然後交給 Notes。Researcher 帶了哪些技能?owner 和 admin 能用下面全部的工具。skill_list 則是每位說話的人都能用。
| 工具 | 作用 |
|---|---|
skill_list |
列出技能,附上種類、描述、群組,以及帶著它的 agent。可以用 group 篩選,或在 query 放一個關鍵字。 |
skill_create |
用 name、最多 1,024 個字元的 description,和最多 12,000 個字元的 body 寫一個新技能。名字是永久的:小寫字母、數字和連字號,最多 64 個字元。它不會把技能交給任何人。 |
skill_update |
取代 agent 所寫技能的描述或本文。帶著它的 agent 從下一輪起讀到新版本。 |
skill_delete |
刪除 agent 所寫的技能,並從每個 agent 身上拿掉。 |
skill_link |
登記某個 repository 資料夾裡的技能,或它底下各資料夾中的所有技能。名稱和描述取自每個檔案。 |
skill_unlink |
把連結的技能從登記處和每個 agent 身上移除。repository 不受影響。 |
skill_group_set |
建立或取代一個技能群組。 |
skill_group_delete |
刪除技能群組。裡面的技能還在。 |
agent_skills |
用 add 和 remove 清單,增減 agent 帶的技能。 |
讓 agent 帶技能
Section titled “讓 agent 帶技能”建立 agent 時用 skills 欄位交給它,之後則用 agent_skills。
修改從 agent 的下一輪開始生效。
技能名稱只要有一個不存在,整個呼叫都會被拒絕,所以不會有任何變動。
技能群組是一份有名字的技能清單,附一段最多 200 個字元的簡短描述。
它只用來篩選 skill_list。
agent 帶的是技能,不是群組。
writing-skills 技能
Section titled “writing-skills 技能”每個 agent 都帶著 writing-skills,skill_create 也會指向它。
它要求 agent:
- 先查登記處,擴充已經涵蓋該流程的技能。
- 描述只寫這個技能什麼時候該用。
- 本文寫成有順序的步驟,每一步都附上確認做完的方法。
- 刪掉不會改變 agent 行為的句子。
- 用
skill_create或skill_update存起來,再用agent_skills交給負責做這件事的 agent。
agent 寫的技能是單一檔案,最多 12,000 個字元。
agent 會替你記住事情,而且所有 agent 共用同一份記憶。 每位跟 agent 說話的人各有自己的記憶:你說話時,agent 讀寫的是你的記憶;別人說話時,讀寫的是那個人的。 一個人的記憶不會分享給另一個人。
記住我喜歡簡短的回答。我之前說過柏林那趟旅行的什麼事?| 工具 | 作用 |
|---|---|
memory_add |
存一則事實。kind 是 core(關於你的穩定事實)、note(專案、人物、參考資料)或 event(某個日期的事,格式為 YYYY-MM-DD)。 |
memory_search |
用幾個關鍵字搜尋記住的所有內容,包括筆記和過去的事件。 |
memory_remove |
忘記所有包含指定文字的事實。 |
這些工具每位說話的人都能用。
提示詞裡有什麼
Section titled “提示詞裡有什麼”每一輪開頭,system prompt 裡都有一段記憶:設定時區下的今天日期、核心事實,以及即將到來的事件。
事件在日期過後就不再顯示。
筆記不在這一段裡。需求可能用得到筆記時,agent 會用 memory_search 去找。
核心事實要少、要短,因為每次對話都會帶著它們。
關掉 addon
Section titled “關掉 addon”export default { // ... skills: false, memory: false,} satisfies RoundtableConfig;| 設定 | 設成 false 時 |
|---|---|
skills: false |
沒有技能工具,任何 session 裡都沒有技能。agent_create 沒有 skills 欄位,傳了就會被拒絕。已存的技能仍留在資料表裡。 |
memory: false |
沒有記憶工具,提示詞裡也沒有記憶那一段。已存的記憶仍留在資料表裡。 |
再把 addon 打開,會找回原來的資料。
skills 開著的時候,也可以傳 { builtinDir, reposDir },改變內建技能和連結 repository 的位置;見設定。