dsh-anic:把 AI 原生迭代流程沉成可觀測工作流的 DSH 插件

前言

用 DSH 跑迭代流程時,常見的問題是流程“寫在紙面上、跑在腦子裏”:門禁有沒有過、流程停在哪個 phase、模型實際看到了哪些工具和技能、人工介入隊列裏壓了什麼,都只能靠日誌裏翻。事後復盤時,調用與產物更是對不上——沒有穩定的 join key,白盒只剩黑盒。

dsh-anic(ANIC,AI-Native Iteration Cycle)就是衝着這個去的:把一整套迭代流程(M1..M11 里程碑 + R3 流程狀態機)做成可獨立安裝的 DSH 插件,提供白盒面板、門禁賬本、流程狀態機和內聯技能。插件定位是通用插件,不預設具體項目形態;它的第一個驗證場是本倉庫自身。

這是什麼

  • 名稱:dsh-anic,維護者 xuanyuanchumo。
  • 性質:AI-Native Iteration Cycle 的插件化獨立工程。倉庫自述這是把原本以技能形式存在的 ANIC(.dsh/skills/ai-native-iteration-cycle/)拆成宿主插件,可行性研究、需求分析、架構與里程碑見 docs/anic/。
  • 定位:通用工作流可視化與門禁插件(分類:工作流),零項目假設;本倉庫只是第一個驗證場,快照數據取自本倉庫真實的 .cycles/,但生成器只讀結構化字段,不解析自由文本(README 記爲 INV-21 合規)。
  • 許可與依賴:package.json 標註 MIT,engines.node: ">=22.19",engines.dsh: ">=0.2.0-rc.2 <0.3.0-0 || >=0.3.0-rc.1 <0.4.0-0",並聲明 peerDependencies: @deepseek-ai/dsh。目錄頁標註星標 0,屬於早期個人項目形態。

核心能力

1、白盒面板。 插件註冊會話頁頂層 ANIC 標籤,面板包含六塊:工作流圖、實時調用流、自主級儀表帶、技能健康、門禁賬本、HITL(人的介入)隊列。工作流圖不是靜態示意圖,節點健康度會把 testReport 的通過/失敗/錯誤投影進圖,邊類型用圖例區分。

2、流程狀態機與門禁。 插件承載 M1..M11 里程碑與 R3 流程狀態機,配置了門禁(gate)與流程歸屬矩陣,路由面提供 GET /anic/api/flows/matrix(流程歸屬矩陣)、GET /anic/api/flows/lifecycle(生命週期指標)、GET /anic/api/flows/view(有界視圖讀數)等出口。

3、策劃工具面。 提供 24 個 anic_* LLM 工具,覆蓋評估、門禁、自舉、跨項目自舉(anic_bootstrap_other)、流程狀態機操作、技能網關、完整性修復、自主級升級、熱重載(anic_reload_self),以及 2 個漸進式披露加載器 anic_tool_detail / anic_tools_search。

4、HTTP 路由面。 註冊 77 個路由,按 data / cycle / review / evolution / governance / self 六域分區,並帶 flows / native / truth-audit / dual / skill 等域擴展。幾個值得留意的出口:

POST /anic/api/reload                              # cycle-80 熱重載
GET  /anic/api/config  |  POST /anic/api/config    # cycle-82 配置與路徑
POST /anic/api/config/paths                        # cycle-83 路徑覆蓋
POST /anic/api/config/rollback                     # 備份回滾
GET  /anic/api/closure-audit                       # cycle-72 閉環體檢
POST /anic/self/bootstrap-other                    # cycle-89 跨項目自舉
POST /anic/api/tech-debt/triage                    # 技術債分診
GET  /anic/api/disclosure                          # cycle-93/109 披露讀數
GET  /anic/skill/health                            # 技能庫健康(含 library 段)
POST /anic/skill/install                           # 顯式安裝技能

5、流程可達性與開關解析態(cycle-91)。 工作流圖補上可達性計算:依據 next: 順序邊做 Tarjan SCC 斷環,判斷宏觀主線是否真的能推下去;開關不再只是配置項,而是解析出工作區/部署層的真實生效值,通過 GET /anic/api/flows/resolved 暴露給客戶端。同一輪裏 flow-tracker 改爲 append-only 歷史(統計樣本不再被滾動淘汰截斷),流程 reset 接上真實觸發器,IDLE 從此可達。

6、信任態可取證(cycle-109)。 把兩個容易“看起來沒問題”的維度變成可查證的:
- 披露宿主側裁決:對 ctx.tools.schemas(agent) 採一次,得到 verified / partial / unverified 三態,partial 再拆 leaked(越權暴露)與 missing(遮蔽過頭/自鎖),讀數在 GET /anic/api/disclosure 的 hostVerifiedAgents 等字段;
- 技能可見性三態:註冊不等於模型可見,回讀 ctx.skills.snapshot() 得到 active / absent / unknown,unknown 不會謊報 absent,並貫通 frontmatter 的 disable-model-invocation / user-invocable 與 skills/change 計數。

