Hermes Desktop安裝Hindsight 完整指南(含踩坑)
本文記錄從 0 到 1 在 Hermes Desktop 中安裝、配置 Hindsight 長期記憶系統(tǒng)的完整過程,包含所有踩過的坑和解決方案?;?Windows 10 + Hermes Desktop + Hindsight v0.8.3 環(huán)境。
一、Hindsight 是什么
Hindsight 是一個專為 AI Agent 設(shè)計的長期記憶系統(tǒng)(Long-term Memory),通過知識圖譜、實體解析和多策略檢索,讓 AI 擁有跨會話的持久記憶能力。
核心能力:
- hindsight_retain:存儲信息到長期記憶
- hindsight_recall:語義搜索歷史記憶
- hindsight_reflect:跨記憶合成推理
三層架構(gòu):
hindsight-api ← 后端引擎(數(shù)據(jù)平面)
↓ http://localhost:8888
hindsight-control-plane ← Web 管理界面(控制平面)
↓ http://localhost:9998
Hermes Desktop ← 客戶端集成
二、前置條件
| 組件 | 版本要求 | 說明 |
|---|---|---|
| Windows | 10/11 | 本文基于 Windows 環(huán)境 |
| Node.js | ≥ v18.x | Hindsight 運行依賴 |
| npm | ≥ v9.x | 通常隨 Node.js 安裝 |
| Python | 3.11+ | Hermes Desktop 自帶 |
| PostgreSQL | 可選 | Hindsight 默認使用 SQLite,生產(chǎn)環(huán)境建議 PostgreSQL |
三、安裝 hindsight-api(后端引擎)
3.1 安裝 Hindsight 包
# 全局安裝 hindsight-api(推薦) npm install -g hindsight-api # 或者本地安裝 npm install hindsight-api
3.2 配置環(huán)境變量(永久生效)
關(guān)鍵:使用 setx 命令永久設(shè)置,設(shè)置后必須重新打開終端才能生效!
坑點警示:set 命令只在當(dāng)前 CMD 窗口生效,關(guān)閉后全部丟失;setx 寫入注冊表永久保存。之前用 set 配置后重啟終端導(dǎo)致所有變量丟失,出現(xiàn) 401/400 錯誤。
REM ===== LLM 配置(DeepSeek)===== setx HINDSIGHT_API_LLM_PROVIDER "deepseek" setx DEEPSEEK_API_KEY "sk-你的deepseek密鑰" setx HINDSIGHT_API_LLM_MODEL "deepseek-v4-flash" REM ===== Embedding 配置(SiliconFlow)===== setx HINDSIGHT_API_EMBEDDINGS_PROVIDER "openai" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY "sk-你的硅基流動密鑰" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_BASE_URL "https://api.siliconflow.cn/v1" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_MODEL "Qwen/Qwen3-Embedding-0.6B" REM ===== Reranker 配置(SiliconFlow)===== setx HINDSIGHT_API_RERANKER_PROVIDER "siliconflow" setx HINDSIGHT_API_RERANKER_SILICONFLOW_API_KEY "sk-你的硅基流動密鑰" setx HINDSIGHT_API_RERANKER_MODEL "BAAI/bge-reranker-v2-m3" REM 設(shè)置后需重新打開終端
3.3 啟動 hindsight-api
# 直接啟動(前臺) hindsight-api # 指定參數(shù)啟動 hindsight-api --host 0.0.0.0 --port 8888 --log-level info
驗證啟動成功:
curl http://localhost:8888/health
# 返回: {"status":"healthy","database":"connected"}四、安裝 Control Plane(Web 管理界面)
# 通過 npx 啟動(無需全局安裝) npx @vectorize-io/hindsight-control-plane --api-url http://localhost:8888 --port 9998
啟動后訪問:http://localhost:9998

