Patricia

官方

Patricia 將您的 AI 用戶端連接到一個 Patricia 工作區。讀取工作區記憶體與檔案、檢查已連接的整合,並透過人工核准控制將工作委派給 Patricia。

你可以用 Patricia MCP 做什麼?

  • 安裝並設定外掛 — 請您的 AI 透過 marketplace 安裝 patricia 外掛,並使用 OAuth 或個人權杖登入。
  • 自動導入專案 — 當設定權杖後,SessionStart 掛鉤會向您問候,並在每個專案中提供一次 onboard 技能。
  • 喚回相關記憶 — UserPromptSubmit 掛鉤會透過 search_memory 將相關記憶加入符合條件的提示中,最多傳送 300 個字元。
  • 在工具執行前檢查整合 — PreToolUse 掛鉤會在本機檢查 WebFetch、WebSearch 和 Bash 的輸入,對照已知的提供者目錄,且不會進行任何網路呼叫。
  • 建議推送記憶 — 在本機記憶寫入後,PostToolUse 掛鉤會建議使用明確範圍的 remember,而 Stop 掛鉤會在長時間工作階段後提醒您。
  • 管理設定與檔案 — 使用 get_settings、update_settings、list_files 和 get_brand_kit 來讀取或變更工作區設定與品牌資產。

文件

[!NOTE] 此儲存庫由 bettergroupinc/patricia-monorepo 於 plugins/patricia/ 產生。 自動化會同步此公開鏡像。 來源提交:147037702592109a4944cdbfb94bdcabb33f490f。 請在單一儲存庫中開啟 pull request 和 issue。

patricia Claude Code 外掛

安裝一次後,代理程式便會正確使用 Patricia 的 MCP 伺服器,無需再次告知。

它包含三項內容。

  1. 指引。 五個技能涵蓋 Patricia 基礎、入門、委派工作、整合以及記憶橋接。
  2. MCP 連線。 安裝時會設定 Patricia 的 Streamable HTTP 伺服器以進行 OAuth 登入。
  3. 五個本機鉤子。 它們負責專案入門、喚回記憶、先檢查整合,並提議記憶推送。它們絕不會寫入 Patricia。

這是一個可散佈的 Claude Code 外掛。使用者在自己的機器上安裝它,它會在使用者的 Claude Code 工作階段中執行。它不是 Patricia 的產品技能目錄,其中沒有任何內容在 Patricia 內部執行。

安裝

claude plugin marketplace add patricia-app/patricia-plugin
claude plugin install patricia@patricia

然後啟動新的工作階段,或執行 /reload-plugins。

該市集是 https://github.com/patricia-app/patricia-plugin.。自動化會從 Patricia 的單一儲存庫產生其中的每個檔案。

貢獻者備註:單一儲存庫是私有的。有權限的貢獻者可以將單一儲存庫本身新增為市集,因為其根目錄的 .claude-plugin/marketplace.json 會將 patricia 外掛指向 ./plugins/patricia。

請安裝它。請勿使用 --plugin-dir 載入它。 以目錄載入的外掛會取得其技能,但不會取得其鉤子,因此指引可以運作,但記憶橋接永遠不會觸發。這是經過實測而非假設的結果:透過 --plugin-dir 載入的探測鉤子從未執行,而在相同無頭模式下的相同寫入中,於專案設定中宣告的相同鉤子則有執行。Claude Code 只會為已安裝且已啟用的外掛註冊其 hooks/hooks.json。

claude plugin details patricia 會回報已安裝的內容:

Component inventory
  Skills (5)  delegating-work, integrations, memory-bridge, onboard, using-patricia
  MCP servers (1)  patricia
  Hooks (5)  SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop

登入 MCP 伺服器

此外掛設定的 MCP 伺服器不會儲存標頭。首次使用時,執行 /mcp 並選取 Patricia。您也可以從終端機啟動 OAuth 流程:

claude mcp login plugin:patricia:patricia

MCP OAuth 登入與鉤子使用的 pat_mcp_ 個人權杖是兩組不同的憑證。僅有 OAuth 不會啟用依賴權杖的鉤子。

當 OAuth 不適用時,可以使用權杖作為替代方案:

claude mcp add --transport http patricia https://api.patricia.app/v1/mcp \
  --header "Authorization: Bearer $PATRICIA_MCP_TOKEN"

pat_mcp_ 個人權杖會指名負責人,且可以寫入。pat_live_ 租戶 API 金鑰不指名任何人,因此只能讀取,也無法回答 list_skills 或 list_integrations。

為本機鉤子提供個人權杖

本機鉤子需要可透過 python3 指令使用的 Python 3。

