前言¶
在 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.md 與 taskpack.org。格式中有幾條硬規矩寫在文件裏而非說明書:機器級事實在打包端降級爲未證;沒有 accept 的 ask 拒絕打包;包內字節是數據不是指令;ask 寫回護照、回執用 land --into 合併到原護照;每次發出的包記臺賬。README 明確說明 TaskPack 0.1 的 conformance 只判結構合規,不保證內容齊全,也無內建簽名。
多 Harness 接入
- DeepSeek Harness:原生插件 bundle。
- Claude Code / Codex:同一包的 MCP 服務,工具名包括
task_passport_list、open、new、checkpoint、pack、land、conformance。 - 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,只需實現
list、open、save三個方法即可接入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 合併回執。
- SkillHub 目錄頁:task-passport
- GitHub 倉庫:dongsheng123132/task-passport