五、Hermes Desktop 集成配置
5.1 方式一:通過 Hermes Desktop 客戶端界面配置(推薦)
Hermes Desktop 支持直接在客戶端界面中配置 Hindsight,無需手動編輯配置文件。
操作步驟:
- 打開 Hermes Desktop 客戶端
- 進入設(shè)置頁面:點擊左下角 ?? 設(shè)置圖標
- 找到「記憶提供方」或「Memory Provider」選項卡
- 選擇 Provider:從右上角下拉菜單中選擇 Hindsight
- 展開 Hindsight settings:點擊向下的箭頭展開配置區(qū)域
- 填寫配置參數(shù):
| 參數(shù) | 當(dāng)前值 | 說明 |
|---|---|---|
| Mode | Local External | 連接已存在的 Hindsight 實例 |
| API key | (空) | Hindsight API 認證密鑰 |
| API URL | http://0.0.0.0:8888 | Hindsight API 服務(wù)地址 |
| Bank ID | hermes | 記憶庫名稱/命名空間 |
| Recall budget | mid | 召回預(yù)算(low/mid/high) |
注意:API key 字段在 Local External 模式下通常不需要填寫(本地服務(wù)無認證),但如果看到 API key not set 紅色提示,可留空或填寫任意值。
- 點擊右下角「Save」按鈕保存配置
- 重啟 Hermes Desktop 使配置生效
配置界面截圖參考:

