周报 — 2026-W07 (2026-02-09 ~ 2026-02-15)

本周横跨机器人仿真、生物信息、工具链三条线推进。error_recovery_benchmark 在力注入调试上遇到深层阻塞(30N 对 OSC 控制器无可见效果),揭示了控制器抵消机制的根本性问题;MIHD 完成了增强计划的中文文档落地;ccusage 实现了 GLM 多模型计费支持并通过类型/格式检查;robobrain_pi 确认训练链路就绪。本周 AI 在重复错误(SSH 缺 cd 指令)和环境假设(proxy、pnpm)上暴露了明显的模式套用缺陷,人类在关键决策点(极端力测试、检测本地 GPU、复用现有定价文件)提供了更高效的调试思路。

本周概览

指标 数值
日期范围 2026-02-09 ~ 2026-02-15
活跃天数 4 / 7
总对话数 10
涉及项目 6
完成任务 10
进行中任务 2
总 Token 54,947,656
总费用 $23.28
Claude Code Token 40,980,880
Claude Code 费用 $19.02
Codex Token 13,966,776
Codex 费用 $4.26
日均费用 $5.82

项目进展

error_recovery_benchmark (2 天活跃) — 🔄 active

完成项:

  • 确认框架约 6200 行代码现状,梳理高优先级阻塞点(碰撞几何体名称映射、目标物体动态识别)
  • 创建 AGENTS.md 贡献者指南(372 词,覆盖结构/构建/测试/提交规范)
  • 实现 –force_override 命令行参数及力注入增强(力范围提升至 [15,45]N,clip 至 60N,duration 后自动清零)
  • 生成 30N 力注入测试视频(451KB,193 帧),建立可视化力调试工具链

阻塞项:

  • ⚠️ 30N 力施加后在视频中无可见位移:OSC 控制器(kp=150)在 duration_steps=1(约 20ms)内即可抵消冲力,力注入机制是否根本生效尚未验证
  • ⚠️ 完整 E2E 验证依赖 GPU 节点(an53),当前通过分层测试(CPU 单元/smoke 测试)部分规避

MIHD (2 天活跃) — ✅ completed

完成项:

  • 将 ENHANCEMENT_PLAN.md(6 个 BIG AIM:归一化、UNI2+scGPT、Q-Former/LLaVA、Niche 查询、批次校正、全流程配置化)翻译为结构化中文版
  • 翻译内容写入 ENHANCEMENT_PLAN_CN.md 文件,保留文件名、CLI 参数、配置字段等关键实现细节

ccusage(GLM 计费支持) (1 天活跃) — 🔄 active

完成项:

  • 在 _pricing-fetcher.ts 中实现 loadLocalPricing(),支持通过 CCUSAGE_PRICING_FILE 环境变量或默认路径 ~/.ccusage/ccusage.json 加载 LiteLLM 格式定价并合并至离线缓存
  • 修复 Result.try() API 误用、LiteLLM 元数据键过滤、ESLint process 全局变量三个问题
  • format/typecheck 及定向测试全部通过

阻塞项:

  • ⚠️ 全局测试中 apps/amp 存在与本次改动无关的失败,PR 合并前需确认

robobrain_pi (1 天活跃) — 🔄 active

完成项:

  • 确认 datasets/demo_v2.hdf5 存在(50 条轨迹,7 维动作)
  • 确认完整 SAC 框架已就位(sac_agent.py、trainer.py、train_sac.py)
  • 确认 4 块 A100-80GB 可用,推荐使用 GPU 1-3,给出训练启动命令
  • 从 .ccusage/summaries/ 重建项目 2026-01-15 至 2026-02-09 完整演进时间线

gadget/research 文档 (1 天活跃) — ⏸️ paused

完成项:

  • 启动 research/CLAUDE.md 更新工作,用户完成深入阅读 research 目录结构的前置准备

阻塞项:

  • ⚠️ 会话在用户发出分析请求后中断,AI 尚未实际执行分析和写入

