最佳實踐
什麼值得記住
判斷標準——滿足任一條即值得記:
- 未來會複用:下次還會用到這個資訊
- 影響決策:能幫未來做選擇
- 減少重複溝通:不用每次重新解釋
- 降低風險:記住已知坑/約束可避坑
典型值得記:決策及理由、根因、穩定約束、使用者穩定偏好、驗證結論、已知風險、下一步待辦。
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;備份直接複製目錄即可。
下一章:整合