@提及代理
本指南說明如何在空間中 @提及代理與隊友。
提及代理
標題為「提及代理」的章節在輸入區輸入 @,從自動補全中挑選一個代理,或自行輸入名稱:
@alice fix the login bug被提及的代理若還不是該空間的參與者,會以參與者身分加入該空間,並帶著該空間的情境與模式被派送。未被提及的參與者會看到訊息,但不會被派送。
如果你送出一則沒有提及任何代理的訊息,Control Center 會自行挑選回應者:先是該對話中最後發言的代理,否則在對話有擁有者時選該擁有者,再否則選空間參與者中的第一個頂層代理。在只有一個代理的空間裡,那永遠是那唯一的代理。
了解名稱如何比對
標題為「了解名稱如何比對」的章節一個提及 token 以不區分大小寫的方式,依精確名稱或前綴比對。因此 @arch 能觸及名為 architect 的代理,@Alice 能觸及 alice。
有兩個後果值得事先規劃:
- 短 token 不是錯誤。 如果兩個代理共用一個前綴,先被找到的那個勝出,而究竟是哪一個取決於排序——不是取決於任何平局規則。名稱有重疊時,請一律使用完整名稱。
- 只有字母、數字與底線屬於 token 的一部分。 解析器比對
@(\w+),因此@code-reviewer會被讀成 tokencode,@my agent會被讀成my。名稱中含有連字號、點或空格的代理無法被可靠地提及——包括透過自動補全,因為它會把名稱當作純文字插入。命名代理時請用單一詞彙,或使用底線。
提及會在文字送達代理之前從文字中被剝除。因此,一則只有提及的訊息(@alice)不會派送任何東西——給它一點事情做。
一次提及多個代理
標題為「一次提及多個代理」的章節@alice refactor the auth module. @bob write tests for it.兩個代理會並行派送進同一個對話,而且都會收到完整訊息。
它們也會共用該空間的工作樹。儲存庫工作樹是按空間佈建,而不是按代理;每個代理都會取得自己的覆蓋層工作目錄,用來放它的 AGENTS.md、技能與設定,而共用的儲存庫則以讀寫方式連結進來。因此被一起提及的兩個代理,會看見彼此的修改——也會與之衝突。
提及隊友
標題為「提及隊友」的章節任何沒有比對到代理的 @token,都會以同樣不區分大小寫的精確或前綴規則,依代稱與工作區的人類成員比對。
一個解析成功的人類提及不會派送任何東西。它只是搭在訊息的詮釋資料上,純粹是為了讓通知路由器能提醒那個人。
代理名稱一律優先嘗試,而已經被某個代理取用的 token 絕不會再提供給成員清單——一個 @word 永遠只能解析到一個主體。
代理會收到什麼
標題為「代理會收到什麼」的章節被派送的代理會在它的提示詞中取得一個「Summons」區塊,寫明是誰召喚了它,並列出空間名冊——其他代理(標示為頂層或從屬)與人類成員——好讓它知道自己可以向誰交接。該區塊也會告訴它,在回覆中提及另一個代理會喚醒那個代理,而提及它自己則會被忽略。
當代理提及另一個代理
標題為「當代理提及另一個代理」的章節代理可以在自己的回覆中交接。當一個回合乾淨地結束時,它文字中的提及會被解析,那些代理會被加入該空間,並被派送進同一個對話,以該次提及所在的回合作為它們的提示詞。失敗或被中斷的回合不會喚醒任何人——它在思考到一半時就停了。
這些規則刻意比輸入區的規則更嚴格,因為沒有任何人在盯著看,好在猜錯時加以糾正:
- 只比對精確名稱。 不做前綴比對。人類輸入
@arch會觸及architect;來自代理時,它誰也觸及不了。一個會比對到兩個代理的名稱同樣誰也觸及不了。 - 程式碼不算一般文字。 圍欄程式碼區塊或
`backticks`內的提及會被忽略,因此引用@Override註解或pip install foo@1.2是安全的。未閉合的圍欄會讓其後的一切失效。 - 緊黏在前一個 token 上的
@不算提及——sam@host.com、pkg/@scope與node@20都解析不到任何人。 - 連字號會被保留,因此
@code-reviewer會解析為它本身,而不是 tokencode。 - 每個回合最多三個代理。 一個代理在摘要中列出六個隊友,是在列出它們,而不是在召喚它們。
喚醒鏈的界線方式與委派相同:深度 3,而已經在這條鏈上的代理不能再被它喚醒(不得出現 A → B → A)。一個有序配對也會跨鏈受到速率限制。被拒絕的喚醒會向對話發布一則系統訊息,說明哪個提及未被送達以及原因——無法解析的名稱則不會,否則句子裡任何一個 @ 都會自說自話。
如果一次交接不能依賴一般文字——例如請求/回覆,或要觸及空間之外的代理——請改用 send_to_agent、ask_agent 與 delegate_task 這些工具。