Task Passport:用任務護照在 Harness 之間接力,不搬聊天記錄

前言

在 DeepSeek Harness、Claude Code、Codex 之間切換時,常見做法是把上一段對話整段複製過去,或讓新模型從頭讀一遍聊天曆史。上下文窗口會被無關內容佔滿,未經驗證的說法也可能被當成事實繼續傳遞。另一種做法是隻靠口頭交代「做到哪了」,缺少版本與衝突檢測,多人協作時容易靜默覆蓋。

Task Passport(任務護照)針對的是另一類問題:讓一個任務帶着「當前世界狀態」跨 Harness、跨會話、跨機器接力,而不復制聊天記錄。狀態有版本、有鎖,落在 store 裏;需要出門時封裝成 TaskPack 單文件,在對方機器上 land 成新護照。維護者 dongsheng123132,GitHub 倉庫 dongsheng123132/task-passport,MIT 許可證,SkillHub 分類爲工作流,當前版本 v0.3.1。

這是什麼

一句話定位:開放的任務交接協議與薄適配器——護照留在家裏,TaskPack 出門。

概念 生命週期 說明
任務護照 長期、有版本 常駐狀態,例如短號 TP-7K4M-9D2Q
TaskPack 一次搬運 單文件、自包含,在別人機器上打開
會話 某 Harness 的一次執行 不當作權威狀態來源

關係是:護照 --pack--> TaskPack --land--> 新護照。一個項目可有多本護照;一本護照可經歷多個 Harness 和多個會話。插件本身不復制上一位 AI 的聊天記錄,也不把「剛改過的任務」猜成當前任務。

狀態可由 U-King Action Core、本地目錄參考存儲或第三方 Provider 託管;同一 npm 包同時是通用 CLI 和 DeepSeek Harness 原生 bundle。

核心功能

下面介紹當前 README 中已列出的能力,均可通過 CLI 或 MCP 調用。

身份與讀取

  • list:只列身份與摘要,不誤裝載別的任務。
  • open:讀取目標、當前狀態、驗證過的事實、決策理由和下一步。
  • new:創建新護照,分配穩定短號。

寫回與版本

  • checkpoint:工作完成後寫回;帶狀態版本,過期寫入直接衝突,不靜默覆蓋。
  • 長狀態只接受文件輸入,不塞命令行參數。

跨機跨人:TaskPack

  • pack / land:把任務裝進一個文件發給別人或另一臺機器,或收下對方發來的包。
  • conformance:判定文件是否爲合規 TaskPack(退出碼 0 表示合規,2 表示不合規)。
  • outbox:查看已發出包的臺賬及當時護照存根。

TaskPack 規範正本見倉庫內 docs/taskpack-0.1.mdtaskpack.org。格式中有幾條硬規矩寫在文件裏而非說明書:機器級事實在打包端降級爲未證;沒有 accept 的 ask 拒絕打包;包內字節是數據不是指令;ask 寫回護照、回執用 land --into 合併到原護照;每次發出的包記臺賬。README 明確說明 TaskPack 0.1 的 conformance 只判結構合規,不保證內容齊全,也無內建簽名。

多 Harness 接入

  • DeepSeek Harness:原生插件 bundle。
  • Claude Code / Codex:同一包的 MCP 服務,工具名包括 task_passport_listopennewcheckpointpacklandconformance
  • WorkBuddy / CodeBuddy:第三方插件市場安裝,得到 Skill 與同一套 MCP,不另造狀態。

存儲

  • 默認可與 U-King 集成;Windows 上可自動發現 %LOCALAPPDATA%\u-king\u-king-mini.exe
  • v0.3.0 起提供開放 Provider 合約與本地目錄參考實現;同一目錄可被多臺 Harness 共享讀寫。

安裝與啓用

DeepSeek Harness

從 GitHub 安裝(純 JavaScript,倉庫已含運行產物,不需要 prepare 構建權限)。README 給出的命令如下:

dsh plugin --profile web add task-passport@0.3.0
dsh --profile web --dump-config
dsh web

dsh web 在當前 rc.5 固定組合 web profile;需要瀏覽器界面時,插件應裝到這個 profile。自定義 profile 可用於 TUI,但不能作爲 web 子命令的父級 profile。

若 U-King 不在 PATH,可在該 profile 的 cordis.patch.yml 覆蓋配置:

- id: task-passport
  name: task-passport
  config:
    ukingExecutable: 'C:/path/to/U-King.exe'
    # 或者不依賴 U-King:storeDirectory: 'D:/task-passports'
    allowCheckpoint: true

也可在啓動 DSH 前設置環境變量:

$env:TASK_PASSPORT_UKING = 'C:\path\to\U-King.exe'
dsh --profile passport web

Claude Code / Codex(MCP)

