Repository navigation
Replies: 1 comment
这个抛错是设计使然(有测试钉着)——但"重启后必现"这一半是缺陷,你的分析方向是对的1. 先把抛错的来源定下来那句错误来自 throw new Error(`prompt variable "{{${name}}}" has no value for this assembly (${kind} "${input.name}")`)而且这个行为是被测试明确钉住的—— 也就是说:"引用了变量但这次装配里没有值 ⇒ 抛错"是有意的 fail-loud 设计,不是崩溃。你要的"优雅降级"目前不在设计里(想改成降级,那是一个需要讨论的变更,不是修 bug)。 2. 变量是谁给的——这决定了为什么"重启后必现"装配体的变量是一个字典( ⇒ 所以你的推测——"resume 路径下 route(模型路由)建立晚于 persona prefix 的渲染"——与代码形状完全一致: 3. 所以该提的是"哪一层"的问题(建议这样写)不要把诉求写成"修这个报错",因为它是有意的。建议写成二选一(或两者都要):
4.
|
Uh oh!
There was an error while loading. Please reload this page.
现象
dsh web 重启后,复用既有会话的任务卡执行失败,报:
同一个任务卡在重启之前可以正常执行。
环境
@deepseek-ai/dsh-base/dsh-persona/dsh-agent-presets均为 0.1.5-rc.2)@linxin666/dsh-client-ui-task-board(任务板,任务卡开启了「复用会话」reuseSession: true)prefix里使用了{{model}}与{{cwd}}复现步骤
你是「X」,由 {{model}} 模型驱动。你的工作目录是 {{cwd}}。期望
复用 / 恢复会话时,persona prefix 里的
{{model}}、{{cwd}}能正常解析;或者变量取不到时优雅降级(省略该句)而不是中止启动。实际
抛错并中断,agent 未启动。
succeeded(大概是 prompt 投递成功即算成功),错误只发生在会话运行时。也就是说定时任务静默失效,从任务卡记录上完全看不出来。观察与分析(不一定对,仅供参考)
dsh-agent-presets生成的 preset 模板里带一行注释:# '{{model}}' and '{{cwd}}' resolve from the agent's own route and workspace.影响面
任何在 persona prefix 里使用
{{model}}/{{cwd}}的 preset,只要遇到「web 重启过」+「复用/恢复既有会话」这个组合,就会失败。对长期复用同一会话的定时任务卡而言基本是必现的 —— 而这类场景恰恰是任务板的主用途。本地规避方式
已把两个 preset 的 prefix 里的
{{model}}/{{cwd}}换成固定文本(不再使用这两个变量),暂时绕开。建议
{{model}}解析失败就省略该分句),而不是抛错终止整个 assembly;(如果
{{model}}/{{cwd}}在 resume 场景下本来就不保证可用,那么文档里也许值得写明这一点 —— 我当初看模板注释以为两者总是可用的。)All reactions