
人工智能AI AgentAgent 框架DeepSeek【免費下載鏈接】deepseek-harnessDeepSeek Harness: Everything is a Plugin.項目地址https://gitcode.com/gh_mirrors/de/deepseek-harness點擊查看免費下載本篇文章基于 DeepSeek Harnessdeepseek-ai/dsh-agent-instructions插件已實現(xiàn)的功能筆記講解 workspace 指令發(fā)現(xiàn)機制如何從「拒絕跟隨末段軟鏈接lstatno-follow」演變?yōu)椤笩o條件跟隨軟鏈接resolvestat」的完整決策過程。讀者將掌握$DSH_HOME/AGENTS.md、項目AGENTS.md與CLAUDE.md三類候選文件的真實解析行為、present / absent / unavailable三態(tài)探針語義以及該改動引入的信任邊界與殘余風險的工程權衡思路。背景no-follow 不變量為何成為障礙DeepSeek Harness 的 workspace 上下文機制詳見 workspace-context 功能筆記負責把倉庫中的AGENTS.md、CLAUDE.md等指令文件注入到會話的有效上下文中使項目約定、構(gòu)建命令與評審規(guī)則無需用戶反復粘貼即可到達模型。該能力由packages/context/agent-instructions實現(xiàn)包名為deepseek-ai/dsh-agent-instructions。在早期實現(xiàn)中指令候選的探測邏輯使用ctx.fs.lstat檢查路徑末段組件并拒絕任何末段為符號鏈接的候選。這意味著倉庫所有者不能通過軟鏈接把指令加載指向 workspace 之外的內(nèi)容。這個 no-follow 不變量帶來了兩個實際問題合法的軟鏈接場景被靜默忽略用戶將$DSH_HOME/AGENTS.md用戶級全局指令或某個項目的AGENTS.md軟鏈接到一個位于其他位置的規(guī)范指令文件以便在多個工具、多個 home 之間共享同一份「house-style」文件。這類被刻意支持的配置在舊行為下會被靜默忽略。鏡像文件淪為特殊跳過案例倉庫中普遍存在的CLAUDE.md → AGENTS.md鏡像后者軟鏈前者被迫作為一種「特殊跳過」情形處理而不是作為普通的內(nèi)容重復參與去重。倉庫所有者因此要求在所有 scope 上無條件跟隨軟鏈接指令文件同時接受下方記錄的殘余信任邊界風險。決策探測從lstat改為resolvestat核心變更可以概括為一句指令發(fā)現(xiàn)不再用lstat檢查末段組件。取而代之的是一套統(tǒng)一的「先解析、再分類」流程每一類候選——用戶全局的$DSH_HOME/AGENTS.md、每個基礎候選base candidate、每個本地疊加候選local overlay candidate——都被解析resolve隨后對解析后的目標執(zhí)行stat。該流程在**基線組裝baseline composition**時執(zhí)行也在每次tools/post-execute對賬reconciliation時執(zhí)行兩條路徑行為完全一致。解析結(jié)果按以下規(guī)則分類軟鏈接目標是普通文件加載該目標的內(nèi)容解析后的目標是非文件包括鏈接到目錄視為已確認的缺失confirmed absence像缺失文件一樣移除該 scoperesolve或stat拋出異常歸類為暫時不可用temporarily unavailable絕不移除已經(jīng)加載的 scope。源碼級實現(xiàn)兩個 stat 入口在 files.ts 中兩條探測路徑分別處理宿主文件系統(tǒng)與 provider 文件系統(tǒng)nodeStatFilefiles.ts#L98-L111對宿主路徑直接調(diào)用stat。源碼注釋明確說明stat而非lstat會跟隨末段符號鏈接因此指向普通文件的鏈接會被加載而損壞的鏈接broken link會以ENOENT浮出被歸類為absent。fsStatFilefiles.ts#L113-L135對 provider 路徑先調(diào)用fileSystem.resolve()跟隨末段軟鏈接到目標的穩(wěn)定身份再對目標調(diào)用fileSystem.stat()分類。目標類型不是file即為absent任何異常除信號中止外返回unavailable。兩個入口統(tǒng)一收斂到statFilefiles.ts#L137-L143按是否掛載了ctx.fsprovider 自動選擇實現(xiàn)。兩者都不再調(diào)用lstat。三態(tài)類型ScopeInstructionProbepresent | absent | unavailable見 files.ts#L74-L77把「確認缺失」與「provider 失敗」嚴格區(qū)分是「不可用絕不刪 scope」這一不變量的類型級保證。動態(tài)對賬路徑上的probeScopeInstructionfiles.ts#L460-L493使用同樣的resolve→stat→ 按info.type ! file判定absent的邏輯注釋同樣強調(diào)「只有 provider 異常才上報為 unavailable」。被跟隨的軟鏈接在后續(xù)環(huán)節(jié)中是普通文件一個被成功跟隨的軟鏈接對下游所有環(huán)節(jié)而言就是一個普通文件。最典型的收益體現(xiàn)在內(nèi)容去重上去重邏輯為按目錄的修剪后內(nèi)容去重trimmed-content dedup詳見 instruction-load-all-dedup 功能筆記。具體實現(xiàn)在dedupInstructionFilesByDirectoryfiles.ts#L368-L384同一目錄下修剪首尾空白后內(nèi)容字節(jié)相同的候選折疊到發(fā)現(xiàn)順序中最早的一個且保留文件渲染其原始字節(jié)。因此一個CLAUDE.md軟鏈接其兄弟文件AGENTS.md的場景現(xiàn)在解析后得到完全一致的內(nèi)容像任何字節(jié)相同的真實重復一樣被折疊而不再是特殊的跳過案例。這使內(nèi)容去重對所有重復來源——真實的字節(jié)相同副本與軟鏈接鏡像——走完全相同的路徑。Scope 鍵的配合變化由于同一目錄下每個候選名現(xiàn)在是獨立 scopescope 鍵編碼為directory\u0000candidateNameNUL 分隔符不可能出現(xiàn)在真實路徑中。candidateScopeKey/decodeScopeKey負責編解碼probeScopeInstruction解碼候選名后精確讀取該文件。因此目錄中AGENTS.md與CLAUDE.md是獨立 scope、各自獨立對賬移除其中一個只對該候選自身 scope 發(fā)出remove不觸及兄弟 scope。信任邊界與殘余風險倉庫軟鏈接 越界讀取跟隨倉庫所有的軟鏈接會跨越插件的信任邊界。需要清醒認識的風險模型是一個被 clone 的不可信倉庫可以攜帶AGENTS.md其軟鏈接目標可以是進程可讀的任意文件從而把工作區(qū)之外的內(nèi)容以「工作區(qū)指引」的形式呈現(xiàn)給模型。緩解機制是內(nèi)容定位而非權威這類內(nèi)容只以低權威的 user-role 前綴進入并被system-reminder框架包裹模型面對的正是system-reminderInstructions from: path/system-reminder這種模式詳見 workspace-context 功能筆記它永遠不能覆蓋system、developer 或直接 user 指令僅被當作數(shù)據(jù)處理而不是權威來源。真正的邊界在文件系統(tǒng)層而非本插件當部署需要加載不可信倉庫時用dsh-fs-observation-policy門控或 OS 沙箱約束ctx.fs相關設計見 cross-family fs sandbox 功能筆記。這是一個明確由倉庫所有者接受的權衡而非疏忽。信任邊界從本插件移出進入文件系統(tǒng)策略與沙箱層因為「讀權限邊界」本質(zhì)上屬于文件系統(tǒng)策略的職責而非路徑解析層的職責。備選方案為何被否決決策筆記記錄了三個被拒絕的替代方案理解它們有助于把握設計取向保留lstatno-follow 不變量被否決。它會阻斷「軟鏈到規(guī)范文件」這一受支持配置并迫使鏡像場景成為特殊跳過案例它所近似保護的讀權限邊界更適合由文件系統(tǒng)策略與沙箱層承載——同一風險可以被更精確地包含。只跟隨用戶全局$DSH_HOME候選項目文件繼續(xù) no-follow被否決。倉庫所有者要求所有 scope 行為統(tǒng)一分裂的規(guī)則比「一條一致策略 一條文檔化邊界」更難推理。用戶選擇打開的項目并不比用戶自己的 home 更可信。跟隨軟鏈接但拒絕解析到項目根之外的目標被否決。它把部分信任邊界放回了錯誤的層——用路徑幾何而非讀權限——既破壞了合法的$DSH_HOME指向外部場景又重復實現(xiàn)了文件系統(tǒng)策略門控已經(jīng)擁有的遏制能力。三個備選的共同教訓是信任邊界應該放在能精確表達「誰有讀取權限」的層文件系統(tǒng)策略/沙箱而不是放在路徑解析的幾何層。驗證測試如何鎖定新行為實現(xiàn)隨附的測試直接印證了決策語義可在 agent-instructions.spec.ts 中查看宿主路徑跟隨spec.ts#L454-L473在倉庫外創(chuàng)建shared.md軟鏈為根目錄AGENTS.md斷言discoverBaselineInstructionFiles的顯示路徑包含AGENTS.md且loadBaselineInstructions渲染文本包含shared instruction body。provider 路徑跟隨spec.ts#L475-L495同一場景經(jīng)由ctx.fs掛載后斷言組合出的基線前綴包含目標內(nèi)容。鏈接到目錄 確認缺失spec.ts#L3381-L3419先把pkg/AGENTS.md加載為已加載 scope隨后刪除原文件并把AGENTS.md改為指向目錄的軟鏈接再觸發(fā)一次read工具調(diào)用斷言對賬產(chǎn)生{ action: remove, scope: sk(pkg, AGENTS.md) }并渲染Instructions removed: ...。測試注釋特別強調(diào)非文件目標是確認缺失而非不可用所以已加載 scope 會被移除若分類為unavailable則不會產(chǎn)生任何變更。配置與實操要點配合該行為插件的關鍵配置項定義與校驗見 config.ts如下配置項默認值說明dshHome$DSH_HOME或~/.dsh存放固定用戶全局AGENTS.md的目錄不屬于候選列表也無本地疊加projectRootMarkers[.git]從會話 cwd 向上行走時的項目根標記.git文件與目錄均有效覆蓋 linked worktree 與 submodule無標記時以 cwd 為根maxBytes必填單次渲染的基線或?qū)~批次的 UTF-8 字節(jié)上限非正數(shù)或非有限值會禁用加載maxSourceBytes10485761 MiB單個指令文件的最大讀取字節(jié)數(shù)超限文件不可用instructionFileCandidates[AGENTS.md, CLAUDE.md]基礎候選列表按序加載同目錄所有存在的文件localInstructionFileCandidates[AGENTS.local.md, CLAUDE.local.md]本地疊加候選基礎文件之后加載共享同一按目錄去重規(guī)則傳空數(shù)組可禁用疊加候選必須是同目錄文件名空條目、./..以及含/或\的條目會被忽略。軟鏈接跟隨對以上所有候選統(tǒng)一生效包括用戶全局文件。部署側(cè)通過顯式的{ maxBytes } | false掛載決定是否啟用dsh web使用 65,536 字節(jié)預算Host Runtime 的 headless 消費者則禁用。影響與總結(jié)本次變更的最終影響軟鏈接指令文件現(xiàn)在像其目標一樣被加載與渲染使規(guī)范指令文件可以在不同工具與不同 home 之間共享CLAUDE.md → AGENTS.md鏡像通過內(nèi)容去重折疊不再是被跳過的特殊案例插件指令加載不再依賴ctx.fs.lstat解析后為非文件目標即為確認缺失只有 provider 異常才算暫時不可用信任邊界移出插件由文件系統(tǒng)策略與沙箱層負責——當部署加載不可信倉庫時必須用dsh-fs-observation-policy門控或 OS 沙箱約束ctx.fs。從工程視角看這是一次典型的「行為變更 → 風險重定位 → 分層處置」決策插件層追求一致、可推理的解析語義對所有 scope 無差別跟隨把「讀取權限」這一真正的信任問題下沉到文件系統(tǒng)策略與沙箱層并用三態(tài)探針 按目錄內(nèi)容去重 測試鎖定把變更控制在可驗證、可回滾的范圍內(nèi)。倉庫所有者明確接受了「跟隨倉庫軟鏈接可能引入 workspace 外部內(nèi)容」的殘余風險但該內(nèi)容只以低權威 user-role 數(shù)據(jù)身份進入上下文且系統(tǒng)提示詞框架與文件系統(tǒng)邊界共同兜底。贊分享人工智能AI AgentAgent 框架DeepSeek【免費下載鏈接】deepseek-harnessDeepSeek Harness: Everything is a Plugin.項目地址https://gitcode.com/gh_mirrors/de/deepseek-harness點擊查看免費下載相關推薦DeepSeek Harness 指令文件加載全面去重AGENTS.md 與 CLAUDE.md 共存的每目錄內(nèi)容級去重方案DeepSeek Harness 指令文件加載全面去重 AGENTS.md 與 CLAUDE.md 共存的每目錄內(nèi)容級去重方案 本篇技術指南講解 deeps人工智能AI AgentAgent 框架DeepSeekDeepSeek Harness 發(fā)起 Agent 作用域設計基于 AsyncLocalStorage 的進程內(nèi)信任鏈DeepSeek Harness 發(fā)起 Agent 作用域設計基于 AsyncLocalStorage 的進程內(nèi)信任鏈 導讀 本文剖析 DeepSeek Ha人工智能AI AgentAgent 框架DeepSeekDeepSeek Harness一步一個邊界——pre-step 前的 Inbox 原子認領與單點決策設計DeepSeek Harness一步一個邊界——pre step 前的 Inbox 原子認領與單點決策設計 在 DeepSeek Harness“Every人工智能AI AgentAgent 框架DeepSeek上一篇前端面試必看3大框架實現(xiàn)小程序/H5/APP一體化開發(fā)的終極指南下一篇Python初學者也能懂two-stream-action-recognition數(shù)據(jù)加載模塊源碼解讀創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考