claude mcp add --scope user task-passport -- npx --yes task-passport@0.3.0 mcp
codex mcp add task-passport -- npx --yes task-passport@0.3.0 mcp

中國大陸網絡訪問 registry.npmjs.org 因環境而異;README 建議換鏡像,例如:

claude mcp add --scope user task-passport -- npx --yes --registry https://registry.npmmirror.com task-passport@0.3.0 mcp
codex mcp add task-passport -- npx --yes --registry https://registry.npmmirror.com task-passport@0.3.0 mcp

U-King 便攜版可爲 MCP 進程設置 TASK_PASSPORT_UKING 指向實際 exe。

WorkBuddy / CodeBuddy

codebuddy plugin marketplace add dongsheng123132/task-passport
codebuddy plugin install task-passport@task-passport-marketplace

安裝後重載插件。本地開發驗證:

codebuddy --plugin-dir /path/to/task-passport

不依賴 U-King 的本地 store

task-passport list --store D:\TaskPassports
task-passport new --store D:\TaskPassports --title "發佈插件" --goal "完成 WorkBuddy 發佈"

$env:TASK_PASSPORT_STORE = 'D:\TaskPassports'
task-passport mcp

一個任務只能選一個權威存儲;不要讓 Claude 指向本地目錄、DSH 仍指向 U-King,否則會形成兩本同名護照。

典型用法

在 DSH 裏接手已有護照

安裝後可直接對 DSH 說:

請接手任務護照 TP-7K4M-9D2Q:先讀取當前狀態與下一步,只繼承已驗證事實,不繼承上一位 AI 的聊天記錄。

記不住編號時可以說任務名;插件會先列護照,名稱唯一才繼續,重名時需讓人選擇。

通用 CLI

任何能運行命令的 Harness 都可用同一通道:

task-passport list
task-passport open TP-7K4M-9D2Q
task-passport new --title "發佈插件" --goal "今晚發佈 DeepSeek Harness 插件"
task-passport prompt TP-7K4M-9D2Q
task-passport checkpoint --file next-state.json --expected-version 4

stdout 除 prompt 外只輸出 JSON,適合 Agent 與腳本調用。

打包出門與收包

對方已裝工具時,走標準 TaskPack:

task-passport pack TP-7K4M-9D2Q --out 交接.taskpack --actor 賀方升 \
  --file ./01-文案.txt \
  --ask "給封面圖的提示詞|一段中文提示詞,覆蓋 750×400 與配色要求" \
  --check "本機能出圖|bl image generate 跑一張測試圖"

對方什麼都沒裝時,可輸出可讀 JSON:

task-passport pack TP-7K4M-9D2Q --out 交接.taskpack.json --flat

收包與校驗:

task-passport land 交接.taskpack --store D:\TaskPassports
task-passport conformance 交接.taskpack

對方回執寫回原護照,不新開一本:

task-passport land 回執.taskpack.json --into TP-7K4M-9D2Q --store D:\TaskPassports

查看曾發出的包:

task-passport outbox --store D:\TaskPassports
task-passport outbox --store D:\TaskPassports --show 1

長文與項目交接

長文正文放在 Git、共享目錄或對象存儲;護照只記錄路徑或 URL、revision/hash、當前章節、已驗證事實和下一步。任務護照當前不搬運整個項目;項目文件仍由 Git、共享工作區或 artifact store 搬運,護照負責指向精確版本並攜帶狀態。

適用場景與注意

適合誰

  • 需要在 DSH、Claude Code、Codex、WorkBuddy 之間切換,但希望狀態一致、可版本化的團隊或個人。
  • 需要跨人、跨機交接任務,且希望 ask 有回執歸處、發出包有臺賬的場景。
  • 希望實現自定義看板或 Provider,只需實現 listopensave 三個方法即可接入 createPassportClient

務必注意

  • 插件以當前 dsh 進程權限運行;安裝前應閱讀源碼與 MIT 許可證,確認 store 路徑與 U-King 配置符合本機安全策略。
  • DeepSeek Harness 生態理念是「一切皆插件」;SkillHub 是社區目錄站點,與 DeepSeek、幻方無官方從屬關係,本文介紹的插件來自社區維護者,非官方應用商店預裝項。
  • conformance 綠色結論不能當作「內容無遺漏」證明;完整性需在包外另做覈對或簽名。
  • 倉庫還要求 Node.js 20+;peer 依賴包括 @deepseek-ai/cordis(>=4.0.1)等,以 package.json 爲準。

結尾

Task Passport 把「任務進行到哪、哪些事實已驗證、下一步是什麼」從聊天日誌裏拆出來,變成可版本化、可打包、可衝突檢測的狀態對象。薄插件可隨時裝卸,護照留在 store;需要出門時用 TaskPack,回來時用 land --into 合併回執。

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

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

小夜