前言¶
在 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