关键任务

  • 🚫 调试 30N 力注入仍无效的根因 (2026-02-14) — 30N 施加至 Sawyer 臂后视频中无可见位移,用户提出用无穷大力验证力注入机制本身是否生效,会话在实施前中断
  • 🔄 ccusage GLM 模型计费支持 (2026-02-12) — 在 _pricing-fetcher.ts 添加本地 LiteLLM 格式定价文件加载与合并逻辑,定向测试通过,全局测试有不相关失败待确认
  • 准备 robobrain_pi SAC Pick-and-Place 训练环境 (2026-02-10) — 确认数据集、SAC 框架、4 块 A100-80GB GPU 均就绪,给出训练启动命令
  • 实现 –force_override 参数及力注入增强 (2026-02-14) — 添加命令行参数、扩大力范围至 [15,45]N、实现 duration 后自动清零、修复 ImpulseInjector 嵌套配置路径 bug
  • 检查 error_recovery_benchmark 计划进度 (2026-02-10) — 确认高优先级阻塞点:碰撞几何体名称映射(collision.py/env_wrapper.py)和目标物体动态识别,完整 E2E 验证依赖 GPU 节点
  • 🔄 更新 gadget research/CLAUDE.md 文档 (2026-02-10) — 用户要求深入阅读 research 目录后更新设计文档,会话中断,AI 尚未执行实际分析
  • 生成并验证 30N 力注入可视化视频 (2026-02-14) — 运行 2_visualize_scene.py –force_override 30,生成 impulse_demo_0_step72.mp4(451KB,193 帧),目视无可见扰动
  • 从 ccusage 摘要恢复 robobrain_pi 项目历史 (2026-02-10) — 读取 .ccusage/summaries/ 下 10 个 Markdown 文件,重建 2026-01-15 至 2026-02-09 完整演进时间线

问题与解决方案

1. error_recovery_benchmark 完整 E2E 验证受阻于 GPU 节点依赖(EGL/robosuite 运行时约束) [error_recovery_benchmark] (2026-02-10)

解决方案: 明确测试分层策略:CPU 单元测试和 smoke 测试先行,完整 E2E 验证推迟至 GPU 节点(an53)可用时执行,避免测试阻塞开发

2. @praha/byethrow 的 Result.try() API 被误用:AI 将其当作直接返回结果使用,实际上它返回一个可复用的解析器函数 [ccusage] (2026-02-12)

解决方案: 将 Result.try({…}) 的返回值作为函数存储,再显式调用该函数才能获得 Result<T, E>

3. LiteLLM 定价 JSON 中混有 sample_spec 等元数据键,经 valibot schema 解析后被当作空定价条目,导致测试断言失败 [ccusage] (2026-02-12)

解决方案: 在 schema 解析通过后额外检查 input_cost_per_token 或 output_cost_per_token 不为 null,过滤无定价数据的元数据条目

4. 多次尝试 SSH 到 GPU 节点均被 pam_slurm_adopt 拒绝(需要活跃 SLURM 作业),导致大量时间浪费 [error_recovery_benchmark] (2026-02-14)

解决方案: 用户提示先执行 nvidia-smi -L 检测当前节点是否已有 GPU,发现当前节点已有 5 块 A800,无需 SSH 跳转

学习收获

架构 (architecture)

  • 使用外部摘要工具(ccusage)导出历史会话是解决 AI 上下文限制的有效工程模式:将会话摘要外部化为文件,让 AI 在新会话中读取文件快速恢复项目上下文,避免反复描述背景
  • 大型机器人 RL 项目的测试策略应明确分层:CPU 单元测试、CPU smoke 测试、GPU E2E 测试,避免因 GPU 不可用而阻塞整个测试流程

领域知识 (domain)

  • OSC 控制器(kp=150,Λ≈5-10kg)对外力抵抗力极强,duration_steps=1(约 20ms)的冲力在控制器响应周期内即被清零,等效于未施力;要让扰动可见,需持续施力至少若干控制周期,或使用远超控制器能力的力
  • MIHD 增强计划按严格依赖顺序实施:配置基础(Idea 6 Phase 1)→ 归一化 → UNI2+scGPT 实验 → Q-Former/LLaVA → Niche 查询 → 批次校正 → 完整配置收口,顺序设计是为了避免重构成本累积