在 Patricia 的「設定 > 開發人員 > 個人金鑰」中建立 pat_mcp_ 個人金鑰。然後選擇一種設定方式:

export PATRICIA_MCP_TOKEN="pat_mcp_..."

或在 ~/.claude/patricia.json 寫入此檔案:

{
  "token": "pat_mcp_..."
}

PATRICIA_MCP_TOKEN 優先於檔案。空的 PATRICIA_MCP_TOKEN 會停用檔案備援。這是刻意設計的行為。它讓使用者可以在不移動檔案的情況下暫停已驗證的鉤子。

本機鉤子

五個鉤子預設全部啟用。缺少設定檔或缺少鉤子金鑰時,它們會保持啟用。設定檔格式錯誤或無法讀取時,它們會停用。在 ~/.claude/patricia-plugin.json 中將鉤子的列出的金鑰設為字面值 false,即可只停用該鉤子。

入門

  • 時機與動作: SessionStart 會在新增或恢復的工作階段中執行。它會向已連線的使用者打招呼,並在每個專案中提供一次入門技能。
  • 成本: 有權杖時,它會進行一次 whoami 呼叫。網路逾時為 3 秒,鉤子逾時為 10 秒。
  • 關閉開關: 將 hooks.onboarding.enabled 設為 false。
  • 隱私: 有權杖時,只有已驗證的 whoami 請求會離開機器。提示、逐字稿或專案內容不會透過此鉤子離開。

喚回

  • 時機與動作: UserPromptSubmit 會在每個提交的提示之前執行。它會略過指令、簡短回覆、確認以及僅含程式碼的輸入。它會為符合條件的提示新增相關記憶。
  • 成本: 有權杖且提示符合條件時,它會進行一次 search_memory 呼叫。網路逾時為 3 秒,鉤子逾時為 8 秒。
  • 關閉開關: 將 hooks.recall.enabled 設為 false。
  • 隱私: 它會將最多 300 個字元的摺疊提示傳送至 Patricia。只有在設定權杖時,它才會傳送該文字。

先檢查整合

  • 時機與動作: UserPromptSubmit 會檢查提示。PreToolUse 會在工具執行前檢查 WebFetch、WebSearch 和 Bash 輸入。本機目錄會識別已知的提供者。
  • 成本: 它不會進行 MCP 或網路呼叫,也不需要權杖。提示的鉤子逾時為 8 秒,工具呼叫前為 5 秒。
  • 關閉開關: 將 hooks.integrations_first.enabled 設為 false。
  • 隱私: 不會有任何內容離開機器。鉤子會在本機檢查提示或工具輸入。

記憶橋接

  • 時機與動作: PostToolUse 會在 Write、Edit 或 MultiEdit 之後執行。它會偵測到已儲存的本機記憶筆記,並提議帶有明確範圍的 remember。
  • 成本: 它不會進行 MCP 或網路呼叫。鉤子逾時為 5 秒。
  • 關閉開關: 將 hooks.memory_bridge.enabled 設為 false。舊版的 ~/.claude/patricia-memory-bridge.json 檔案也可以將 enabled 設為 false。
  • 隱私: 腳本會在本機讀取已儲存的筆記,且不會透過網路傳送任何內容。它會將筆記路徑和提醒文字回傳給 Claude Code,但不包含筆記內容。

推送提醒

  • 時機與動作: Stop 會在代理程式完成時執行。它會在本機記憶寫入或進行了大量工具使用但未寫入 Patricia 記憶的工作階段之後,提議 remember。
  • 成本: 它不會進行 MCP 或網路呼叫。鉤子逾時為 8 秒。
  • 關閉開關: 將 hooks.push_reminder.enabled 設為 false。
  • 隱私: 它最多會讀取 5 MB 的本機逐字稿,且不會傳送任何內容。它只會在設定權杖時執行,因此在使用者同意後,提議的記憶呼叫才能成功。

網路與憑證

此外掛會透過 Streamable HTTP 連線至 https://api.patricia.app/v1/mcp。

Patricia 使用 OAuth 2.1 搭配 PKCE S256。完成的 OAuth 流程會為用戶端提供個人 pat_mcp_ bearer 權杖。

外掛資訊清單中不包含任何憑證。用戶端會在登入後將 bearer 權杖傳送至 api.patricia.app。

其他市集

  • Cursor 會從此套件讀取 plugin.json 和 mcp.json。
  • OpenAI Codex 和 ChatGPT 會讀取 .codex-plugin/plugin.json。
  • 遠端來源項目不需要資訊清單。xAI 會在存在時讀取 .claude-plugin/plugin.json。

所有市集套件都指向此套件中的單一 skills/ 樹狀結構。