7、自帶自進化技能庫。 assets/skills/ 是插件的操作知識庫,含若干葉技能(git 分支 / GitHub PR / Gitee 鏡像 / npm 發佈 / CI-CD / Token-SSH / DSH 原生 API / superagent 模式)與元技能 skill-library-evolution;註冊表 assets/skills/skills.index.json 是唯一事實源,插件按只讀對賬方式比對註冊表與磁盤,六種 issue.kind 分流,出口在 GET /anic/skill/health 的 library 段和 anic_status 的 skillLibrary 字段。

安裝與啓用

安裝命令取自 README 原文,DSH 需爲 0.2.0-rc.2+ 或 0.3.0-rc.1+,網頁端與桌面端均可:

# 方式一:從 GitHub 裝(推薦,最新)
dsh plugin --profile <你的 profile> add github:xuanyuanchumo/dsh-anic
# 方式二:從 npm 裝(版本可能滯後於 GitHub Release,見 CHANGELOG)
dsh plugin --profile <你的 profile> add dsh-anic
# 方式三:從 Release 的穩定 tarball 裝(無 npm 賬號也能裝)
dsh plugin --profile <你的 profile> add https://github.com/xuanyuanchumo/dsh-anic/releases/latest/download/dsh-anic.tgz

安裝後重啓對應宿主(bundle 在啓動時裝載),會話頁即出現 ANIC 頂層標籤。宿主不滿足 engines.dsh 範圍時 pnpm 會先拒絕,不會走到運行期才報錯。

首次使用時插件自動把內聯技能(assets/skill/,含 SHA-256 安裝清單)安裝到工作區 .dsh/skills/ai-native-iteration-cycle/。如果需要顯式控制,anic_install 工具與 POST /anic/skill/install 路由提供等價的安裝 / 狀態查詢 / 損壞修復入口。

典型用法

1、裝好插件、重載宿主後,切到會話頁 ANIC 標籤,默認只展開最近一次已完成調用(10 個分區收爲 8 閉 2 開),另有「最近完成全貌卡」;摺疊狀態跨 tick 不彈回。

2、讓流程跑一輪迭代:面板按工作流圖展示本次調用的節點與邊,節點詳情裏能看到測試報告行;門禁賬本記錄門禁結論,需要人處理的進 HITL 隊列。若想知道宏觀主線是否真的能走通,打開可達性讀數與 GET /anic/api/flows/resolved,覈對開關在真實生效層的取值。

3、排查“模型其實沒看到某工具/技能”這類信任問題時,看 GET /anic/api/disclosure 的三態讀數和 GET /anic/skill/health 的 library 段,而不是憑 frontmatter 推斷。

不用 DSH 宿主時,插件也提供技能-only 分發,一條命令把技能裝進項目(Claude Code / Codex / 任意 MCP 客戶端均可用):

npx dsh-anic init <project-dir> --name "<項目名>" [--framework claude|codex] [--dry-run]

這條命令只做兩件事:把 assets/skill/ 的 69 個文件寫入 <project-dir>/.dsh/skills/ai-native-iteration-cycle/(與插件內 anic_install 同構落點,含冪等與版本錨點檢測),以及腳手架 .cycles/ 工作流骨架。之後讓模型讀 SKILL.md,或把 scripts/mcp-server.mjs(15 個工具)註冊爲 MCP server。零依賴,--dry-run 只打印不寫盤,適合先體檢再落盤。

適用場景與注意

適合的場景:已經在用 DSH 跑多步迭代流程,想把流程流向、門禁結論、模型可見面、HITL 隊列擺到明面上,並且希望這些讀數來自運行時而非事後日誌;或者想把 ANIC 的技能包拿到非 DSH 的 MCP 客戶端裏用。

需要注意:

  • 插件以當前 dsh 進程權限運行,路由、技能寫盤、自舉、跨項目操作都落在這個權限面內。安裝前先讀一遍源碼,確認 77 個路由和 anic_* 工具的權限範圍符合預期。
  • 許可爲 MIT,作者 xuanyuanchumo,星標 0 說明驗證主要來自維護者自身倉庫(.cycles/ 快照即來自該倉庫),外部項目上的兼容性未做聲明。
  • README 自身區分了已驗證與未收斂的部分:例如白盒四元組裏「流程流向」與「運行產物」仍缺少穩定的 join key(調用與 cycle/phase/門禁之間),自舉是否收斂也沒有宣稱。選型時把這點當作已知邊界。
  • 版本口徑以 package.json 爲準(當前抓取爲 0.61.0),README 的形態敘述標註到 cycle-71 / v0.40.0 時點,兩處粒度不同,引用時注意區分。

小結

dsh-anic 的價值不在於又多了一個流程腳本,而是把迭代流程的狀態變成了運行時可查、面板裏可見、路由裏可取的讀數:門禁賬本對得攏,工作流圖斷得了環,開關解析態看得見,披露與技能可見性分得開。如果團隊已經有 DSH 宿主,按上面任一命令裝上、重啓,從 ANIC 標籤開始走一輪即可判斷是否合用。

目錄頁與源碼:https://www.skillhub.cn/plugins/xuanyuanchumo/dsh-anic ,https://github.com/xuanyuanchumo/dsh-anic 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