這是把 P0 定案後的實際落地藍圖:一台 Mac mini 跑 agentmemory hub,OpenRouter 上的 DeepSeek V4 Flash 當過濾/加速/routing 引擎,Tailscale 讓全公司異地連入。搭配的 Claude Code build prompt 會照這張藍圖一次把主機 build 完。
你會拿到兩個檔案:這份 HTML(給人看的架構藍圖)+ 一份 claude-code-build-prompt.md(給 Claude Code 執行的建置指令)。
在這台 Mac mini 上打開 Claude Code,把 claude-code-build-prompt.md 裡「PROMPT 開始/結束」之間的內容整段貼進去執行。它會逐步安裝、設定、常駐化、測試,並在需要時互動式向你要 OpenRouter key。
你的基本想法之外,這版加了:繁中斷詞(否則中文檢索退化)、DeepSeek V4 Pro 當 fallback、每日自動備份、launchd KeepAlive(掛掉自動重拉)、治理閘門規則(把「資料過濾」變成可執行規則)、以及 Tailscale ACL 建議(網路層先擋一道)。
同一顆 DeepSeek V4 Flash 身兼三職:擷取代理的事實抽取、治理閘門的分類(PII/信心/機密級)、以及 agentmemory 內部的記憶壓縮與 routing。便宜(約 US$0.09/0.18 每百萬 token)又快,正好扛高量。
| 項目 | 設定 |
|---|---|
| 主模型 slug | deepseek/deepseek-v4-flash |
| Fallback slug | deepseek/deepseek-v4-pro |
| 端點 | https://openrouter.ai/api/v1/chat/completions |
| Context | 1M token(可整份會議記錄一次餵) |
| 價格(約) | US$0.09 / M 輸入 · US$0.18 / M 輸出 |
| 能力 | tool use、function calling、結構化輸出、thinking/non-thinking |
| 在本系統的三個角色 | 擷取抽取 · 治理分類 · agentmemory 內部壓縮/routing |
agentmemory 為 pre-1.0,指定「OpenRouter 用哪個模型」的環境變數名(OPENROUTER_MODEL 之類)未必固定。build prompt 已指示 Claude Code 先用 agentmemory doctor/README/原始碼確認正確變數名,再把值設為 deepseek/deepseek-v4-flash——不臆測、不寫錯。
核心安裝就三行;關鍵是別漏繁中斷詞,以及用 launchd 讓 hub 開機自啟、掛掉自動重拉。
npm install -g @agentmemory/agentmemory \ @xenova/transformers \ # 本地 embedding(免費/離線) @node-rs/jieba tiny-segmenter # 繁中斷詞(不裝=中文檢索退化) agentmemory doctor # 確認 iii-engine v0.11.2、embedding、team 設定
<dict> <key>Label</key><string>net.neteon.agentmemory</string> <key>ProgramArguments</key> <array><string>AGENTMEMORY_BIN</string></array> <key>RunAtLoad</key><true/> <key>KeepAlive</key><true/> # 掛掉自動重拉 <key>StandardOutPath</key><string>.../logs/hub.log</string> </dict>
pmset 關睡眠 + launchd 常駐 = 這台機器 24/7 撐住 hub。tmux 仍可用來手動觀察,但正式服務交給 launchd 比較穩。
全公司裝 Tailscale,hub 只在 tailnet 內可達,公網零曝露。每位同事在自己 agent 的 MCP 設定貼一段、帶自己的 USER_ID 即可。
{
"mcpServers": {
"agentmemory": {
"command": "npx",
"args": ["-y", "@agentmemory/mcp"],
"env": {
"AGENTMEMORY_URL": "http://<hub>.<tailnet>.ts.net:3111",
"AGENTMEMORY_SECRET": "<hub secret,私下發>",
"USER_ID": "hubert"
}
}
}
}
/plugin install agentmemory 或直接用上面區塊。AGENTMEMORY_URL 指向 hub。integrations/openclaw 深整合。config.yaml 設 memory.provider: agentmemory。viewer(:3113)與 iii console(:3114,無驗證)永遠留在 127.0.0.1,要看走 SSH tunnel 或 tailnet,別對外。
擷取代理讀入商業文字,交 DeepSeek V4 Flash 抽成結構化事實並分類,再過治理閘門,通過者才寫入 hub。抽取提示與治理規則都會被 build 成實體檔案。
# 角色:Neteon 知識擷取器 只抽「對公司有長期價值」的事實:決策、夥伴關係與層級、報價與條件、 產品規格、負責人、時程里程碑、客戶需求。略過寒暄與行程協調。 # 輸出:只回一個 JSON 陣列,每筆: { content: 單一可獨立理解的繁中事實, source: 來源出處, dept: sales|ops|eng|exec|marketing|support, confidentiality: public|internal|restricted, confidence: 0.0–1.0, contains_pii: true|false }
1. 無 source → 丟棄 2. 無 dept 標籤 → 丟棄 3. confidence < 0.6 → 丟棄(寧缺勿濫) 4. contains_pii == true → 丟棄,記「已擋 PII」 5. confidentiality: public / internal → 寫入 neteon-shared restricted → 不進共享池,轉待人工覆核佇列 6. content 須單一、可獨立理解 → 否則退回重抽 7. 24h 內同 hash 已寫過 → 略過(去重、省 API)
去識別、去重、稽核、來源追溯這些機制由 agentmemory/DeepSeek 做掉;但「什麼能進共享池、誰能寫、機密怎麼分級」這些政策永遠是你定的——就寫在 governance-rules.md 裡,日後直接改這個檔即可調整。
build 完先手動跑幾份真實文件,確認抽取品質與閘門判斷合理,再把 extract.mjs 交給 Hermes cron 排程。別一開始就全自動。
backup.sh:rsync ~/.agentmemory → backups/。KeepAlive 自動重拉;hub.log 排錯。SNAPSHOT_ENABLED=true:git 版本化快照,可回滾。memory_audit/memory_verify/memory_governance_delete。iii-engine 鎖 v0.11.2,升級走 staging,別盲升。:3111 限定給團隊裝置。extract.mjs,檢查抽取+閘門判斷。governance-rules.md,再放大到全公司。