关于 NeuroDock Task Fractionator
NeuroDock Task Fractionator 是一款本地优先的 MCP 服务,可将目标拆分为原子任务,并选出一个下一步行动,适合规划项目的人使用。拆分依靠本地启发式方法,任务持久化由调用方负责。
主要功能
- 01将目标拆为 5–90 分钟任务
- 02添加验收标准并按依赖排序
- 03只选出一个下一步任务
- 04返回理由和置信度
- 05不持久化拆分出的任务
适用场景
- 01将模糊计划转成可执行任务
- 02选择项目中下一个未受阻任务
MCP 相关
提供 `decompose` 和 `next_one` 两种 MCP 工具。`next_one` 从可配置来源读取待办任务;随附的图谱来源实现仍是存根。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| goal | string | 是 | |
| time_budget | any | 否 | 可选的总时间预算,采用 ISO-8601 duration 格式,例如 'PT2H'(2 小时)或 'PT90M'(90 分钟);不能使用 'a couple of hours' 之类的文字描述。 |
| max_chunk_size | any | 否 | 可选的神经类型调节参数(ADR 0011)。限制返回的任务数量,使其低于通常目标 3-12 项及硬上限 20 项。若目标自然需要更多步骤,服务器会保留序号最低的前缀(有效子 DAG,不含悬空依赖),并在理由中注明截断,而不是悄悄丢弃步骤。省略时使用默认行为。 |
| motor_fatigue_aware | any | 否 | 可选的神经类型调节参数(ADR 0011)。为 true 时,服务器会回显此偏好并在理由中说明,以便客户端据此采取行动。服务器无法查看实际的运动活动,也不会推断疲劳。 |
| time_buffer_multiplier | any | 否 | 可选的神经类型调节参数(ADR 0011)。大于 1.0 时,服务器会为每项任务添加 'padded_minutes',其值等于 round(estimated_minutes * multiplier)。'estimated_minutes' 保持原始值(RAW),因此不会被重复填充。值为 1.0(或省略)时不进行填充。 |
详细介绍
neurodock-mcp-task-fractionator
优先本地运行的目标拆解与单一下一步行动选择,通过 MCP 服务提供。
- 版本: v0.0.3(开发者预览版)
- 状态: 阶段 1 基础服务。
- 许可证: AGPL-3.0-or-later。
- 设计: 参见 ADR 0003 — task-fractionator 工具设计。
- 架构(契约):
schemas/decompose.schema.json和schemas/next_one.schema.json。 - 驱动此服务的用户故事:(“患有 ADHD 的主管”——通过语音记录描述模糊的计划,获得 5–12 个原子任务,以及唯一的下一步行动)。
工具
decompose(goal, time_budget?)
使用本地启发式方法,将目标拆解为耗时 5–90 分钟的原子任务。每个任务
至少包含一项验收标准、按依赖关系排序的序号,以及少量标签。无状态:
服务返回任务列表,不会持久化。持久化由调用方通过
mcp-cognitive-graph 负责。
goal— 5..500 个字符的自然语言目标。绝不记录日志。time_budget— 可选的 ISO 8601 时长(PT4H、P3D、PT2H30M)。 无法解析的输入会返回TIME_BUDGET_UNPARSEABLE。根据 ADR 0003 §3,P3D视为 3 个 4 小时的工作时段,而不是 72 小时。
错误:GOAL_REQUIRED、GOAL_TOO_LONG、TIME_BUDGET_UNPARSEABLE、
BUDGET_INFEASIBLE、DEPENDENCY_CYCLE、ACCEPTANCE_CRITERIA_REQUIRED、
DECOMPOSITION_UNAVAILABLE。
next_one(project)
恰好返回一个任务——用户接下来应该做的唯一事项——
并附上一段简短的推理说明和 [0, 1] 范围内的置信度分数。
project— 1..120 个字符的项目名称(区分大小写,不进行模糊匹配)。- 待处理任务从可插拔的
PendingTaskSource中读取。 - 选择规则:选取
sequence最小且其dependencies均已在待处理任务集中完成的任务。
错误:PROJECT_REQUIRED、NO_TASKS_AVAILABLE、ALL_TASKS_BLOCKED、
COGNITIVE_GRAPH_UNAVAILABLE。
快速开始
# From the repo root
uv sync
uv run pytest packages/mcp-task-fractionator/tests/ -v
# Run the server over stdio (the MCP transport):
uv run neurodock-mcp-task-fractionator
仅使用内存的 next_one(v0.0.3 注意事项)
next_one 从 PendingTaskSource 读取待处理任务。v0.0.3 提供两种
实现:
-
InMemoryPendingTaskSource— 默认实现,供测试使用。将任务保存在 进程内存中。使用此数据源显式构建服务,并在调用next_one前为其填充任务:from neurodock_mcp_task_fractionator import ( InMemoryPendingTaskSource, build_server, ) source = InMemoryPendingTaskSource() source.add("founding-scope-rfc", [task_1, task_2, task_3]) server = build_server(source=source) -
CognitiveGraphPendingTaskSource— 阶段 2 存根。始终抛出COGNITIVE_GRAPH_UNAVAILABLE。待mcp-cognitive-graphPython 客户端发布后,将接入实际实现。
通过环境变量选择:NEURODOCK_TASK_SOURCE=memory|graph(默认值
为 memory)。未知值会回退到 memory,而不是导致程序崩溃。
隐私
根据 ADR 0003 §7,目标文本和项目名称均视为敏感 用户数据:
- 不进行远程调用。服务内部不调用大模型。
- 任何级别的日志都绝不记录目标文本。
- 验证错误只引用字段名称,不包含用户内容。
- 推理说明仅由识别出的词汇词元生成; 绝不原样嵌入用户的原始目标文本。
测试(test_decompose.py::test_rationale_does_not_contain_goal_text)
体现了这一隐私约束。
开发门槛
# Lint + format check
uv run ruff check packages/mcp-task-fractionator/
uv run ruff format --check packages/mcp-task-fractionator/
# Strict type check
uv run mypy --strict packages/mcp-task-fractionator/src/
# Tests
uv run pytest packages/mcp-task-fractionator/tests/ -v
合并 PR 前,以上四项必须全部通过。
参考
- 架构设计依据:ADR 0003 — task-fractionator 工具设计。
- 此服务必须遵循的五项原则宣言:
MANIFESTO.md。 - 同级服务:
mcp-chronometric(时间、空闲、休息)和mcp-cognitive-graph(持久化状态——待处理任务将存放于此)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。