feat: 在 system prompt 中注入平台执行约束#259
Conversation
问题:SDK 返回 result 消息后,如果有 background task 仍在运行, for-await 循环不会结束,导致 idle timer 继续倒计时最终触发超时。 实际查询已经成功完成,不应该报超时。 修复:用 labeled break 在收到 result 后立即跳出循环, 并调用 q.close() 确保子进程不泄漏。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
问题:urhox-bench 的 .claude/settings.local.json 包含完整的 bash 命令 白名单(git/npm/npx/gh 等),但 SDK 只传了 ['user', 'project'], 'local' 未包含,导致这些权限不生效。SDK 弹窗请求授权时飞书 bot 无法交互,报 "Stream closed"。 修复:settingSources 加入 'local',优先级:user < project < local。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
将 Feishu bot 环境的运行时限制(子进程生命周期、长任务模式、权限交互) 硬编码到 buildWorkspaceSystemPrompt 中,确保所有通过 anycode 执行的 agent 都能正确理解平台约束。 之前这些约束放在 config/knowledge/platform.md(gitignored), 新部署或其他开发者无法受益。移到代码中后: - 入 git,所有开发者受益 - 不可被 config 误删 - 任何新部署自动包含 - 不影响目标仓库的 CLAUDE.md(原生 CLI/Codex 不受约束) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 2m 45s —— View job Code Review: 平台执行约束注入Verdict: 变更本身干净、低风险——纯粹是把一段静态约束文本追加到 🟡
|
Review 指出 cron MCP server 是条件注册的(需 CRON_ENABLED=true), 但 prompt 无条件引用 manage_cron。修复为:cron 关闭时降级为 "建议用户稍后手动追问检查结果"。 同时 export buildWorkspaceSystemPrompt 以便测试直接调用。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
验证: - system prompt 包含"平台执行约束"段落 - cron 关闭时不包含 manage_cron 指引 - cron 关闭时包含手动追问降级文案 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Fixed — 处理了 review 指出的两个问题:
|
|
Claude finished @lishuceo's task in 1m 42s —— View job Re-review: 平台执行约束注入 (fixes)Verdict: ✅ Approved — 2 previous issues fixed 上一轮 review 指出的两个问题均已正确处理。
✅ 1.
|
Summary
buildWorkspaceSystemPrompt中背景
urhox-bench 场景中 Agent 使用 Monitor 等待 20-25 分钟的 Sonnet 跑批结果,但 query 返回后子进程被回收,Monitor 随之终止。这不是 bug 而是架构差异(CLI 长驻进程 vs SDK query-per-interaction 模型),需要让 Agent 知道正确的长任务模式。
之前放在
config/knowledge/platform.md(gitignored),新部署/其他开发者无法受益。现在移到代码中,所有人自动获得。Test plan
🤖 Generated with Claude Code