Taskr - Persistent Task Planning & Execution for AI Agents
Taskr — 持久化任务规划与执行
Taskr为OpenClaw智能体提供持久化、结构化的任务管理,独立于聊天会话而存在。任务计划可经受上下文重置,可由任何机器上的任何智能体恢复执行,并且用户始终可以通过Taskr网页应用、VS Code扩展或移动端查看。
Taskr为OpenClaw提供的六大功能:
- 分层规划— 在执行任何操作前,将任意工作分解为嵌套式任务层级结构
- 持久化上下文— 任务、笔记和状态信息在会话重置与上下文压缩后仍能完整保留
- 跨智能体连续性— 任何智能体可从任何位置接管任何任务列表;
get_task自动转移任务所有权 - 基于笔记的审计追踪— 笔记直接关联任务;因果逻辑保持集中,不会散落在聊天记录中
- 追溯同步—
task_sync记录Taskr启用前已完成的工作,填补历史记录空白 - 共享状态— 状态(
开放、进行中、已完成、已跳过)为代理和用户提供了明确、实时的进度概览
何时使用任务管理器
在以下情况使用任务管理器:
- 工作包含3个或更多步骤,或耗时超过几分钟
- 工作跨越多个会话,或可能需要转交给其他代理
- 用户希望远程监控或审批进度
- 从之前的会话中恢复工作
以下情况无需使用任务管理器:
- 单一快速操作(少于3个步骤,短于2分钟)
- 纯粹的信息检索或简单问题
- 用户明确拒绝
主动默认设置:对于任何实质性工作,在开始前主动提供任务管理器选项
“我会先在Taskr中规划这个任务——在我开始之前,你可以先审阅任务分解。这样可以吗?”
一旦Taskr激活,就保持在Taskr中操作。不要在工作流程中半途放弃任务。仪表板中未完成的任务会造成混淆,并破坏审计跟踪。
核心循环
Plan → Create → Create CONTEXT note → Review with user → Execute → Document → Repeat
- 规划— 全面思考范围;在接触任何工具之前,将任务分解为阶段和子任务
- 创建—
create_task使用taskListTitle通过一次调用构建整个层级结构 - 创建CONTEXT笔记— 始终为新任务列表(TL_)附加一个CONTEXT笔记,包含背景、目标以及任何用户偏好
- 审阅— 向用户展示任务计划;在执行任何操作之前获得批准
- 执行—
get_task→ 执行工作 →update_taskstatus=done → 重复 - 文档— 在任务执行过程中随时附加笔记;在阶段完成时撰写进度笔记
单任务专注原则:每次只专注处理一个任务。获取任务将指定你为任务负责人(进行中)。在进入下一项前必须完成或跳过当前任务。
规划:任务层级设计
使用创建任务配合任务列表标题创建新的任务列表。单次调用可提交1–100个任务——务必预先创建完整层级结构,以便用户在开始执行前审阅。
层级定位标识:
"1"、"2"、"3"——顶层阶段(任务列表的直接子项)"1.1"、"1.2"— 第一阶段下的子任务"1.1.1"— 深层嵌套(最多10级)- 在同一调用中,父任务必须在其子任务之前声明
任务类型: 设置、分析、实施、验证、测试
保持任务聚焦。如果一个任务感觉太大,无法在一个代理轮次中完成,请将其分解为子任务——可以在创建时,或者在执行过程中通过create_task+parentId来分解。子任务可以防止上下文过载,并以适当的粒度展示进展。
创建任务列表后,请务必立即在任务列表上创建一个“上下文”备注:
create_note(type="CONTEXT", title="[Task List] — Context", body="...", taskId="TL_...")
执行中:正在处理任务
获取任务
调用获取任务以获取您的下一个任务。它会自动将状态设置为进行中并分配所有权。请使用获取任务— 不要手动将任务设置为进行中。
- 省略
任务列表ID以继续当前任务列表 - 传递
任务列表ID=TL_...以切换到不同的任务列表 - 传递
包含上下文=真以获取额外的任务上下文和备注 - 传递
绕过任务ID仅用于紧急任务切换
更新任务 — 两种模式
状态模式(单个任务):
update_task(taskId="TS_...", status="done", ruleContext="RU-PROC-001")
批处理模式(仅更新标题/描述 — 状态不允许批量操作):
update_task(tasks=[{taskId, title?, description?}, ...], ruleContext="RU-PROC-001")
任务状态 — 共享检查点
状态是代理和用户都能实时看到的检查点。请有纪律地使用它们。
| 状态 | 含义 |
|---|---|
进行中 | 准备开始处理 |
工作中 | 由代理主动负责处理 |
已完成 | 已完成并已验证 |
已跳过 | 有意未完成 —必须创建一个“发现”说明来解释原因 |
完成最后一个子任务会自动标记父任务为已完成。您无需手动标记父任务。
处理意外工作
当您发现超出当前任务范围的工作时:
- 阻塞当前任务→
创建任务(父任务ID=当前任务),完成子任务,继续 - 不相关→ 先完成当前任务,然后为其他工作创建新任务
- 可以等待→ 用 FINDING 注释记录,继续当前任务
正在审阅:get_task_hierarchy
使用get_task_hierarchy来浏览和审阅任务——而不是get_task。永远不要仅仅为了查看结构而调用get_task。
| 范围 | 它返回的内容 |
|---|---|
项目 | 所有任务列表。首先使用depth=0仅获取名称——避免令牌膨胀 |
任务列表 | 一个任务列表的完整嵌套层次结构。传递taskId=TL_... |
子树 | 一项任务及其所有子任务。通过taskId=TS_... |
响应路径,用于task_list范围:data.task_lists[0].tasks[0].children[]
注释 — 附加到任务的审计追踪
注释附加到任务上。在任务2.3期间发现的成果就存在于任务2.3中——而不是漂浮在项目层面。任何后续恢复工作的代理都能在需要的地方获得完整的上下文。这可以防止信息变得碎片化。
注释类型:
| 类型 | 使用时机 |
|---|---|
CONTEXT 上下文 | 背景、目标、用户偏好、决策 — 请在任务列表创建后立即在TL_上创建 |
FINDING 发现 | 工作期间遇到的发现、问题、阻碍、见解 |
PROGRESS 进展 | 阶段完成情况 —仅适用于阶段级别的任务(任务"1"、"2"、"3" — TL的直接子任务)。不适用于叶子任务 |
FILE_LIST 文件列表 | 用户系统上创建、修改或删除的文件 |
其他 | 任何不符合上述分类的内容 |
笔记规范:
- 将笔记关联到最具体的相关任务(任务集 > 任务列表 > 项目范围)
- 更新现有笔记而非创建重复项——使用
update_note - 创建前先搜索:
search_notes以便在恢复工作时获取先前上下文 跳过状态变更必须附带说明原因的FINDING类型笔记
两步式笔记检索:
list_notes(taskId="TL_...", includeDescendants=true)——获取ID和标题(data.notes.notes[])get_note(noteId="NT_...")——需要时获取完整内容
task_sync —— 追溯性记录管理
使用task_sync当Taskr激活之前已有工作发生,或需要追溯性填补任务历史中的空白时。三个步骤:
步骤1 — 概览(无参数):所有任务列表的轻量级摘要
task_sync(ruleContext="")
→ data.sync_check.task_lists[]: {id, name, status, task_count, done_count, open_count, wip_count}
步骤2 — 深入查看(传入任务列表ID):包含标题、描述、状态、层级的完整任务平铺列表
task_sync(task_list_id="TL_...", ruleContext="")
→ data.sync_drill_down.tasks[]: {id, task_number, title, description, status, level, parent_id}
步骤3 — 创建已完成任务(传入项目数组[]):创建预先标记为已完成
task_sync(items=[
{
"action": "create_done",
"title": "...",
"parentId": "TS_or_TL_...",
"description": "...",
"type": "implementation"
}
], ruleContext="")
的任务每个项目需包含操作类型:"create_done"和标题。父级ID(TS_或TL_开头)为必需字段,除非通过提供任务列表标题来创建新任务列表——未提供默认使用该新列表。每次调用最多包含50个项目。
同步后,将CONTEXT或FINDING备注附加到创建的任务中,以记录工作背后的原因。
跨会话与跨智能体连续性
Taskr状态存储于云端——而非您的上下文窗口中。要恢复工作:
搜索备注——查找先前的决策、上下文和发现获取任务层级(范围="项目",深度=0)——识别活动任务列表获取任务(任务列表ID="TL_...")——在停止处接管所有权- 执行前审阅CONTEXT和PROGRESS备注
任何智能体——不同会话、不同机器、不同模型——都能在停止处精确恢复工作。任务列表是计划。备注是记忆。状态是当前状况。
设置
当凭证缺失时:
-
向用户获取凭证:
- 项目ID:访问项目页面https://taskr.one(格式:
PR_00000000...) - API密钥:用户头像 → API密钥菜单(点击眼睛图标或复制按钮)
- 项目ID:访问项目页面https://taskr.one(格式:
-
通过以下方式配置
gateway.config.patch:{ "skills": { "entries": { "taskr": { "env": { "MCP_API_URL": "https://taskr.one/api/mcp", "MCP_PROJECT_ID": "<project-id>", "MCP_USER_API_KEY": "<api-key>" } } } } } -
验证:调用
tools/list并确认create_task存在。
用户可以为不同的工作场景创建多个项目。
对于 mcporter/其他 MCP 客户端:
mcporter config add taskr "$MCP_API_URL" \
--header "x-project-id=$MCP_PROJECT_ID" \
--header "x-user-api-key=$MCP_USER_API_KEY"
快速参考
| 需要 | 工具 |
|---|---|
| 创建计划 | create_task(taskListTitle + tasks[]) |
| 为新任务列表添加上下文 | create_note(type=CONTEXT, taskId=TL_) |
| 获取下一个任务 | 获取任务 |
| 标记为已完成 | 更新任务(taskId, status="done") |
| 标记为已跳过 | 更新任务(status="skipped") +创建笔记(发现) |
| 浏览任务结构 | 获取任务层级 |
| 执行过程中添加子任务 | 创建任务(parentId=TS_or_TL_) |
| 记录发现 | 创建笔记(type=FINDING, taskId=TS_) |
| 阶段里程碑笔记 | 创建笔记(type=PROGRESS, taskId=TS_ phase task) |
| 追溯历史 | 任务同步(三步) |
| 从先前会话恢复 | 搜索笔记
获取任务层次结构获取任务查找先前上下文搜索笔记 |
| 或 | 列出笔记ruleContext 值:传递模式中的规则ID(例如: |
RU-CTX-001、RU-PROC-001、RU-NOTE-001)。当模式说明“将此参数留空”时,传递""。""when the schema says "Leave this parameter blank."


微信扫一扫,打赏作者吧~