
ruflo-cost-tracker 实战用 cost-conversation 技能按会话透视每次 LLM 交互的真实开销【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/rufloruflo 生态的cost-conversation技能为成本追踪插件plugins/ruflo-cost-tracker提供了第三个分析视角在cost-report按 agent 聚合、cost-optimize按模型聚合的基础上按 conversation会话维度汇总每一次 Claude Code 会话的开销回答哪次会话在 Opus 上跑得太久单个项目的会话消耗模式是否可持续这类复盘问题。读完本文你将掌握该技能的完整命令用法、环境变量语义、输出格式解读以及它如何与cost-track、cost-budget-check等技能组成一条采集 → 透视 → 告警的完整成本链路。一、技能定位agent/模型视角之外的第三种透镜成本追踪插件的既有报表是二维聚合cost-report按agent和model汇总 token 用量与 USD 成本默认周期为 todaycost-optimize分析使用模式并输出优化建议cost-conversation则按conversationsession聚合——这是完全不同的切片专门用来找出哪次会话最烧钱。其核心价值体现在两个典型场景来自技能文档 cost-conversation/SKILL.md事后悔复盘多轮会话结束后查看每次会话的总花费定位哪次会话在 Opus 上运行过长事前成本评估在规划一个长会话之前先了解典型的单会话成本量级判断项目会话模式是否可持续按项目聚合通过CONV_NAMESPACEcost-tracking-project为不同项目建立独立的成本命名空间实现项目级 rollup。二、数据从哪来cost-track 生产者与 cost-tracking 命名空间cost-conversation本身不采集数据它是消费者读的是cost-track技能生产者写入cost-tracking命名空间的session-*记录。理解数据结构是正确解读报表的前提。2.1 采集端工作流cost-track通过 scripts/track.mjs 实现自动发现当前工作目录对应的 Claude Code 会话 jsonl路径为~/.claude/projects/encoded-cwd/session.jsonl可用TRACK_SESSION显式指定逐行解析 assistant 消息的usage块按模型累计 input/output/cache-write/cache-read token依据 scripts/_prices.mjs 的统一定价表计算 USD将结构化记录持久化到cost-tracking命名空间键为session-sessionId。注意track.mjs支持CLI_CORE1环境变量路由到轻量claude-flow/cli-corealpha路径冷缓存墙钟时间从约 25s 降至约 2s见 track.mjs 源码注释中的 ADR-100 / #1748 说明。2.2 会话记录形状cost-track技能文档cost-track/SKILL.md给出了完整的记录结构这也是cost-conversation报表的字段来源{ sessionId: 1dba3b8c-..., cwd: /Users/cohen/Projects/ruflo, startedAt: 2026-05-04T..., endedAt: 2026-05-05T..., messageCount: 234, byModel: { claude-opus-4-7: { tier: opus, input_tokens: 12345, output_tokens: 6789, cache_creation_input_tokens: 800000, cache_read_input_tokens: 2000000, messages: 50, cost_usd: 1.23 } }, byTier: { haiku: 0.0, sonnet: 0.45, opus: 1.23, unknown: 0 }, total_cost_usd: 1.68, capturedAt: 2026-05-05T... }其中byModel供报表计算top model按成本降序取第一个byTier提供 haiku/sonnet/opus/unknown 四级成本 rolluptotal_cost_usd即单会话总成本。2.3 成本归属公式与定价表每条消息的成本由 scripts/_prices.mjs 的costForUsage()计算公式与 REFERENCE.md 的 Cost attribution formula 一致task_cost (input_tokens / 1_000_000 * input_price) (output_tokens / 1_000_000 * output_price) (cache_write_tokens / 1_000_000 * cache_write_price) (cache_read_tokens / 1_000_000 * cache_read_price)定价表USD 每 1M tokens是track.mjs、counterfactual.mjs、session.mjs等多个脚本共享的单一事实来源模型层级InputOutputCache writeCache readHaiku$0.25$1.25$0.30$0.03Sonnet$3.00$15.00$3.75$0.30Opus$15.00$75.00$18.75$1.50缓存读比全新输入便宜约 90%——这正是 prompt caching 的成本价值所在。三、运行 cost-conversation命令与输出解读3.1 基本命令技能文档规定在任意目录下运行node plugins/ruflo-cost-tracker/scripts/conversation.mjs脚本默认读取cost-tracking命名空间下所有session-*键。若命名空间中尚无会话输出提示No sessions in cost-tracking. Run cost track first.即需要先用cost-track完成采集。3.2 环境变量环境变量默认值作用CONV_FORMATjsonmarkdown以 JSON 替代 Markdown 表格输出CONV_LIMIT2050见源码仅显示最近 N 条会话CONV_NAMESPACEcost-trackingcost-tracking覆盖目标命名空间实现按项目聚合注意细节技能文档示例写的是CONV_LIMIT20而 conversation.mjs 源码中默认值为 50parseInt(process.env.CONV_LIMIT || 50, 10)。实际使用时按需显式指定即可行为一致records.slice(-limit)取的是时间上最近的 N 条。3.3 Markdown 输出结构脚本依次输出三段内容① 总览表——会话总数、全部会话总成本、各 tier 的成本 rollup仅输出 0 的层级# cost-per-conversation — 12 conversations in cost-tracking | Metric | Value | |---|---:| | Conversations tracked | 12 | | **Total cost (all)** | **$18.4321** | | Tier haiku | $0.4512 | | Tier sonnet | $9.8723 | | Tier opus | $8.1086 |② 逐会话明细表——每行一个会话包含五个字段启动时间ISO 格式截去毫秒、会话 ID 前缀8 字符、消息数、成本最高模型、总成本| Started | Session | Messages | Top model | Cost | |---|---|---:|---|---:| | 2026-05-04 10:23:45 | 1dba3b8c | 234 | claude-opus-4-7 | $1.6800 |其中Top model由 conversation.mjs 的topModel()计算遍历byModel按cost_usd降序取第一个模型名无记录时显示—。3.4 JSON 输出结构设置CONV_FORMATjson后输出结构化对象便于脚本化消费{ conversationCount: 12, shownCount: 12, total_cost_usd: 18.4321, byTier: { haiku: 0.4512, sonnet: 9.8723, opus: 8.1086, unknown: 0 }, conversations: [ { sessionId: 1dba3b8c-..., messageCount: 234, total_cost_usd: 1.68, ...: ... } ] }四、源码剖析conversation.mjs 的读取链路4.1 共享会话加载器 _sessions.mjsconversation.mjs不直接接触 AgentDB而是复用 scripts/_sessions.mjs——这是 iter 73 的一次重构产物anomaly、burn、conversation、counterfactual、projection、budget六个脚本此前各自复制同一段命名空间读取样板如今统一收敛为单一事实来源数学语义与旧副本逐字节一致。核心调用链为memoryListSessionKeys(ns)→ 通过npx claude-flow/clilatest memory list --namespace ns --format json列出所有键过滤出session-前缀memoryRetrieve(ns, key)→ 对每个键执行memory retrieve --namespace ns --key key --value-only解析 JSON失败返回nullloadSessions(ns)→ 汇总为记录数组过滤空值。与track.mjs一致_sessions.mjs也支持CLI_CORE1环境变量切换到claude-flow/cli-corealpha的轻量路径JSON 后端替代 SQLite/HNSW语义搜索退化为子串匹配——对只做 store/list/retrieve 的成本追踪场景完全够用。4.2 排序与展示逻辑记录按startedAt字符串升序排序slice(-limit)取最近 N 条时间戳格式化为YYYY-MM-DD HH:mm:ssISO 中去掉T与毫秒金额统一toFixed(4)如$1.6800源码中以fmtUsd()实现会话 ID 仅展示前 8 字符作为前缀标识兼顾可读性与可追溯。4.3 与 cost-session 的配合需要说明的是cost-conversation回答哪些会话最贵而 cost-session脚本 session.mjs回答某次会话内哪些消息最贵。技能文档将二者设计为配套链路cost-conversation列出全部会话的总花费配合cost-anomalyMAD 离群检测默认 3.5σ识别异常会话后再用cost session --session-id id下钻到单条消息且 session.mjs 单独输出 cache-write 列避免881K 缓存在 Opus 上写入 $16被误读为569 token 输出 $16。五、实战组合按项目聚合与告警闭环5.1 按项目隔离成本技能文档给出按项目聚合的写法CONV_NAMESPACEcost-tracking-my-project node plugins/ruflo-cost-tracker/scripts/conversation.mjs配合cost-track的TRACK_NAMESPACE环境变量即可做到采集与报表同命名空间各项目互不干扰。cost-tracking与cost-patterns是插件独占的两个命名空间遵循kebab-case plugin-stem-intent约定见 ruflo-agentdb ADR-0001且不得覆盖保留命名空间pattern、claude-memories、default。5.2 与预算告警阶梯闭环cost-conversation提供会话维度的总量视图而 cost-budget-check 负责把总量映射到告警动作node plugins/ruflo-cost-tracker/scripts/budget.mjs set 50.00 # 设定预算 node plugins/ruflo-cost-tracker/scripts/budget.mjs check # 计算利用率并输出告警等级告警阶梯来自 REFERENCE.md 并由 budget.mjs 强制执行阈值等级动作50%INFO 日志通知不打断体验75%WARNING 展示警告建议运行/cost-optimize90%CRITICAL 紧急告警建议模型降级100%HARD_STOP 停止非必要 agent 派生budget.mjs check退出码 1技能文档给出的fail closed范式是budget.mjs check spawn …用退出码做守卫。成本分析典型工作流因此为cost-track 采集 → cost-conversation 定位高开销会话 → cost-session 下钻到高价消息 → cost-budget-check 判断是否触发告警/降级。5.3 与相邻技能的坐标对照技能聚合维度回答的问题cost-track单会话生产者本次会话花了多少写入命名空间cost-reportagent × model哪个 agent/模型最烧钱cost-conversationconversation哪次会话最烧钱、会话模式是否可持续cost-session单条消息某次会话里哪些消息贵cost-trend基准运行序列win rate/延迟随时间漂移另一条轴语料运行 vs 会话cost-budget-check全部会话总量预算利用率与告警等级六、验证与使用前提安装claude --plugin-dir plugins/ruflo-cost-tracker见 README.md验证bash plugins/ruflo-cost-tracker/scripts/smoke.sh是插件的契约测试入口覆盖脚本 CLI 表面与解析正确性兼容性CLI 固定claude-flow/cliv3.6 majorminorCLI_CORE1轻量路径要求 cli-core 可用数据前提报表质量完全取决于cost-track是否及时采集——长会话期间建议周期执行技能文档提到 cron 友好可配/loop 30m会话结束务必做最终采集联邦注意在federation场景下federation_send的跨 peer 消耗不计入本机cost-tracking见 ADR-097 的 Phase 1 说明因此会话成本数字在启用联邦时应视为下界。一句话总结cost-conversation是 ruflo 成本观测栈中按会话切片的那一块拼图——它把散落在cost-tracking命名空间的session-*记录变成一张可读的会话成本表让哪次对话花掉了预算的大头从感觉变成可验证的数字并为预算告警、会话下钻和项目级聚合提供了统一入口。【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考