资讯动态

Task Master 进度流测试指南:Streaming / Non-Streaming 模式与 Token 追踪验证

发布时间:2026/9/11 22:00:34 来源:尧图企业网站定制
Task Master 进度流测试指南Streaming / Non-Streaming 模式与 Token 追踪验证【免费下载链接】claude-task-masterAn AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-task-master本指南基于claude-task-master仓库中 tests/manual/progress/TESTING_GUIDE.md 展开系统讲解如何对 PRD 解析、复杂度分析与任务展开等 AI 生成流程进行流式Streaming/ 非流式Non-Streaming功能测试与 Token 追踪验证。你将掌握 MCP 与 CLI 两种上下文下的进度上报差异、emoji 优先级指示器与终端进度条的判定标准、常见故障的快速修复手段以及配套测试脚本的使用方式并可结合仓库源码理解进度上报链路的底层实现。三种测试模式从测试入口理解进度上报的分工Task Master 的进度测试围绕三种模式展开它们之间的本质区别在于是否注入reportProgress回调以及是否附加 MCP 日志通道模式是否带reportProgress是否带mcpLog表现形态MCP Streaming✅✅文本消息 emoji 优先级指示器CLI Streaming❌走默认 CLI 渲染❌终端多行进度条multibarNon-Streaming❌❌无进度上报一次性返回完整结果在 tests/manual/progress/test-parse-prd.js 中这三种模式由同一个runParsePRD入口驱动MCP 流式测试显式传入reportProgress与mcpLog而 CLI 流式与非流式测试均不传reportProgress差异仅在于前者借助scripts/modules/task-manager/parse-prd/parse-prd-streaming.js的流式处理路径后者走非流式路径。测试脚本通过MockProgressReporter收集所有进度事件通过MockMCPLogger按info / warn / error / debug / success五级记录日志最终对消息格式做正则校验。快速开始测试脚本与 CLI 命令速查测试脚本tests/manual/progress/ 目录所有脚本的第一个参数都接受模式关键字mcp-streaming、cli-streaming、non-streaming、both、all# 单命令测试接受: mcp-streaming, cli-streaming, non-streaming, both, all node test-parse-prd.js [mode] node test-analyze-complexity.js [mode] node test-expand.js [mode] [num_subtasks] node test-expand-all.js [mode] [num_subtasks] # 详细时序与准确度分析 node parse-prd-analysis.js [accuracy|complexity|all]其中test-parse-prd.js的默认模式为streaming、默认任务数为 8可用第二个参数覆盖node test-parse-prd.js both 10。parse-prd-analysis.js则是一个更细粒度的分析器accuracy模式对同一份 PRD 执行 8 任务生成并校验进度一致性、合理间隔与上报次数complexity模式使用同一份样例 PRD见 tests/fixtures/sample-prd.txt但通过请求 3 / 6 / 10 个任务来模拟 simple / medium / complex 三种生成复杂度all模式顺序执行全部测试。CLI 命令本地开发 / 全局安装node scripts/dev.js parse-prd test.txt # 本地开发流式 node scripts/dev.js analyze-complexity --research node scripts/dev.js expand --id1 --force node scripts/dev.js expand --all --force task-master [command] # 全局 CLI非流式注意区分node scripts/dev.js走本地源码开发调试流式输出而全局安装的task-master命令默认非流式。--force用于覆盖已存在的任务文件--research会切换至 research 模型进行联网佐证expand --all会为全部任务批量生成子任务。MCP 工具调用示例MCP 场景下以标准工具调用 JSON 触发与 CLI 命令等价{ tool: parse_prd, args: { input: prd.txt, numTasks: 8, force: true, projectRoot: /path/to/project } }该结构对应 MCP 服务端 mcp-server/src/tools/parse-prd.js 所暴露的parse_prd工具其中projectRoot必须指向真实项目根目录——这是判断使用projectRoot而非session的关键见下文 Quick Fixes。成功判定标准指示器、Token 格式与进度条优先级指示器Priority Indicators不同上下文使用不同的可视化体系其定义集中在 src/ui/indicators.js 的VISUAL_STYLES中MCP 上下文emoji 体系高、中、低生成消息中按优先级输出三字符指示串高优先级中优先级⚪低优先级⚪⚪CLI 上下文实心/空心圆点●filled与○empty按强度 3/2/1 组合并叠加颜色高#CC0000、中#FF8800、低黄色。状态栏单字符简化版⋮/:/.。test-parse-prd.js使用正则^[⚪]{3} Task \d\/\d - . \| ~Output: \d tokens/u校验每条任务消息格式并单独断言 MCP 输出中必须出现 emoji 指示器hasEmojiIndicators。复杂度指示器Complexity Indicators复杂度评分与指示器强度映射为三档●●●复杂度 7–10高●●○复杂度 4–6中●○○复杂度 1–3低对应 src/ui/indicators.js 中IndicatorConfig.getLevelFromScore的阈值逻辑score 7为高score 3为低其余为中。Token 输出格式进度条与汇总消息统一采用Tokens (I/O)格式Tokens (I/O): 2,150/1,847 ($0.0423)其中 I/O 分别表示输入/输出 token 数括号内为估算费用。估算规则定义在 scripts/modules/task-manager/parse-prd/parse-prd-helpers.js 的estimateTokens中约每 4 个字符折算 1 个 tokenMath.ceil(text.length / 4)。流式过程中该值为估算值isEstimate true显示~前缀流结束后若有真实 usage 数据promptTokens/completionTokens则替换为精确值。终端进度条Progress BarsCLI 流式模式使用基于 multibar 的双层进度条其字符定义在 src/progress/base-progress-tracker.jsbarCompleteChar为\u2588█barIncompleteChar为\u2591░。Single: Generating subtasks... |████████░░| 80% (4/5) Dual: Expanding 3 tasks | Task 2/3 |████████░░| 66% Generating 5 subtasks... |██████░░░░| 60%单进度条用于单任务展开显示(completed/total)。双进度条用于expand --all批量场景外层条跟踪任务维度Task 2/3内层条跟踪当前任务的子任务生成进度。进度条上方会渲染任务明细表表头TASK | PRI | TITLE该实现位于 src/progress/parse-prd-tracker.js标题超过 57 字符时截断至 54 字符加省略号任务行更新采用 100ms 防抖UpdateDebouncer避免高频刷新导致的渲染抖动。时间/token 条每秒刷新一次setInterval(..., 1000)格式为{clock} {elapsed} | Tokens (I/O): {in}/{out} | Est: {remaining}。分数进度Fractional Progress对带子任务的任务进度按分数推进而非整格跳跃(completedTasks currentSubtask/totalSubtasks) / totalTasks例如 3 个任务、每个任务带若干子任务时进度依次为33% → 46% → 60% → 66% → 80% → 93% → 100%。该公式保证外层进度条单调递增避免出现已完成任务变多、百分比反而下降的视觉错误。消息格式校验测试脚本的三项硬性断言test-parse-prd.js的printSummary会对进度历史做三类格式校验初始消息Starting PRD analysis必须包含Input:与tokens字样。对应源码 parse-prd-streaming.js 中的initializeProgress上报内容为Starting PRD analysis (Input: N tokens)...带--research时追加with research。任务消息每出现一个新任务上报 Task N/M - 标题 | ~Output: K tokensMCP 模式由parse-prd-helpers.js的reportTaskProgress生成流尚未产出完整标题时会先上报Generating task N/M...占位消息。完成消息✅ Task Generation Completed且包含Tokens (I/O):。流式处理的核心是监听partialObjectStream每收到一个 partial object 即估算当前输出 token 数发现tasks数组变长时对新出现的任务逐个上报进度parse-prd-streaming.js 的processStreamingTasks/processNewTasks。若流式调用失败代码会自动降级到generateObjectService非流式兜底usedFallback: true此时会先输出占位任务行再一次性填充。详细时序分析parse-prd-analysis.js 的能力parse-prd-analysis.js 内置DetailedProgressReporter记录每条进度事件的时间戳、距上一条事件的间隔、进度值与消息内容随后输出三类指标进度报告统计总上报次数、总耗时、平均/最小/最大事件间隔进度时间线逐条列出[Nms] (Mms) P% - message便于人工检查上报节奏实时性特征判定Real-time updates存在间隔 10s 的事件Consistent updates上报间隔数 3Progressive updates进度值全程单调不减。准确度模式还会断言所有间隔 0无重复事件、间隔 30000ms无长时间卡顿、上报次数 ≥ 8覆盖全部任务。常见问题快速修复Quick Fixes问题修复方法没有流式输出检查reportProgress回调是否已传入调用链进度显示NaN%过滤重复的subtask_progress事件避免同一条目被重复累计Token 缺失检查.env中是否配置了对应 provider 的 API Key进度条断裂/错位确保终端宽度 80 列projectRoot.split报错使用projectRoot而非session作为项目根路径来源# 调试 TASKMASTER_DEBUGtrue node test-expand.js npm run lintTASKMASTER_DEBUGtrue会开启MockProgressReporter/MockMCPLogger的调试输出逐条打印[timestamp] percentage% message是定位进度事件是否触发的最快手段。基准参考值以下为TESTING_GUIDE.md中记录的实测基准参考实际耗时依赖模型、网络与任务内容应以本机复测为准单任务展开约 10–20s5 个子任务批量展开约 30–45s3 个任务流式相对非流式约快 10–20%进度更新频率每 2–5s推荐测试工作流日常快速检查node test-parse-prd.js both npm testboth模式会顺序执行 MCP 流式与非流式测试并调用compareResults对比两者耗时差异与进度上报次数。发布前全量回归for test in parse-prd analyze-complexity expand expand-all; do node test-$test.js all done node parse-prd-analysis.js all npm test该流程覆盖全部命令 × 全部模式再叠加parse-prd-analysis.js all的时序分析最后运行仓库既有的 Jest/Vitest 测试套件根目录npm test确保进度上报、消息格式与任务落盘在回归中保持稳定。总结Task Master 的进度测试体系以模式可切换、格式可断言、时序可分析为设计原则reportProgress与mcpLog的注入与否决定了 MCP / CLI / Non-Streaming 三种表现形态emoji 与圆点两套指示器由 src/ui/indicators.js 统一派发进度条、Token 估算与分数进度分别由 base-progress-tracker.js、parse-prd-tracker.js 和 parse-prd-helpers.js 落地而 test-parse-prd.js 与 parse-prd-analysis.js 则把验收标准固化为可重复执行的断言。参考本指南的顺序——先跑单命令三种模式、再做详细时序分析、最后执行全量回归——即可在改动 AI 生成链路后快速确认进度体验与 Token 追踪未回归。【免费下载链接】claude-task-masterAn AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-task-master创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价