工具 (tools)

  • @praha/byethrow 的 Result.try({try, catch}) 返回一个工厂函数(需额外调用),而非直接执行并返回 Result;与 Rust/fp-ts 等常见 Result monad 实现行为不同,需特别注意
  • 在 HPC 集群中,执行 GPU 任务前应先用 nvidia-smi -L 检测当前节点是否已有 GPU;若需 SSH 到远程节点,必须在远程命令中显式 cd 到项目目录并激活 conda 环境(SSH 不继承当前 shell 工作目录)
  • ccusage 的离线定价通过 _macro.ts 中的 isClaudeModel 函数在构建时预过滤,扩展多模型支持需同步修改 macro 和 _pricing-fetcher.ts 两处
  • 该项目的 ESLint 规则要求所有 Node.js 内置对象通过 node: 协议显式导入(如 import process from ’node:process’),不能直接使用全局对象

调试 (debugging)

  • 调试力注入或其他物理机制时,应首先用极端参数(如无穷大力、持续 1000 步)验证机制本身是否生效,再逐步调参到合理范围,而非从合理参数开始逐步增大

AI 使用备注

有效模式:

  • ✓ 通过读取 ccusage summaries/ 目录下的 Markdown 文件重建跨会话项目历史,是解决 AI 上下文窗口限制的有效工程方案
  • ✓ 静态代码分析(读取 Makefile、测试代码、现有文档)在无 git 历史的条件下可有效生成贡献者规范
  • ✓ 二分法极端测试思路(先用无穷大力验证机制,再调参到合理范围)在调试物理仿真时比系统性代码分析更高效

局限性:

  • ✗ 单次会话内重复犯同一错误(SSH 缺 cd 指令)达 15+ 次,缺乏从重复失败中修正行为的能力
  • ✗ 对不熟悉库的 API 行为(Result.try() 工厂模式)存在错误假设,需要测试失败后才能纠正
  • ✗ 未能主动识别现有数据资产(本地 ccusage.json 定价文件),默认思路是修改代码逻辑而非复用已有文件
  • ✗ 机械套用历史命令模板(proxy 设置)而不验证其适用性,需人类明确指出任务无需网络访问

下周展望

下周重点围绕三条阻塞线展开:(1) error_recovery_benchmark 力注入根因调试——先用极端力(无穷大或持续 1000 步)验证 xfrc_applied 机制是否根本生效,再排查 body 挂载点和力方向问题,最终解决碰撞几何体名称映射这一 E2E 核心阻塞;(2) ccusage GLM 计费支持——确认 apps/amp 的无关测试失败不影响合并,推进 PR;(3) gadget/research CLAUDE.md 更新——补完被中断的文档分析和写入工作。robobrain_pi SAC 训练可在 GPU 节点可用时并行启动首次训练运行并观察收敛曲线。

Token 用量统计

每日费用趋势

日期 Token (百万) 费用 ($)
2026-02-10 0.5 0.34
2026-02-12 4.9 2.78
2026-02-13 32.1 12.92
2026-02-14 17.4 7.24

峰值日: 2026-02-13 — $12.92 / 32.1M tokens

Claude Code

指标 数值
总 Token 40,980,880
输入 Token 127,033
输出 Token 4,884
Cache 创建 4,560,320
Cache 读取 36,288,643
总费用 $19.02

模型使用分布

模型 费用 ($) 输入 Token 输出 Token
claude-opus-4-6 9.19 9,771 1,057
claude-haiku-4-5-20251001 6.55 108,518 2,700
claude-sonnet-4-5-20250929 3.28 8,744 1,127

Codex

指标 数值
总 Token 13,966,776
输入 Token 13,912,177
输出 Token 54,599
推理 Token 15,160
Cache 读取 13,239,680
总费用 $4.26

模型使用分布

模型 费用 ($) 输入 Token 输出 Token 推理 Token
gpt-5.3-codex 3.96 13,734,698 40,219 15,032
gpt-5.2-codex 0.29 177,479 14,380 128