REQUEST_EXTENSION 报错把 cause 链完全吞掉:终端、会话日志、Web UI 三处都看不到真实原因 #5173
Puwenhui-Me
started this conversation in
General
Replies: 1 comment
|
源码侧核实(本地 0.1.2-alpha.1 = cd5ef81),你的三个表面判断基本准确,补几条你没点到的事实——其中一条比你说的更严重,一条需要修正。 ① 包装点无 logger(确认,且范围比你说的广):
② cause 链在失败表面被系统性丢弃(机制确认):
③ 会话日志"只有 177 字节头"需要修正/补充:
④ 修复建议(按成本排序):
关联 #5172:你那个 inventory 插件触发点(cannot resolve active package)正好是 cause 被吞的实例——两个缺口(触发源 + 可观测性)分开修,本帖是后者的通用修法。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
现象
官方 DeepSeek 适配器在
prepareExtensions内部失败时,用户能看到的只有:而被包装的
cause——唯一指明真实失败原因的部分(例如上面那条 inventory 的cannot resolve active package)——在任何地方都观察不到:packages/llm/llm-deepseek/src/adapter.ts里包装成LlmError的 catch 处没有 logger 调用;session.jsonl.zstd只有一行 177 字节的 session 头;定位这个问题最终靠的是往 adapter 里临时加
console.error打 cause,再用dsh web --port 3081起隔离实例复现。建议
prepareExtensionscatch 处(以及理想情况下所有LlmError包装点)在 rethrow 前用 logger 打出完整错误链——代码库里已有现成的errorChain(error)工具(agent-loop 的 warn 在用);关联:本次的触发点是源码运行下 inventory 解析器抛错(另一帖),但可观测性缺口是独立的——任何 REQUEST_EXTENSION 失败都会撞上它。
All reactions