前言¶
在 DeepSeek Harness(DSH)裏做多輪 agent 協作時,常見問題是:上一會話裏的關鍵決定、理由和進度,下一回合未必能穩定接上;工具輸出堆在上下文裏,也不等於經過確認的長期記憶。社區插件 noname-dsh-plugin(維護者 yuchenlogin,GitHub 倉庫 yuchenlogin/noname-dsh-plugin,分類爲工作流)把 NoName Agent Harness 的記憶基座接到 DSH:證據追加寫入、記憶分版本、品味單獨審覈、批准流程留本地賬本。下面介紹它是什麼、能做什麼,以及如何安裝與走通一條典型流程。
這是什麼¶
一句話定位:NoName Agent Harness 的 DSH 插件——context as an asset:append-only 證據、版本化記憶、品味作爲一等公民、經審覈的批准(見倉庫 package.json 描述與 README)。
實現上,TypeScript 插件連接本機 Python sidecar;Python 基座僅用標準庫與 SQLite,不需要另配模型 API key。插件是記憶與證據適配層:DSH 仍負責模型、工具執行、權限和調度;NoName 獨立 runtime 的執行審批門與沙箱不會自動接管 DSH。
當前插件版本 0.6.0,許可證 MIT(內核遵守原 NoName 倉庫許可)。
核心功能¶
記憶分層與「什麼該記」¶
README 用表格歸納了內容去向,要點如下:
| 內容 | 合適的去處 |
|---|---|
| 項目約束、關鍵決定及原因 | noname_remember 的 high 候選,確認後成爲項目記憶 |
| 階段成果、阻塞與下一步 | mid 候選,保留可繼續工作的最小信息 |
| 用戶明確表達的判斷與例子 | 自述品味;必須來自用戶明確要求 |
| 從模型表現中觀察到的喜好 | 品味候選,用戶明確採納後生效 |
| 普通工具輸出、暫時想法、每一輪聊天 | 需要時留作證據,不逐條變成長期規則 |
決定變更時複用同一邏輯鍵(例如 storage 從 SQLite 改爲 PostgreSQL);新候選確認後取代當前版本,舊決定仍留在來路里。品味是軟影響,不是事實或永久命令。
工具結果留證,不等於長期記憶。 自動留證(autoIngest)、提出候選、人工確認是三個階段。
面向 agent 的工具集¶
| 工具 | 用途 |
|---|---|
noname_record |
留下決定、發現或約束作爲證據;返回來源事件 ID(evt_…) |
noname_remember |
由證據提出項目決定或工作進度候選;不會自動批准 |
noname_package |
組裝項目記憶、偏好與相關證據,供新會話接續 |
noname_search |
查找證據與記憶 |
noname_state |
查看已批准狀態;可選 layer,不填則返回 high 與 mid |
noname_inbox |
查看候選及其來源 |
noname_taste_add / noname_taste_propose / noname_taste_review |
品味自述、提議與 adopt / edit / pause / resume / retire |
noname_card_queue |
需要複覈的品味卡 |
noname_ledger |
本地可審覈頁面與離線 HTML 快照 |
noname_verify |
賬本完整性及哈希覆蓋範圍 |
noname_extract |
默認預覽抽取;create_candidates: true 才創建待審候選 |
noname_remember 必填:layer(high / mid)、穩定主題 key、可讀 text、一個 source_event 事件 ID,以及 reason。可選 next_step。須先 noname_record 再引用真實 ID。
本地交互式賬本¶
noname_ledger 返回本機 live ledger URL 與離線 HTML 路徑。頁面分區包括:此刻、等你判斷、品味與偏好、來路與變化、活動檔案。項目決定與工作進度支持接受、拒絕、暫緩、修改後接受;簽署人和理由寫入同一賬本。
服務僅監聽 127.0.0.1,URL 帶訪問令牌,不要公開分享。一小時無活動後自動退出;遠程 DSH 需把返回 URL 的端口轉發到本機相同端口(README 示例:ssh -L 45678:127.0.0.1:45678 your-host)。當前 DSH host 插件不能註冊 client 的 sidebarRightTabs,賬本通過瀏覽器打開。
配置與數據位置¶
| 字段 | 默認 | 說明 |
|---|---|---|
pythonPath |
python3 |
本機 Python;建議絕對路徑 |
dbDir |
空 | 默認 <項目>/.noname;指定後固定目錄 |
autoIngest |
true |
將宿主工具結果寫入證據流;跳過 NoName 自身工具避免回聲 |
timeoutMs |
30000 |
Python sidecar 調用超時(毫秒) |
一個工作區一本賬,多會話共享;無法解析工作區時回落到 $DSH_HOME/noname。建議將 .noname/ 加入 .gitignore。不同 profile 若指向同一工作區,可能共用賬本;需隔離時顯式配置不同 dbDir。
安裝與啓用¶
環境要求:DeepSeek Harness、Node.js 18+、Python 3.10+(見 package.json 的 engines)。
從源碼安裝時 README 給出的步驟如下。注意必須執行 npm run build,使 dist/ 與當前 TypeScript 一致;DSH 安裝與 profile 細節見 DSH 官方指南。
git clone --recursive https://github.com/yuchenlogin/noname-dsh-plugin.git
cd noname-dsh-plugin
npm install
npm run build
dsh plugin --profile web add /absolute/path/to/noname-dsh-plugin
插件目錄頁:SkillHub — yuchenlogin/noname-dsh-plugin(社區目錄站點,與 DeepSeek / 幻方無官方從屬關係)。
安裝前請自行審閱倉庫源碼與 MIT 許可證。插件以當前 dsh 進程權限運行,能訪問其配置的工作區與本機 Python sidecar;不要在未信任的環境盲目啓用。
典型用法:從空賬本到下一回合接續¶
啓用插件後,在 DSH 項目工作區內可按 README「快速開始」走通一遍:
- 讓 agent 調用
noname_package查看當前項目。初次會創建空賬本,空記憶不會僞裝成已記住內容。 - 正常討論一個決定(例如「首版用 SQLite,因爲只在本地運行」),用
noname_record留下決定和理由,取得evt_…來源 ID。 - 用
noname_remember提出候選:穩定鍵storage、人能讀懂的決定、來源 ID 和保留理由。 - 調用
noname_ledger,打開 live ledger URL,查看來源並簽署。 - 在新會話讓 agent 再調
noname_package,確認已批准內容與來源出現在上下文包中。
README 也明確:記憶審覈在本地網頁由人簽署;插件沒有後臺 LLM 自動提煉,也不保證宿主每次會話開始都會自動調用 noname_package。
適用場景與邊界¶
適合誰: 需要在 DSH 工作流裏保留「決定 + 理由 + 來源」、並希望人工批准後再進入長期上下文的團隊或個人;重視品味與偏好但要求與用戶明示、審覈生命週期分開處理的場景。
邊界(README「信任與現有邊界」):
autoIngest捕獲工具結果,不是全量聊天歸檔;長輸出保留受限摘要,有價值內容仍應主動noname_record。- 完整性校驗:
noname_verify的hash_coverage會報告 v1 / v2 哈希覆蓋差異;數據在本機,不表示自動加密或脫敏。 - 開發側:
npm run build、npm test、npm run check:kernel用於構建與內核快照一致性;運行時依賴vendor/noname_harness_pkg/快照。
結尾¶
noname-dsh-plugin 把 NoName 的「可追溯項目記憶」接到 DSH:證據追加、候選提議、本地賬本簽署、下一回合用 noname_package 接續。目錄頁見 SkillHub 插件頁,源碼與完整工具說明見 GitHub 倉庫 README。