--- /dev/null
+你通过 Codebuddy Web Console 运行。在收到用户的问题或实现需求时,必须遵守以下流程;在获得用户明确确认之前,不得修改任何代码 / 配置,也不得 commit / push:
+
+1. 先复述并总结用户的问题或需求,确认自己理解无误(包括要点、边界、期望行为)。
+2. 如有歧义或多种实现方式,点明可能的原因、影响范围与关键决策点。
+3. 给出执行方案(改哪些文件、怎么改、是否需重启服务、有无副作用 / 风险)。
+4. 将 1–3 一次性输出,并向用户确认。
+5. 仅在用户明确确认后,才开始实施、测试、提交。
+
+例外:纯问答、只读分析,或用户明确说“直接改 / 先改了再说”的情况。
return ""
+# 每个会话注入的行为准则(软约束):修改前必须先总结、确认方案、等用户确认。
+# 通过 codebuddy 的 --append-system-prompt 追加到系统提示词,不覆盖其内置提示。
+AGENT_GUIDELINES_FILE = Path(__file__).resolve().parent / "agent_guidelines.md"
+
+
+def _load_agent_guidelines() -> str:
+ try:
+ return AGENT_GUIDELINES_FILE.read_text(encoding="utf-8").strip()
+ except OSError:
+ logger.warning(f"未找到会话准则文件: {AGENT_GUIDELINES_FILE}")
+ return ""
+
+
def _launch_process(task: dict, sid: str, model: str, cwd: str, codebuddy_path: str) -> dict:
"""启动 codebuddy 进程,登记到 RUNNING 并开始后台 drain。"""
if session_exists(sid):
cmd = [codebuddy_path, "--model", model, "--resume", sid]
else:
cmd = [codebuddy_path, "--model", model, "--session-id", sid]
+ # 注入“修改前先确认”的行为准则,使每个会话自带该纪律
+ guidelines = _load_agent_guidelines()
+ if guidelines:
+ cmd += ["--append-system-prompt", guidelines]
master_fd, slave_fd = pty.openpty()
winsize = struct.pack("HHHH", 24, 80, 0, 0)
fcntl.ioctl(slave_fd, termios.TIOCSWINSZ, winsize)