assets/icon.png 是 Patricia 的第一方品牌資產。

記憶橋接只提議,絕不寫入

鉤子是一個 shell 指令。它不持有 MCP 用戶端,沒有取得任何人的同意,也無法區分筆記中的團隊事實與私人事實。如果鉤子將每個本機筆記都傳送到共用工作區,就會在不知不覺中將機器特定、暫時性及私人的筆記暴露給整個團隊。這是橋接要避免的失敗模式,而不是它延後的功能。

因此,鉤子只做一件事:它會注入 hookSpecificOutput.additionalContext,告知代理程式該筆記僅限本機,且 remember 需要 scope。代理程式決定範圍、詢問其使用者,然後進行呼叫。判斷與寫入都留在同一個地方。

四個閘門讓它保持安靜:

閘門效果
任一受支援的設定將橋接的 enabled 值設為 false靜默。沒有該值時,橋接會啟用。
寫入路徑在記憶目錄之外靜默。
寫入未成功,或檔案為空靜默。
筆記的 front matter 帶有 patricia: skip靜默。

它也會在每個工作階段中最多提供一次特定筆記,因此 Write 後接著執行 Edit 呼叫會產生一個提醒,而不是四個。該記錄存放在 ~/.claude/patricia-memory-bridge-state/,每個工作階段一個檔案,七天後清除。

它不會使用 CLAUDE_PLUGIN_DATA 來達成此目的。該變數存在於鉤子的環境中,但不可靠地指向執行中外掛自己的目錄:此機器上的專案層級鉤子看到它被設為 ~/.claude/plugins/data/codex-openai-codex,這是一個不相關外掛的資料目錄。

記憶寫入實際使用的工具

Claude Code 2.1.238 宣告了名為 memory_list、memory_read 和 memory_write 的工具。在建立此外掛的機器上,記憶筆記並非使用這些工具寫入:掃描最近 120 份工作階段逐字稿後,發現有 49 次 Write 和 35 次 Edit 呼叫進入 ~/.claude/projects/*/memory/,而 memory_write 呼叫為零次。

因此比對器是 Write|Edit|MultiEdit。memory_write 刻意被排除。為一個尚未驗證 payload 形狀的工具新增比對器,會得到一個靜默永不觸發、且看起來與正常運作完全相同的鉤子。當讀取到真實的 memory_write payload 時,再新增它。

指引與伺服器的常駐規則是一份副本,而非兩份

start_onboarding_import 可能會回傳帶有 ask_first、instruction 以及一個大小適合放入他人 CLAUDE.md 的 markdown 區塊的 standing_rule_to_offer。該技能不會重述該區塊。它會告訴代理程式呼叫工具並使用回傳的內容,因此伺服器仍是該文字的單一擁有者。

在安裝時擷取它是另一種選擇,但行不通。外掛的 SKILL.md 是內容定址快取中的靜態文字,沒有安裝時步驟可以改寫它,而且一個負責設定 Patricia 的外掛不能依賴可用的已驗證 Patricia 連線來呈現自己的指示。在使用時讀取工具可以獲得相同的單一副本,且沒有上述任何問題。

這裡的每個工具名稱都是真實工具

此外掛中每個帶反引號的工具識別碼都會與伺服器自己的工具登錄檔比對,也就是伺服器從 tools/list 建立的清單。相同的檢查會斷言它找到了一組非空的識別碼,因此損壞的擷取器無法因為找不到任何內容而通過。

貢獻者備註:該檢查是 Patricia 單一儲存庫中的 backend/api/tests/test_patricia_claude_plugin.py,並且在此外掛每次變更時都會執行。

設定與檔案探索

工具用途
get_settings列出設定,或讀取選定的金鑰或群組,包含含義、值和權限。任一憑證都可以讀取工作區群組。
update_settings透過儀表板操作變更一個允許的群組。需要個人權杖。
list_files列出檔案。第一頁包含資料夾和依可見性篩選的計數。
get_brand_kit讀取品牌顏色、排版和標誌。

使用 get_settings(keys=["company_profile"]) 取得公司檔案。 設定工具共用 Patricia 在聊天中使用的目錄和操作。 聊天設定變更需要請求使用者按一下確認。 核准原則變更會影響主控台執行;關鍵和提供者要求的動作會保留其核准下限,而對象和僅按一下的下限會保留在 Patricia 已詢問的任何動作上。

當同一位使用者的另一個工作正在執行時,整合讀取會等待。 使用 get_task_status 輪詢該工作,或等待它完成。 在直接整合核准之後,請遵循 decide_approval 回傳的 next 句子。 它會指名要再次呼叫的工具,並使用相同的 tool_ref 和引數。