驗證配置:
- 重啟后, 嘗試發(fā)送一條消息,檢查是否能正常存儲到 Hindsight
- 訪問 http://localhost:9998 查看 Control Plane「記憶」頁面是否有新內(nèi)容
5.2 方式二:手動編輯配置文件(備用)
如需手動配置,或客戶端界面配置未生效時,可直接編輯配置文件:
memory: provider: hindsight memory_enabled: true user_profile_enabled: true
同時創(chuàng)建 hindsight/config.json:
{
"mode": "local_external",
"api_url": "http://0.0.0.0:8888",
"bank_id": "hermes",
"recall_budget": "mid"
}5.3 驗證 Hermes 集成
無論通過哪種方式配置,重啟 Hermes Desktop 后都需要驗證:
檢查工具列表:在對話界面中應(yīng)該能看到以下三個工具
hindsight_retain— 存儲信息到長期記憶hindsight_recall— 語義搜索歷史記憶hindsight_reflect— 跨記憶合成推理
測試存儲功能:發(fā)送一條消息,檢查是否能正常存儲到 Hindsight
驗證 Control Plane:訪問 http://localhost:9998,查看「記憶」頁面是否有新內(nèi)容
六、踩坑記錄(重點?。?/h2>
? 坑 1:MCP 包名錯誤 —@hindsight/mcp-servervshindsight-mcp
現(xiàn)象:
配置 Hindsight MCP 時,需要參數(shù)的工具(retain、recall、reflect 等)全部返回 422 錯誤,因為工具定義中 properties 為空導(dǎo)致無法傳參;而 getBankStats 等不需要參數(shù)的只讀工具正常工作。
根因:
使用了錯誤的 npm 包名 @hindsight/mcp-server,該包與 Hindsight 服務(wù)端 API 不匹配。
解決:
# 錯誤的 npm install -g @hindsight/mcp-server # 正確的 npm install -g hindsight-mcp
正確包信息:
- 包名:
hindsight-mcp - 版本:1.1.3
- 維護者:jeanibarz
- GitHub:hindsight-ai/hindsight-ai
? 坑 2:Embedding 模型兼容性問題 — BAAI/bge-large-zh-v1.5 返回 20015 錯誤
現(xiàn)象:
Mental Model(tech-stack、ops-playbook)刷新失敗,content 始終為空。SiliconFlow 的 BAAI/bge-large-zh-v1.5 模型返回 20015 錯誤(參數(shù)無效)。
排查過程:
- 最初懷疑是 SiliconFlow 賬戶欠費(余額 -29.30)
- 實際測試發(fā)現(xiàn):同一 API Key 下,Qwen/Qwen3-Embedding-0.6B 模型完全正常
- 確認是模型兼容性問題,非欠費
解決:
方案 A:更換 embedding 模型(永久生效)
setx HINDSIGHT_API_EMBEDDINGS_OPENAI_MODEL "Qwen/Qwen3-Embedding-0.6B" REM 設(shè)置后需重新打開終端
關(guān)鍵參數(shù):
- 維度:1024(與原有數(shù)據(jù)庫兼容,無需遷移數(shù)據(jù))
- API 端點:保持
https://api.siliconflow.cn/v1 - Provider:保持
openai
關(guān)鍵教訓(xùn):之前用 set 臨時設(shè)置,重啟終端后失效導(dǎo)致問題復(fù)發(fā),改用 setx 永久生效。
修復(fù)驗證:
- tech-stack:成功生成 4775 字符
- ops-playbook:成功生成 5856 字符
? 坑 3:DeepSeek-v4-flash 在 structured reflect 路徑下返回空內(nèi)容
現(xiàn)象:
Mental Model 刷新時,user-profile 和 hindsight-setup 成功,但 tech-stack 和 ops-playbook 的 content 為空。
根因分析:
- 成功的模型走同步路徑
- 失敗的模型走異步 Worker 路徑(structured reflect)
- DeepSeek-v4-flash 在 structured reflect 路徑下返回空內(nèi)容(
finish_reason=length) - 而 plain reflect 路徑正常工作
解決:
方案 A:更換 reflect LLM 模型(永久生效)
setx HINDSIGHT_API_LLM_MODEL "xopglm52" REM 或其他支持 structured output 的模型 REM 設(shè)置后需重新打開終端
方案 B:分離 LLM 配置(永久生效)
REM retain 繼續(xù)使用 DeepSeek-v4-flash(簡單事實提取) setx HINDSIGHT_API_LLM_MODEL "deepseek-v4-flash" REM reflect 換用其他模型(需要 structured output 支持) setx HINDSIGHT_API_REFLECT_LLM_MODEL "xopglm52" REM 注意:此配置需 Hindsight v0.8.4+ 支持
關(guān)鍵教訓(xùn):set 命令只在當(dāng)前終端會話生效,重啟后丟失;setx 才能永久保存到系統(tǒng)環(huán)境變量。之前用 set 配置后重啟終端導(dǎo)致失效,改用 setx 解決。
? 坑 4:環(huán)境變量傳遞問題導(dǎo)致 SiliconFlow Reranker/Embeddings 401/400 錯誤
現(xiàn)象:
Hindsight API 的 SiliconFlow Reranker 和 Embeddings 因環(huán)境變量傳遞問題導(dǎo)致 401/400 錯誤,LLM reflect 正常。日常對話和記憶存儲不受影響,但 mental model 自動刷新和深度搜索受影響。
解決:
編寫專用啟動腳本 start-hindsight.bat,確保環(huán)境變量正確傳遞(永久生效):
@echo off REM start-hindsight.bat REM 確保所有環(huán)境變量正確設(shè)置后啟動 hindsight-api REM 注意:以下變量已通過 setx 永久設(shè)置,此處僅為保險起見 set HINDSIGHT_API_LLM_PROVIDER=deepseek set DEEPSEEK_API_KEY=sk-xxx set HINDSIGHT_API_LLM_MODEL=deepseek-v4-flash set HINDSIGHT_API_EMBEDDINGS_PROVIDER=openai set HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY=sk-xxx set HINDSIGHT_API_EMBEDDINGS_OPENAI_BASE_URL=https://api.siliconflow.cn/v1 set HINDSIGHT_API_EMBEDDINGS_OPENAI_MODEL=Qwen/Qwen3-Embedding-0.6B set HINDSIGHT_API_RERANKER_PROVIDER=siliconflow set HINDSIGHT_API_RERANKER_SILICONFLOW_API_KEY=sk-xxx set HINDSIGHT_API_RERANKER_MODEL=BAAI/bge-reranker-v2-m3 hindsight-api
永久設(shè)置環(huán)境變量(推薦先用 setx):
setx HINDSIGHT_API_LLM_PROVIDER "deepseek" setx DEEPSEEK_API_KEY "sk-xxx" setx HINDSIGHT_API_LLM_MODEL "deepseek-v4-flash" setx HINDSIGHT_API_EMBEDDINGS_PROVIDER "openai" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY "sk-xxx" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_BASE_URL "https://api.siliconflow.cn/v1" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_MODEL "Qwen/Qwen3-Embedding-0.6B" setx HINDSIGHT_API_RERANKER_PROVIDER "siliconflow" setx HINDSIGHT_API_RERANKER_SILICONFLOW_API_KEY "sk-xxx" setx HINDSIGHT_API_RERANKER_MODEL "BAAI/bge-reranker-v2-m3" REM 設(shè)置后需重新打開終端
關(guān)鍵教訓(xùn):set 只在當(dāng)前 CMD 窗口生效,關(guān)閉后全部丟失;setx 寫入注冊表永久保存。之前用 set 配置后新開 CMD 窗口啟動 hindsight-api,導(dǎo)致所有變量丟失,出現(xiàn) 401/400 錯誤。
? 坑 5:attrs模塊未安裝導(dǎo)致no attribute 'models'錯誤
現(xiàn)象:
Hermes 啟動時報錯 module has no attribute 'models'。
解決:
# 必須在 Hermes 的 venv 中安裝,不能裝在系統(tǒng) Python 中 pip install attrs # 然后重啟 Hermes Desktop
永久生效方案(Windows):
setx PATH "%PATH%;C:\Users\gongc\AppData\Local\hermes\venv\Scripts" REM 設(shè)置后需重新打開終端
設(shè)置后需重新打開終端,確保 Hermes 的 venv 在 PATH 中優(yōu)先。
關(guān)鍵教訓(xùn):set 只在當(dāng)前終端生效;setx 才能永久保存到系統(tǒng)環(huán)境變量。之前用 set 配置 PATH 后重啟終端失效,改用 setx 解決。
? 坑 6:Mental Model 刷新異步路徑 Bug(Worker 隊列問題)
現(xiàn)象:
tech-stack 和 ops-playbook 的 Mental Model 刷新失敗,執(zhí)行 11 次 refresh 全部失敗,而 user-profile 和 hindsight-setup 成功。
排查過程:
- 最初懷疑是 Worker 異步路徑存在 bug——任務(wù)被 queued 但從未執(zhí)行或結(jié)果未保存
- 后續(xù)確認根因是 SiliconFlow embedding 模型問題(見坑 2)
- LLM 請求 875 次全部成功,排除 LLM 問題
解決:
- 修復(fù) embedding 模型(更換為 Qwen/Qwen3-Embedding-0.6B)
- 重啟 hindsight-api 服務(wù)
- 重新觸發(fā) Mental Model 刷新
? 坑 7:Windows CMD 中 curl 命令操作 Mental Model
清空并刷新 Mental Model:
REM 清空 tech-stack
curl -X PATCH http://localhost:8888/banks/hermes/mental-models/tech-stack -H "Content-Type: application/json" -d "{\"content\":\"\",\"history\":[]}"}
REM 清空 ops-playbook
curl -X PATCH http://localhost:8888/banks/hermes/mental-models/ops-playbook -H "Content-Type: application/json" -d "{\"content\":\"\",\"history\":[]}"}
REM 觸發(fā)刷新
curl -X POST http://localhost:8888/banks/hermes/mental-models/tech-stack/refresh
curl -X POST http://localhost:8888/banks/hermes/mental-models/ops-playbook/refresh
注意: setx 設(shè)置的環(huán)境變量需要重新打開終端才能生效。
七、Mental Model 配置最佳實踐
7.1 推薦配置參數(shù)
基于踩坑經(jīng)驗,以下配置組合最穩(wěn)定:
{
"source_query": "技術(shù)棧與工具配置",
"max_tokens": 2048,
"mode": "delta",
"tags": ["config", "tech-stack"]
}關(guān)鍵發(fā)現(xiàn):
- 所有成功刷新的 Mental Model 都使用了 delta 模式 + tags 篩選
- delta 模式有空內(nèi)容時自動回退到 full 的 fallback 機制
- max_tokens 2048 比 4096 更穩(wěn)定
7.2 四個 Mental Model 配置示例
| 模型名稱 | source_query | max_tokens | mode | tags |
|---|---|---|---|---|
| user-profile | 用戶畫像 | 2048 | delta | [user] |
| hindsight-setup | Hindsight 配置 | 2048 | delta | [config] |
| tech-stack | 技術(shù)棧與工具配置 | 2048 | delta | [config, tech-stack] |
| ops-playbook | 操作經(jīng)驗與踩坑記錄 | 2048 | delta | [ops, troubleshooting] |
八、Cherry Studio MCP 配置
8.1 方案一:使用 stdio wrapper(推薦,已驗證)
適用場景:Cherry Studio 通過 Python 腳本直接連接本地 Hindsight API,無需 npm 包。
創(chuàng)建 wrapper 腳本:
文件:C:\Users\gongc\AppData\Local\Programs\Python\Python311\Scripts\hindsight-mcp-stdio.py
#!/usr/bin/env python3
"""
Hindsight MCP stdio wrapper for Cherry Studio
Connects to local Hindsight API via HTTP and exposes MCP tools via stdio
"""
import sys
import json
import requests
API_BASE = "http://localhost:8888"
BANK_ID = "cherry"
def handle_request(req):
method = req.get("method")
params = req.get("params", {})
if method == "tools/list":
# Return available tools
return {
"tools": [
{
"name": "retain",
"description": "Store information to long-term memory",
"inputSchema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"content": {"type": "string"},
"context": {"type": "string"},
"tags": {"type": "array", "items": {"type": "string"}}
},
"required": ["content"]
}
}
},
"required": ["items"]
}
},
{
"name": "recall",
"description": "Search long-term memory",
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"limit": {"type": "integer", "default": 10}
},
"required": ["query"]
}
},
{
"name": "reflect",
"description": "Synthesize reasoning across memories",
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"budget": {"type": "string", "default": "mid"}
},
"required": ["query"]
}
},
{
"name": "getBankStats",
"description": "Get memory bank statistics",
"inputSchema": {
"type": "object",
"properties": {}
}
}
]
}
elif method == "tools/call":
tool_name = params.get("name")
arguments = params.get("arguments", {})
if tool_name == "retain":
items = arguments.get("items", [])
response = requests.post(
f"{API_BASE}/banks/{BANK_ID}/memories",
json={"items": items}
)
return {"content": [{"type": "text", "text": json.dumps(response.json())}]}
elif tool_name == "recall":
query = arguments.get("query")
limit = arguments.get("limit", 10)
response = requests.post(
f"{API_BASE}/banks/{BANK_ID}/recall",
json={"query": query, "limit": limit}
)
return {"content": [{"type": "text", "text": json.dumps(response.json())}]}
elif tool_name == "reflect":
query = arguments.get("query")
budget = arguments.get("budget", "mid")
response = requests.post(
f"{API_BASE}/banks/{BANK_ID}/reflect",
json={"query": query, "budget": budget}
)
return {"content": [{"type": "text", "text": json.dumps(response.json())}]}
elif tool_name == "getBankStats":
response = requests.get(f"{API_BASE}/banks/{BANK_ID}/stats")
return {"content": [{"type": "text", "text": json.dumps(response.json())}]}
return {"error": {"code": -32601, "message": "Method not found"}}
def main():
for line in sys.stdin:
try:
req = json.loads(line)
result = handle_request(req)
response = {
"jsonrpc": "2.0",
"id": req.get("id"),
"result": result
}
print(json.dumps(response), flush=True)
except Exception as e:
error_response = {
"jsonrpc": "2.0",
"id": req.get("id") if 'req' in locals() else None,
"error": {"code": -32603, "message": str(e)}
}
print(json.dumps(error_response), flush=True)
if __name__ == "__main__":
main()配置 Cherry Studio mcp.json:
文件路徑:C:\Users\gongc\AppData\Roaming\CherryStudio\mcp.json
{
"mcpServers": {
"hindsight-cherry": {
"type": "stdio",
"command": "python",
"args": [
"C:\\Users\\gongc\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\hindsight-mcp-stdio.py"
],
"env": {
"HINDSIGHT_API_BASE_URL": "http://localhost:8888",
"HINDSIGHT_MCP_BANK_ID": "cherry"
}
}
}
}關(guān)鍵參數(shù):
HINDSIGHT_API_BASE_URL:Hindsight API 地址HINDSIGHT_MCP_BANK_ID:記憶庫 ID(與 Hermes 的 bank_id 不同,這里是 cherry)command:Python 解釋器路徑args:wrapper 腳本完整路徑
8.2 方案二:使用 npm hindsight-mcp 包(備選)
如果 prefer npm 方式:
npm install -g hindsight-mcp
配置:
{
"mcpServers": {
"hindsight": {
"command": "npx",
"args": ["-y", "hindsight-mcp"],
"env": {
"HINDSIGHT_API_BASE_URL": "http://localhost:8888",
"HINDSIGHT_MCP_BANK_ID": "cherry"
}
}
}
}注意:npm 包的 hindsight-mcp 只有 11 個工具,而本地 Hindsight API 有 32 個工具。stdio wrapper 方案可直接訪問全部 32 個工具,且無需安裝 npm 包。
兩種方案工具數(shù)量對比:
| 方案 | 工具數(shù)量 | 來源 | 備注 |
|---|---|---|---|
| npm hindsight-mcp | 11 個 | npm 包 | 官方封裝,但工具不全 |
| stdio wrapper | 32 個 | 本地 Hindsight API | 推薦,功能完整 |
stdio wrapper 優(yōu)勢:
- ? 訪問全部 32 個工具(npm 包只有 11 個)
- ? 無需安裝 npm 包,直接用 Python 腳本
- ? 與 Hindsight API 版本完全同步
- ? 支持心智模型、指令、標簽等高級功能
![[Pasted image 20260629220757.png]]
8.3 驗證 MCP 工具
重啟 Cherry Studio 后,應(yīng)看到以下工具:
retain— 存儲記憶syncRetain— 同步存儲recall— 搜索記憶reflect— 合成推理getBankStats— 獲取統(tǒng)計信息
測試 retain:
{
"items": [
{
"content": "測試 Cherry Studio 到 Hindsight 的記憶存儲",
"context": "MCP 配置測試",
"tags": ["test", "cherry-studio"]
}
]
}配置成功后應(yīng)看到 32 個工具:
| 分類 | 工具 | 說明 |
|---|---|---|
| 核心 | retain | 存儲記憶 |
| sync_retain | 同步存儲 | |
| recall | 搜索記憶 | |
| reflect | 合成推理 | |
| 記憶庫管理 | list_banks | 列出記憶庫 |
| create_bank | 創(chuàng)建記憶庫 | |
| get_bank | 獲取記憶庫信息 | |
| get_bank_stats | 獲取統(tǒng)計信息 | |
| update_bank | 更新記憶庫 | |
| delete_bank | 刪除記憶庫 | |
| clear_memories | 清空記憶 | |
| 心智模型 | list_mental_models | 列出心智模型 |
| get_mental_model | 獲取心智模型 | |
| create_mental_model | 創(chuàng)建心智模型 | |
| update_mental_model | 更新心智模型 | |
| delete_mental_model | 刪除心智模型 | |
| refresh_mental_model | 刷新心智模型 | |
| clear_mental_model | 清空心智模型 | |
| 指令 | list_directives | 列出指令 |
| create_directive | 創(chuàng)建指令 | |
| delete_directive | 刪除指令 | |
| 記憶 | list_memories | 列出記憶 |
| get_memory | 獲取記憶 | |
| update_memory | 更新記憶 | |
| invalidate_memory | 作廢記憶 | |
| 文檔 | list_documents | 列出文檔 |
| get_document | 獲取文檔 | |
| delete_document | 刪除文檔 | |
| 操作 | list_operations | 列出操作 |
| get_operation | 獲取操作 | |
| cancel_operation | 取消操作 | |
| 標簽 | list_tags | 列出標簽 |
九、開機自啟動配置
9.1 創(chuàng)建 VBS 啟動腳本
' start-hindsight.vbs
' 后臺啟動 hindsight-api,無 CMD 窗口
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd /c start-hindsight.bat", 0, False
Set WshShell = Nothing
9.2 添加到啟動文件夾
- 按
Win + R,輸入shell:startup - 創(chuàng)建快捷方式,指向
start-hindsight.vbs - 重啟電腦驗證
十、驗證清單
10.1 服務(wù)狀態(tài)檢查
# 1. hindsight-api 健康檢查 curl http://localhost:8888/health # 2. Control Plane 訪問 # 瀏覽器打開 http://localhost:9998 # 3. MCP 工具列表 curl http://localhost:8888/mcp/default/tools
10.2 Mental Model 狀態(tài)檢查
# 查看所有 mental models curl http://localhost:8888/banks/hermes/mental-models # 檢查具體內(nèi)容長度 curl http://localhost:8888/banks/hermes/mental-models/tech-stack
正常狀態(tài):
- user-profile:~500 字符
- hindsight-setup:~800 字符
- tech-stack:~4000+ 字符
- ops-playbook:~5000+ 字符
十一、故障排查速查表
| 問題 | 排查方向 | 解決 |
|---|---|---|
| Mental Model content 為空 | 檢查 embedding 模型是否正常工作 | 換 Qwen/Qwen3-Embedding-0.6B,用 setx 永久設(shè)置 |
| 422 錯誤(MCP 工具) | 檢查 MCP 包名是否正確 | 用 hindsight-mcp 而非 @hindsight/mcp-server |
| 401/400 錯誤(SiliconFlow) | 檢查環(huán)境變量是否正確傳遞 | 用 setx 永久設(shè)置,或 bat 腳本啟動 |
| no attribute 'models' | attrs 模塊未安裝 | pip install attrs + setx PATH 永久生效 |
| 環(huán)境變量不生效 | 是否用 setx 而非 set | setx 寫入注冊表永久保存,set 僅當(dāng)前窗口生效 |
| 端口沖突 | 8888 或 9998 被占用 | 使用 --port 指定其他端口 |
核心教訓(xùn)匯總:set = 臨時(當(dāng)前窗口),setx = 永久(寫入注冊表)。所有環(huán)境變量配置統(tǒng)一使用 setx,設(shè)置后必須重新打開終端。之前多次踩坑都是因為用了 set 導(dǎo)致重啟后失效。
十二、Windows 環(huán)境變量終極指南(防坑必備)
setvssetx對比
| 命令 | 作用范圍 | 生效時間 | 適用場景 |
|---|---|---|---|
| set | 當(dāng)前 CMD 窗口 | 立即 | 臨時測試 |
| setx | 系統(tǒng)/用戶級別 | 需重新打開終端 | 生產(chǎn)環(huán)境、永久配置 |
踩坑實錄
錯誤做法(踩坑):
set HINDSIGHT_API_LLM_MODEL=deepseek-v4-flash REM 關(guān)閉 CMD 窗口后,變量全部丟失! REM 新開窗口啟動 hindsight-api → 401/400 錯誤
正確做法(永久生效):
setx HINDSIGHT_API_LLM_MODEL "deepseek-v4-flash" REM 關(guān)閉當(dāng)前 CMD,重新打開新窗口 REM 變量永久保存,重啟電腦仍然有效
常用 setx 命令模板
REM ===== 一次性設(shè)置所有 Hindsight 變量 ===== setx HINDSIGHT_API_LLM_PROVIDER "deepseek" setx DEEPSEEK_API_KEY "sk-xxx" setx HINDSIGHT_API_LLM_MODEL "deepseek-v4-flash" setx HINDSIGHT_API_EMBEDDINGS_PROVIDER "openai" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_API_KEY "sk-xxx" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_BASE_URL "https://api.siliconflow.cn/v1" setx HINDSIGHT_API_EMBEDDINGS_OPENAI_MODEL "Qwen/Qwen3-Embedding-0.6B" setx HINDSIGHT_API_RERANKER_PROVIDER "siliconflow" setx HINDSIGHT_API_RERANKER_SILICONFLOW_API_KEY "sk-xxx" setx HINDSIGHT_API_RERANKER_MODEL "BAAI/bge-reranker-v2-m3" REM 設(shè)置后必須重新打開 CMD 窗口
驗證環(huán)境變量
REM 查看單個變量 echo %HINDSIGHT_API_LLM_MODEL% REM 查看所有 Hindsight 變量 set HINDSIGHT REM 驗證是否生效 curl http://localhost:8888/health
更新日志
| 日期 | 內(nèi)容 |
|---|---|
| 2026-06-28 | 首次安裝 hindsight-api,配置 DeepSeek + SiliconFlow |
| 2026-06-28 | 發(fā)現(xiàn) Mental Model 刷新失敗,開始排查 |
| 2026-06-29 | 確認 embedding 模型兼容性問題,更換為 Qwen/Qwen3-Embedding-0.6B |
| 2026-06-29 | 所有 Mental Model 刷新成功,tech-stack 4775 字符,ops-playbook 5856 字符 |
| 2026-06-29 | 整理本文檔 |
經(jīng)驗教訓(xùn): 不要輕信錯誤代碼表面含義——Hindsight 中錯誤代碼 20015 報告"參數(shù)無效",但實際根因是 embedding 失敗導(dǎo)致的模型兼容性問題。遇到 embedding 失敗時先測試同一平臺其他模型;更換 embedding 模型時需確保維度兼容(1024 維),否則需要遷移數(shù)據(jù)庫。另外,所有環(huán)境變量配置必須使用 setx 而非 set,之前多次踩坑都是因為用了 set 導(dǎo)致重啟后變量丟失,出現(xiàn) 401/400 錯誤。
到此這篇關(guān)于Hermes Desktop安裝Hindsight 完整指南(含踩坑)的文章就介紹到這了,更多相關(guān)Hermes Desktop安裝Hindsight內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章

Hermes Desktop 多模型接入的實現(xiàn)步驟
本文詳解訊飛星火MaaSCoding API接入過程,包括單模型配置、多模型接入、Desktop 下拉菜單不顯示的排查,以及最終的解決方案,附帶實用配置模板和避坑指南,感興趣的可以了解2026-07-09
Hermes Desktop 是 Hermes Agent 的桌面客戶端——和終端里用的 hermes 是同一個 agent術(shù)語解釋Agent具備自主性、能調(diào)用工具以完成目標的 AI 程序,本文介紹Hermes Desktop2026-07-02



