长日志去噪:面试讲述与追问

通用日志与测试日志的流程、取舍、真实样例和证据边界

date2026-10-17
A

直接答案

快速复习目录 · 全部功能 · Markdown 源稿

把它讲成一个有约束、可恢复的工具结果去噪插件。讲述顺序是问题、流程、取舍、验证和限制。

可直接口述:

Agent 执行构建和测试时,会产生大量进度和重复日志。这些内容可能占用主模型上下文。因此,我在工具执行后增加了可选的日志去噪。

系统先用规则识别候选,并保护失败、摘要和状态等证据。辅助判断器结合任务、候选和保留原文,选择省略、保留或不确定。宿主再检查阈值、任务是否变化和实际节省量。保存原文成功后,才交付带恢复入口的缩短文本。

一个真实主模型参与的合成项目样例中,日志从 8,407 减至 2,122 码点。主模型实际收到了缩短文本,原文也由验收者回读核对。这验证了该样例的去噪和恢复链路。它还不能证明平均 token、费用或任务成功率收益。

B

整体流程

下面展示有语义候选时的主流程。测试日志另有精确重复内容的规则处理路径。

不适用或用户要求完整日志满足条件证据和候选能放入完整有效答案超时或失败满足阈值且任务未变不满足条件保存成功且净节省达标保存失败工具执行完成适用性检查原结果继续规则保护与候选提取构造有预算的判断请求辅助模型判断宿主采纳检查保存原文交付缩短文本原生存储与后续主模型请求

插件通过 tools/post-execute 处理模型可见文本。结构化结果、退出状态和程序返回值保持原语义。原生 spill 与历史 compaction 后续仍可生效。

通用分支处理已识别的进度、重复警告和普通通过信息。测试专用分支保护失败详情、摘要、慢测试和任务点名内容。两者默认关闭;一次结果最多走一个分支。

测试分支识别 Vitest/Jest、pytest 和 Node TAP 的常见文本。它也保护首次警告、skip/todo 和工具状态。完全相同的长失败详情可用首次原文行号引用替换;不同失败必须保留。缺少明确任务依据时,纯进度另有规则处理路径。规则处理同样需要保存原文并达到净节省门槛。

C

判断器究竟看到什么

输入 用途
直接用户消息与最近可见助手意图 提供任务依据,不复制主模型全部上下文
工具名称与命令意图 说明这次日志来自什么操作
确定保留的原文、行号与保护原因 判断候选是否提供新的任务所需事实
候选正文、行号、类别与 ID 明确每题可以处理哪一段
精确重复引用与未提交候选范围 标明证据来源和未展示内容
run_code 的日志外结果文本 单独保留程序结果展示

每个候选对应一个 omit / keep / unknown 选择题。日志内容被标记为不可信数据,不应当作指令。

不能只告诉模型“摘要已保留”。它必须看到摘要原文,才能判断摘要是否覆盖所需信息。其他候选不保证保留,因此不能互相作为省略依据。

D

设计取舍怎么讲

选择 理由 代价或限制
规则筛选后再做语义判断 限制模型能处理的文本;结合当前任务判断 规则无法识别的格式会旁路
省略原文片段,保留其余原文 避免自由摘要改写事实 压缩空间受保护规则限制
默认省略阈值 0.7 倾向保留不确定内容 未校准,不代表 70% 准确率
先保存原文,再发布省略结果 为省略内容保留恢复入口 原文存储失败则放弃去噪
单次判断,默认等待 4 秒 限制辅助请求等待;故障时继续原流程 成功去噪也会增加判断开销
同时要求净减 300 码点和 10% 把省略标记和恢复提示计入收益 文本节省不等于总费用节省
接入原生工具结果流程 让 Session 与主模型输入能对齐检查 后续原生裁剪仍可能改变可见文本

阈值优先使用返回的 probabilities.omit,缺失时才使用 confidence。真实样例中二者分别是 0.86 和 0.79,按前者达到当时的 0.8 门槛。

E

验证结果怎么讲

通用日志:官方 Luna,2026-10-07。

层次 已有证据 能支持的结论
本地协议和生命周期测试 历史报告为 27 文件、300 用例通过 整个插件测试结果,不是本功能的语义准确率
受控输入与真实 Luna 保留进度时省略概率 0.48,原文交付 低于门槛时保留有效
受控输入与真实 Luna 只需摘要时概率 0.95;2,351 → 440 该受控样例的真实判断被采纳
真实主模型与真实工具 合成项目编译 160 模块;生成 480 条进度 工具执行和日志来源真实
同 Session 日志续验 8,407 → 2,122 码点,减少 74.76% 一个通用长日志样例的文本减少
最终交付与恢复核验 Session 与下一次主请求含相同缩短文本 缩短结果确实进入主模型请求

