Install
openclaw skills install weixin-task-workbench在单个微信 / OpenClaw 对话窗口中提供“单入口、多任务”的任务工作台体验:用户始终只需和一个助手聊天,就能并行推进多个事项,并把不同任务稳定路由到各自独立会话,减少串话、上下文污染与多线程协作混乱。适用于微信中的长期协作、任务切换、任务总结、任务归档与任务生命周期管理;当用户发送“任务列表 / 新建任务...
openclaw skills install weixin-task-workbench在一个微信对话窗口中运行单入口、多任务工作台。
它面向这样一种典型场景:用户只想和一个助手持续对话,但实际工作里同时存在多个并行事项。这个 skill 会把“单窗口交互体验”和“多会话执行隔离”结合起来,让用户前台感觉始终在同一个聊天里,后台则把不同任务拆分到各自独立会话中执行。
对用户只暴露一组简单、稳定的任务动作:新建、列表、切换、继续、总结、关闭、归档。
核心价值:
任务状态以 scripts/task_registry.py 为唯一事实来源。
当用户出现以下任一表达时,应优先激活本技能,而不是进入泛化问答澄清:
任务列表新建任务:...切到 #<id> / 切换到 #<id>继续(在任务上下文中)总结 #<id>关闭 #<id>归档 #<id>任务状态同义英文命令(task list、task new、task use 等)同样适用。
如果缺少以下任一会话工具,本技能必须阻断执行:
sessions_spawnsessions_sendsessions_history执行规则:
tools.allow、agentToAgent、sessions.visibility)。禁止静默降级为 registry-only 模式。
要获得真实任务隔离,通常需要:
sessions_spawn、sessions_send、sessions_history,通常还需要 sessions_listtools.agentToAgent.enabled=truetools.sessions.visibility=all参考配置:
{
"tools": {
"agentToAgent": { "enabled": true },
"sessions": { "visibility": "all" }
},
"agents": {
"list": [
{
"id": "main",
"tools": {
"allow": [
"sessions_spawn",
"sessions_send",
"sessions_history",
"sessions_list"
]
}
}
]
}
}
除非用户明确要求查看实现细节,否则不要暴露 sessionKey。
使用“联系人隔离”路径:
tasks/weixin/<account>/<peer>.json
规则:
<account> 使用当前微信账号 id<peer> 使用当前微信用户 id(xxx@im.wechat),并做文件名安全化account+peer 严禁共享同一 registry 文件首次使用先初始化:
python3 scripts/task_registry.py --registry tasks/weixin/<account>/<peer>.json init
新建任务:<title>任务列表切到 #<id>继续总结 #<id>关闭 #<id>归档 #<id>任务状态可兼容英文等价命令(如 task new、task list、task use)。
新建任务 或空标题,必须返回补全提示,不得创建空任务sessions_spawn 创建任务专属会话add --session-key ... --make-current 持久化任务执行:
python3 scripts/task_registry.py --registry <path> list
返回任务列表,并标记当前任务。
如果任务数为 0,不要只返回原始 JSON 或泛化提示;必须按“任务列表”样式返回空状态,并给出 1~2 个可直接复制的 新建任务:... 示例。
执行:
python3 scripts/task_registry.py --registry <path> switch <id>
回执已切换目标。
如果 id 不存在,必须返回“任务 #<id> 不存在,请先发送任务列表查看可用任务”,不要直接透出脚本原始错误。
show)sessions_send 把消息路由到当前任务 sessionKeyin_progress若无当前任务,提示先新建或先查看列表。
若当前任务状态为 completed 或 archived,不要直接继续执行;先提示用户切换到其他任务,或明确要求恢复该任务后再继续。
summarize <id>)sessions_history 补充上下文update --summary如果 id 不存在,返回“任务 #<id> 不存在,请先发送任务列表查看可用任务”。
执行:
python3 scripts/task_registry.py --registry <path> close <id> --summary "..."
python3 scripts/task_registry.py --registry <path> archive <id> --summary "..."
如果 id 不存在,返回“任务 #<id> 不存在,请先发送任务列表查看可用任务”。
如果任务已经是 completed / archived,应返回幂等提示,不要重复执行状态变更。
/status 的任务视图)当用户发送 任务状态 时:
show(当前任务)+ list(任务清单)sessionKey(仅用于排障;无当前任务时省略)说明:/status 是 OpenClaw 全局会话状态,不等价于任务工作台的任务路由状态。
修改以下任一文件后,优先阅读并对照 references/test-matrix.md 做回归检查:
SKILL.mdreferences/protocol.mdreferences/implementation.mdscripts/task_registry.py至少覆盖:空状态、新建任务、切换、继续、总结、关闭、归档、能力门禁、英文等价命令。
对控制面命令(如 任务列表、任务状态、新建任务、切换、关闭、归档),优先套用 references/protocol.md 中的固定响应模板,避免每次自由发挥。
对于路由到具体任务的非全局回复,必须加任务头:
[任务:#2 周报]
该任务头需要在每次任务回复中可见,便于用户核对路由是否正确。