Replies: 2 comments
|
Agent 工具通病吧,其实加个提示词让模型不要做做这种危险操作就好 |
0 replies
|
已定位根因:workspace-write 沙箱只限制文件写、不限制进程操作,沙箱内 taskkill 可杀死宿主;宿主在 turn 中途死亡后,会话日志干净地停在未闭合的 turn/step/tool 上。持久化层只修"撕裂尾部"、不对干净 EOF 的悬空 turn 做闭合;客户端从日志投影状态(settled===undefined → running)→ 永久"运行中"转圈;服务端活跃度又来自活体 agent 注册表(冷启动无 agent),两处矛盾且无冷启动协调。修复方案(推荐:加载时补写中断 closeout 事件)见 #466 。 |
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.
问题概述
运行在
dsh web内部的 Agent 可能会为了让配置生效,决定重启当前 DSH Web 服务,并通过 Bash 工具执行kill <dsh-web-pid>。但被终止的进程同时也是执行当前 Agent 和工具调用的宿主。进程被杀死后:
环境
0.1.0-rc.6v22.22.2dsh web复现步骤
创建一个需要修改 Web profile,并且必须重启服务才能让配置生效的 Agent 目标。
Agent 检测到 HMR 不可用,因此决定重启当前 DSH 服务。
Agent 在当前会话内部执行类似下面的工具调用:
实际结果
3080端口不再有进程监听。kill <dsh-web-pid>的tool/call。tool/result、step/end或完整的 Assistant 回复。Session log会显示Failed to fetch。页面中显示的另一个后台命令其实已经正常完成,结果为:
因此,表面上的“命令一直运行”并不是该后台命令卡住,而是 Agent 终止了自己的宿主进程。
预期结果
DSH 应当阻止运行于宿主内部的 Agent 直接终止负责执行当前工具调用的宿主进程。
如果 Agent 请求重启服务,应该交给独立于当前宿主进程的外部监督器或专用重启机制处理,并保证:
即使宿主意外退出,浏览器和持久化会话也不应永久停留在错误的“运行中”状态。
建议的防护措施
kill、pkill、killall等命令终止 DSH 宿主进程或其必要的父进程。恢复验证
从 DSH 外部手动重新执行
dsh web后:127.0.0.1:3080恢复正常监听;复现和说明该问题不需要提供任何凭证、认证 Token 或用户专属路径。
All reactions