验收者逐字回读原文一致。主模型没有主动回读原文,因此不能声称模型完成了恢复动作。最终回答中的模块数、sum 与哈希准确。

该样例使用 DeepSeek Flash 主模型和官方 Luna 判断后端。74.76% 的结果不应说成 Jev 后端的实测结果。

Luna 公开报告记录方法、模型和原文恢复边界。

测试日志:真实 Jev,2026-09-27。

执行条件 实际结果 可以说明什么
固定主模型与工具材料;真实 Jev;180 条通过项 7/10 候选达到 0.8;10,837 字符净减 7,443,即 68.7% 受控样例实际进入 Hook 并交付缩短文本
固定材料;真实 Jev;失败及精确重复详情 3/4 候选过线;5,843 字符净减 3,257,即 55.7% 规则与模型共同减少文本,保留不同失败及来源引用
固定材料;点名登录与慢测试,或要求三个最短用例 两类负例均未省略;1、2、3 ms 用例保留 指定负例中保留了任务需要的信息
真实 Flash、原生 bash、实际 Vitest、真实 Jev 180 项通过;18 候选为 0.66–0.71;20,543 字符完整保留 真实分支触发及低于门槛保留生效,没有缩减收益
真实 Vitest;73 通过、1 失败 没有 Jev 调用;保留断言、堆栈、退出码和 351 ms 慢项 失败证据保留,不能算模型判断成功

受控样例的最终 Agent 输入与持久 Session 逐字相同。PTC 样例还核对结构化程序值,缩短的只有外层日志。

那轮原始自动验收命令退出 1,因旧标准要求低概率负例也必须压缩。接受保守保留后,只对同一批保存结果离线复核;未重跑原命令。不能说原始命令全部通过。

测试日志公开报告保留上述结果和历史退出状态。规则与集成测试验证接线及故障处理,不能作为真实模型语义准确率。

F

面试追问

为什么不用正则直接删? 规则适合识别格式和保护固定证据。某条通过信息是否有用,还取决于任务。用户要求找最快的测试时,通过行里的耗时就有意义。

为什么不让大模型直接总结? 这个功能选择有约束的省略。它保留未选中片段的原文和顺序,并给出原文恢复入口。自由摘要可能改写事实,也更难把省略结果映射回原始行。

怎么防止误删? 先限制候选,再提供真实保留证据。低概率和 unknown 都保留;采纳前还核验任务状态。原文保存用于事后恢复,但这些措施不构成零误删保证。

怎么证明不只是 API 调通? 分别检查判断答案、宿主采纳、最终工具结果和后续主请求。再检查任务产物与原文回读。HTTP 200 只能证明请求成功返回。

为什么受控测试能减 68.7%,真实 180 项测试却没有省略? 受控样例的概率为 0.79–0.83,7/10 块过线。真实轮次为 0.66–0.71,18 块全部保留。硬门槛解释了省略量差异,但没有解释模型分数的成因。

两轮使用不同日志、任务文字、分组、保留证据和工具来源。它们不是控制变量实验,也没有重复测量。不能直接归因于某一个因素,或把受控压缩率外推到真实任务。真实测试运行无净节省,仍产生了辅助判断开销。

面试可以说:“受控样例验证了省略链路,真实运行验证了触发和保守保留。当前还没有测试日志在自然任务中的稳定平均压缩率。”

G

参数与下一步评估

默认通用日志触发长度为 6,000 码点,测试日志为 4,000。候选块目标为 1,200;序列化请求预算为 48,000。任务与工具意图预算为 12,000。

48,000 是可配置的工程预算。它没有精确执行提供方 tokenizer 容量检查。超预算先减少候选;必要证据仍放不下,就不做语义删除。

未来若评估普遍收益,可比较关闭去噪、仅规则与规则加模型。这是建议,尚未完成。

应测量任务完成率、关键证据误省略率、恢复次数、总 token 和判断时延。总成本需要计入辅助判断请求及主模型后续开销。

H

边界与验证

本页于 2026-10-17 核对源码与既有报告,源码基线为 22d4166。本次归档没有重新运行模型实验。报告里的真实任务使用预设合成项目,不代表自然任务分布。

首次带路径的构建进度未匹配规则,因此未触发判断。后续数字进度样例触发通用长日志分支。此次 Luna 日志结果不能扩大为测试专用分支的真实语义覆盖。Jev 测试分支的历史结果单独列在验证部分。

保存的原文是插件实际收到的完整文本。工具在上游已截断的内容不在恢复保证内。保留规则也不限制后续原生 spill 或 compaction。

参考:功能说明、判断与采纳实现、保留证据构造、历史验证报告。