前言¶
在多臺機器上管理十幾個數據庫或接口,重複配置是常態。DSH 負責連接,但缺乏對“能不能取、用哪把鑰匙、取了什麼”的管理。dsh-stash 插件將外部資源登記、權限控制和取數臺賬集中管理,解決跨機器同步與訪問控制問題。
核心定位¶
dsh-stash 是 DSH 鏈接外部資源庫的鑰匙串。它爲模型提供 11 個工具,用於查詢資源清單、執行取數、檢查連通性以及管理憑據。維護者爲 danieldu168,許可證爲 MIT。
它主要回答三個問題:
- 能不能取? 通過
access聲明,硬約束直接拒絕,不靜默失敗。 - 用哪把鑰匙? 鑰匙臺賬與宿主憑據服務,值不進模型。
- 這次取了什麼? 取數臺賬僅記錄指紋。
安裝與啓用¶
使用 pnpm 安裝插件:
pnpm dsh plugin --profile web add "github:danieldu168/dsh-stash#v0.11.2"
安裝後重啓 Profile 並刷新瀏覽器。卸載命令:
pnpm dsh plugin --profile web remove dsh-stash
升級插件必須帶上新的 tag 重裝。DSH 的管理器不支持 update,且規格串不變會觸發還原。
資源登記¶
註冊表位於 ${DSH_HOME}/stash/sources.mjs,默認導出一個數組。修改後無需重啓,調用時重讀。
聲明式配置示例:
export default [
{
id: 'myapi',
name: '我的接口',
kind: 'remote',
handler: 'http',
access: 'public-api',
request: {
url: 'https://api.example.com/search',
query: { q: '{query}' },
pick: 'data.items',
limit: 50,
required: ['query'],
},
},
]
關鍵點:
* {參數名} 傳入參數,{?參數名} 爲可選參數,缺參時鍵會被丟掉。
* 使用鑰匙時填寫 credentials: ['MY_API_KEY'] 引用名,不寫值。
* 支持本機文件與內置處理器。
本機文件登記:
{ id: 'mydocs', kind: 'files', paths: ['D:/papers'] }
內置處理器:
{ handler: 'trade_stats' }
訪問控制與憑據¶
access 字段定義權限,分爲 public-api(公開)、official-api(官方)、export-import(拒絕)、unsupported(拒絕)。未聲明則放行但提示。
鑰匙值只存引用,不存儲在 stash 中,也不返回給模型。值通過「設置 → stash」面板或 /stash import 填入,最終落在 $DSH_HOME/.env 或面板中。
臺賬與工具¶
提供了 11 個模型工具:catalog, fetch, doctor, lesson, source, credential 等。
取數臺賬記錄 ledgerId 和 contentHash,不記錄響應體。文件記錄超過 2000 條時,舊記錄會被裁剪。
遷移¶
使用命令行進行數據遷移:
# 導出(不帶值,或帶值/語料)
/stash export --out "D:\stash-export"
# 導入(值覆蓋,條目並集)
/stash import "D:\stash-export"
# 清空(需校驗碼)
/stash wipe --confirm <校驗碼>
限制與不做什麼¶
- 不做通用網頁抓取,長期盯的頁面走
corpus。 - 不做需登錄數據庫的 SSO 自動化。
- 不做值的存儲與回讀。
- 經驗不自動寫入,需人工決定。
生態背景¶
DSH 理念是「一切皆插件」。本插件通過聲明式配置與集中式管理,爲智能體開發提供穩定的外部數據訪問層。