# 2026-05-08 Agent健身房复盘 一句话概括:**这次发现的不是已经自动修复的问题,而是 5 类以后会反复浪费时间的操作摩擦 / 工具缺口。** | 优先级 | 发现的问题 | 真实含义 | 计划怎么解决 | | --- | ----------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | | 1 | 复核页保存失败没有标准冒烟 | 用户看到的是 `invalid_json_response`,真实问题横跨本地服务、严格 JSON、pandas 空值和 HTML/CSV 版本绑定;以后每次改复核页都可能再踩。 | 做 `review_save_smoke.py`:检查 `/api/health`、POST 可逆保存、严格 JSON、NaN token、实际 CSV 落盘和备份。 | | 2 | 商品域场景统计每次都在临时重写 | 同一天里反复做分母、用户侧文本、严格/宽松口径、分层抽样、HTML/CSV 导出;口径漂移会直接影响方案判断。 | 做 `product_metric_runner.py` + metric specs,把可帮助编辑、AI 生成图片、价格未解决抽样这些口径配置化并加回归数。 | | 3 | 飞书知识库复制 Word 的带图链路太重 | 从空白 Word、纯文本丢图、插件路径不可接受到 1037 张图嵌入,说明这不是普通导出任务,而是需要一条可诊断的原生复制流水线。 | 做 `lark-docx-image-copy` skill/诊断器:固定 Computer Use 原生复制、校验富文本 HTML、图片占位、内嵌媒体数和外链数。 | | 4 | Figma 授权失效总是在写入时才暴露 | 多个 Figma 设计任务都被 `401 ReauthenticationRequired` 卡住,用户还换过账号;需要先判定授权、账号和文件权限,再决定是否走本地原型 fallback。 | 做 `figma_auth_preflight.py`:写入前输出 `ok / reauth_required / account_mismatch / no_file_access` 和下一步。 | | 5 | Night Gym 会把自己的运行记录混进复盘 | 输入里出现上一轮主分析、子分析、`SUBAGENT_DONE`、`NIGHTGYM_DONE`;不处理会让晨检自我循环,稀释真实工作机会。 | 加 `is_nightgym_internal_session` 过滤和审计 metadata,默认排除 `.codex/night-gym/runs` 内部 session。 | ## 下一步 | 顺序 | 先做什么 | 为什么 | | --- | ---------------------------- | ----------------------------------------------------- | | 1 | 先做复核页保存冒烟 | 低风险、检查链明确,而且已经有真实 `NaN` 和错底表案例可写回归。 | | 2 | 抽商品域指标计算器的最小 spec | 复用最近三个已知结果校验:`1738/3703`、`6/153`、`7/9335`,最快降低统计口径漂移。 | | 3 | 沉淀飞书带图复制校验 | 这类任务单次耗时长,且用户明确约束“不要插件/不是抓取”,需要默认进入专门流程。 | | 4 | 把 Figma 预检接入写入 workflow | 外部 OAuth 不稳定,提前失败比写到一半再报 401 更省时间。 | | 5 | 给 Night Gym 加自身 session 过滤测试 | 避免今天这种元 session 继续污染后续 morning review。 | ## 一、候选详情 ### 1.1 复核页保存链路冒烟 - ID:`review-save-smoke` - 类型:`diagnostic-tool`;风险:`low`;审批:`pending` - 摘要:这个主题有效,不是噪音。片段显示复核页保存失败并非单点 UI 报错,而是 POST 写入、API 返回 JSON、pandas NaN 清洗、服务 health 指向和 HTML/CSV 版本绑定之间的链路缺口,适合沉淀成每次生成复核页后的标准冒烟工具。 - 建议:新增工具入口:在 `/Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/review_save_smoke.py` 增加命令行冒烟脚本,支持 `--html <复核页>`、`--server http://127.0.0.1:18765`、`--row-index <可选>`,用于复核页生成或人工打开前后一键检查保存链路。 - 证据: - `019e07a7-60a2-7123-b8e1-911380002474`:file://~/Documents/job-bu/data-analysis-workspace/.../商品域最终体系_生命周期映射_session复核_2026-05-08_v3.html为啥保存失败 - `019e07a7-60a2-7123-b8e1-911380002474`:复现到了同一个错误:API 返回体里混入了 pandas 的 `NaN` 字面量,浏览器的 `response.json()` 按标准 JSON 解析会直接失败,前端就显示 `invalid_json_response`。 ### 1.2 商品域场景统计计算器 - ID:`product-metric-runner` - 类型:`tool-upgrade`;风险:`medium`;审批:`pending` - 摘要:这个主题有明确价值:片段里连续出现了按截图圈选范围、按生命周期/子领域过滤、按口径计算分子分母和覆盖率、再导出 HTML/CSV 的重复工作。当前每次都依赖临时脚本和人工口径复述,适合沉淀成一个可配置的商品域指标计算器,统一处理范围选择、严格/宽松口径、用户侧文本过滤、分层抽样和交付物导出。 - 建议:新增 `/Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/product_metric_runner.py`:输入复核页底表 CSV 或 HTML 派生 CSV,支持 `--filter`、`--denominator session|row`、`--group-by`、`--metric-spec`、`--sample-size`,输出分子/分母/百分比、明细 CSV、分组汇总 CSV 和可打开 HTML。 - 证据: - `019e06cc-ea6c-74a3-aaa4-0726ef985279`:这 254 条未解决 case 里还有 3 个拆分来源:`价格上下限/金额门槛 163`、`价格填写/改价/定价入口 46`、`划线价/原价/售价关系 45`。我会按这个分布做确定性分层抽样 100 条,大概是 64/18/18。 - `019e06fa-fe2f-7270-a30b-c10cb5b2fd9a`:按 `session` 口径,`上架经营态 + 创建配置态` 共 `3703` 条,其中 `可帮助编辑` 为 `1738` 条,覆盖率 `46.9%`。 ### 1.3 飞书知识库带图复制流水线 - ID:`lark-docx-image-pipeline` - 类型:`diagnostic-tool`;风险:`medium`;审批:`pending` - 摘要:这个主题有效,片段显示真实需求不是网页抓取,而是用 Computer Use 在飞书页面执行原生复制,并把富文本和图片可靠落到 Word。失败信号很明确:复制结果为空、图片不可见、浏览器插件路径不可接受;成功信号也明确:1037 个图片位置全部嵌入、外链图片数为 0、docx 包结构通过校验。 - 建议:新增诊断工具入口:在 Night Gym 或 data-analysis-workspace 下增加 `tools/lark_docx_image_pipeline/check_lark_docx_pipeline.py`,命令形态为 `python3 check_lark_docx_pipeline.py --input manifest.json --out output_dir`,用于驱动/复核飞书知识库带图复制任务。 - 证据: - `019e06d2-5adb-7851-9be6-16476483366a`:不是抓取,是computeruse去复制 - `019e06d2-5adb-7851-9be6-16476483366a`:里面内容为空啊 ### 1.4 Figma 授权失效预检器 - ID:`figma-auth-preflight` - 类型:`diagnostic-tool`;风险:`low`;审批:`pending` - 摘要:这个主题不是噪音:多个 session 都在 Figma 写入前或写入中遇到 `401 Reauthentication required`,并且账号切换后仍无法继续,说明它是可重复发生的阻塞点。预检器的价值在于把失败从“写入过程中才发现”提前到任务开始前,并给出账号、授权、文件权限三类可执行诊断。 - 建议:新增工具入口 `/Users/bytedance/.codex/night-gym/tools/figma_auth_preflight.py`,CLI 形态为 `python figma_auth_preflight.py --file-url <figma_url> --account-hint <email_or_team>`;输入来源包括用户给的 Figma URL、目标账号提示、最近一次 Figma connector 返回、可选的目标文件 key。 - 证据: - `019e0646-9b5e-70a2-a221-7c93da45c4c1`:Figma 连接器仍然是未授权状态:Reauthentication required,所以这轮还不能直接写进 Figma 文件。 触发一下授权 - `019e0696-df5a-76d1-87b1-9bb0379ff935`:Figma 生成接口现在返回 `401 Reauthentication required`,说明插件连接需要重新授权。我先不把事情卡住:先在本地做一个可打开的交互原型和可行性拆解 ### 1.5 Night Gym 自身记录过滤 - ID:`nightgym-self-session-filter` - 类型:`workflow-pattern`;风险:`low`;审批:`pending` - 摘要:该主题有效:相关片段几乎都来自 Night Gym 主分析或子分析 agent 的任务说明、状态输出和完成标记,而不是用户真实工作 session。若不显式过滤,Night Gym 会把自己的运行日志当成可复盘素材,造成候选主题自我循环、噪音放大,并稀释真正值得早上 review 的改进机会。 - 建议:在 Night Gym session 装载阶段增加 `is_nightgym_internal_session(session)` 过滤函数,文件建议放在主分析脚本旁的 `night_gym/session_filters.py` 或当前 runner 的 session 预处理模块;规则包含 cwd 命中 `/.codex/night-gym/runs/`、用户消息标题命中 `Codex Night Gym` / `Night Gym 子主题分析`、assistant/event 消息含 `NIGHTGYM_DONE` / `SUBAGENT_DONE`。 - 证据: - `019e0406-ae13-7c83-8686-54feb626d02d`:# Codex Night Gym — 主分析任务 你是 Codex Night Gym 的主分析 agent。你的目标:从用户昨天的 Codex session 记录里发现「值得早上 review 的改进机会」,产出一个 morning-review 候选包。 - `019e0409-6fcc-76b3-9ca0-a39f7532e5d3`:# Night Gym 子主题分析 你是 Night Gym 的子分析 agent,专注**一个主题**的深入分析。 ## 二、产物 | 文件 | 用途 | | --- | --- | | `out/manifest.json` | 候选清单和审批状态 | | `out/examples/*.md` | 每个候选的 before/after 或诊断流程样例 | | `out/sub/*.json` | 子分析结构化结果 | | `out/approve.sh` | 将候选标记为 approved |