Repository navigation
[Bug] 内置会话标题插件几乎从不更新:输出额度 64 个 token 被思考吃光,失败还完全静默(DSH 0.2.1-rc.2) #10129
Replies: 3 comments
|
现象和机制都对,但「输出额度写死 64」这个说法要改一下 —— 64 不在代码里,它是bundle 补丁的默认值,schema 那边是 required、不给默认。这个区别决定了这件事今天就能自己解决,不用等版本。 已核实
maxInputBytes: 4096
maxOutputTokens: 64所以链路是:bundle 补丁给了 64 → 插件照单全收 → 强制思考模型先把 64 用完 → 这意味着三件事
关于"思考与正文共用额度" 这是判据上的关键,值得写进标题: 最后一点建议 你列的 11 条里,第 11 条(兜底标题被当作正式标题写入,且不作为后续请求的锚点)其实比第 2 条更值得单独立项:它意味着一旦兜底标题落盘,后续就再也没有"更新"的起点,所以即使额度修好,已经产生的会话也不会自愈。这一条决定了"修好之后存量会话能不能恢复",比额度数值影响面更大。 |
|
补充你第 3、4 条的实测证据,这条和 token 额度是相互独立的第二个故障,建议单独修。 你写「输入超过 为什么 subagent 天然超限subagent 的首条 user message 是完整的委派说明(含任务描述、约束、父会话 id、回复要求),本身就长。而 代码路径( const inputBytes = Buffer.byteLength(prepared.input, 'utf8')
if (inputBytes > config.maxInputBytes) {
throw new Error(`session-title-llm: input is ${inputBytes} bytes, exceeding maxInputBytes ${config.maxInputBytes}`)
}
// …之后才 append('session/title-llm-request', …)数据117 个真实会话(剔除 10-09 那批
5/5 全部超限,没有例外。这些会话的标题至今是首条消息的前 5 个词,比如 对照组:同一时期同批次的 subagent,输入 1522B / 1852B / 2172B 的全部成功生成了模型标题。 和 token 额度是两件事我这边 bundle 阶段的 9 个失败会话里,只有 3 个是 你第 4 条(输入单调增长)的补充顺带确认: 建议你提的「输入超限改为取最近若干条并截断」正是对的方向。补充一点:截断策略要能保证至少有一条消息进入请求,否则会退化成同样的静默失败。另外现在这个失败路径完全不可观测,即使不改截断策略,也应该先让它写进 |
- id: optional-session-title-all-prompts
config:
targetWords: 5
targetCjkCharacters: 10
maxInputBytes: 4096
maxOutputTokens: 4096
timeoutMs: 60000 |
Uh oh!
There was an error while loading. Please reload this page.
环境:DSH Desktop 0.2.1-rc.2(Windows),主对话模型是强制思考模型,即使思考档位取最低,也必须先输出思考。
现象:左侧会话列表的标题长期停在「第一条用户消息被截断」的兜底文本上,多轮对话后也不更新,界面上没有任何提示。
根因:
验证:把该提供者的 maxOutputTokens 从 64 调到 1024 后,同一台机器上新会话立刻正常生成标题(标题从第一条消息的截断变成模型生成的短标题)。
顺带报告的 11 条设计问题(按严重程度)
建议
输出额度提到 512 以上,或为标题单独配一个不思考的小模型;输入超限改为取最近若干条并截断;失败在界面可见并写进会话记录;请求改增量式;思考档位可配置;标题模型与主对话模型分开配置。
All reactions