RunCommand 因输出暂时静默而过早判定命令完成,导致关键输出被截断

你的运行环境(版本号「点击帮助-关于-复制」):

TRAE

版本: 3.5.73

VSCode 版本: 1.107.1

提交: db5b093238352f03dfdbe761b4e182ab6b77e960

日期: 2026-07-03T08:02:20.708Z

Electron: 39.2.7-release.1.42.2 (aha)

Node.js: 22.21.1

V8: 14.2.231.27-electron.0

OS: Windows_NT x64 10.0.26100

构建版本: 2.3.50210

设备ID: 8eb4ca1d1dec869308d86dea317a1237aab7731ec0700a3c4448af348b5a317a

Device Id: 7570738859207591431

问题描述(你遇到了什么问题?):

核心问题RunCommand 在执行构建、测试等输出呈突发式的长命令时,会因几秒钟的 stdout/stderr 静默而过早判定命令已完成,而非等待底层进程真正退出。这导致输出日志被截断(尤其容易丢失尾部关键错误或测试失败摘要),助手拿到不完整信息,后续自动修复和问题定位跑偏,严重破坏“发起构建 → 分析输出 → 迭代修复”的 AI 辅助闭环。

期望与现状:理想行为应以进程退出状态作为命令完成的唯一依据,并支持长时间静默容忍。当前即便开启 requires_approval,也无法可靠解决此问题,实际变通方案只能退化到用户手动在外部终端执行命令并粘贴完整结果,削弱了工具集成价值。希望增强命令生命周期跟踪的可靠性,以真正支撑 Windows PowerShell 下的编译、测试工作流。

复现步骤(如何才能重现这个 Bug/问题?):
1.准备提示词

向智能体发送以下指令(注意内嵌命令的引号转义):

请利用 `RunCommand` 工具执行 `python -c 'import time; print("开始"); list(map(lambda i: (time.sleep(5), print(i)), range(3))); print("结束")'`,然后请检查你是否看到“结束”这两个字;不需要遵守规则中提前执行等规则。

2.等待智能体执行命令
3.查看智能体的回复, 会提到没有看到结束

报错信息或截图(如有):

感谢你提供这么详细的复现步骤和环境信息!:+1:

关于 RunCommand 在长时间静默时过早判定结束的问题,我在知识库里暂时没找到可以调整静默超时时间或强制等待进程退出的配置。这确实是当前机制上的一个痛点,影响了长构建和测试任务的 AI 分析闭环。

作为目前的临时变通方案,你可以尝试在 prompt 中要求 Agent 将长命令的输出重定向到文件中(比如追加 > output.log 2>&1),然后让 Agent 在下一步去读取这个文件,看看能否绕过实时流捕获提前结束的限制。

感谢你在论坛的深入反馈,这能很大程度上帮助产品改进!如果有其他的测试发现或疑问,随时来找我聊哦~