跳至主要内容

最佳實踐

什麼值得記住

判斷標準——滿足任一條即值得記:

  • 未來會複用:下次還會用到這個資訊
  • 影響決策:能幫未來做選擇
  • 減少重複溝通:不用每次重新解釋
  • 降低風險:記住已知坑/約束可避坑

典型值得記:決策及理由、根因、穩定約束、使用者穩定偏好、驗證結論、已知風險、下一步待辦。

Agent 整合下的簡化判斷:這條資訊在下一次會話中還有用嗎? 是 → 存;只在當前任務有用 → 不存。

什麼不應該記住

絕對不記:

  • secret / token / 密碼 / 憑證(用 secret vault)
  • 完整日誌、完整命令輸出
  • 臨時除錯片段(console.log、臨時變數)
  • 未經確認的猜測

不該記:

  • 一次性指令(「這次先這樣」)
  • 流水賬(「我剛才裝了 X」)
  • 可從程式碼直接推斷的資訊(無需記憶)

如何寫高質量記憶

四要素:簡潔、可驗證、帶上下文、帶原因,不堆噪聲。

改寫前 / 改寫後

❌ 改寫前(差):

text
我剛剛在登入模組加了個檢查,把 token 的過期時間比對了一下,之前好像有問題,現在應該好了,順便用了 moment 庫

問題:沒原因、不可驗證、像流水賬、堆了無關細節(moment)。

✅ 改寫後(好):

text
登入偶發 500 的根因是 token 過期校驗用本地時區比對 expiry。修復方式是統一用 UTC 比對並移除 moment 依賴,已驗證 200 次併發登入無 500。

寫法約定

  • 獨立自足的陳述句:脫離當時的對話也能看懂;不加「決定:」「記憶:」之類字首(HMG 自動推斷記憶的型別與確定性)
  • 一條記憶一句話:每次存 1-3 條,每條 1-2 句,別寫小作文
  • 用對話的語言存:中文對話存中文,英文對話存英文
  • 標註來源:使用者親口說的記為 user(更權威),agent 自己總結的記為 agent;事後糾正時能追溯這條記憶當初是誰說的
  • 不需要先查重:HMG 內部自動精確去重;語義相近的舊記憶如果已在眼前,用 correct 更新而不是新增

如何寫高質量交接

handoff 五要素:做了什麼 / 為什麼 / 驗證 / 風險 / 下一步。它是給下一次會話看的交接文件,會話啟動簡報會優先召回它。

交接模板

text
做了什麼: <一句話改動>
為什麼: <動機/根因>
驗證: <跑什麼/結果>
風險: <隱患/邊界>
下一步: <待辦>

好壞對比

❌ 差:改完了,應該沒問題

✅ 好:修復登入 500: token 過期校驗改 UTC。原因: 舊邏輯用本地時區誤判。驗證: 200 次併發無 500。風險: 舊客戶端快取 expiry 需評估。下一步: 查重新整理 token 流程。

如何減少召回噪聲

做法說明
寫具體 query登入 500 根因 優於 登入
用名詞短語PostgreSQL 連線池配置 優於 我們之前決定用什麼資料庫來著;保留關鍵實體(人名/專案名/技術名/檔名)
用對作用域專案資訊別放 tenant;Agent 整合中 scope 自動推斷,無需操心
及時糾正過期資訊別讓舊資訊和新資訊並存
不寫低質量記憶源頭減噪最有效
--profile compact給 Agent 用精簡結果
反饋噪聲短語hmg noise-feedback "某噪聲詞" 幫 HMG 學會過濾
bash
# 遇到反覆出現的噪聲結果, 反饋給 HMG
hmg noise-feedback "npm install 成功" # 讓這類短語被檢索時降權

危險操作注意

日常使用沒什麼可擔心的,只有三件事需要留意:

  • 憑證不進記憶:API key、密碼、連線串用 hmg secret store 存保險庫。誤寫進記憶了,立即 hmg govern <atom-id> --action tombstone --destroy-payload 清除。
  • tombstone / seal 不可逆:執行前確認 atom 沒搞錯(hmg history <atom-id> 可查)。只是暫時不想看到,用 quarantine(可恢復)。
  • store 不要提交到 Git:store 目錄含索引和二進位制資料,加進 .gitignore;備份直接複製目錄即可。

下一章:整合