]> acesimba.cloud Git - codebuddy-web.git/commitdiff
feat: 注入并展示会话行为严格准则(7条)到所有会话
authorCodebuddy <codebuddy@localhost>
Thu, 10 Sep 2026 08:07:06 +0000 (16:07 +0800)
committerCodebuddy <codebuddy@localhost>
Thu, 10 Sep 2026 08:07:06 +0000 (16:07 +0800)
- backend/agent_guidelines.md: 替换为用户要求的7条严格行为准则
  (严格按描述执行/不擅自建议设计分析优化/不改UI标准/不新增字体字号颜色样式/
  无情感传达只报结果/结果后不给进阶建议),经 --append-system-prompt 注入每个会话
- backend/app.py: 新增 GET /api/guidelines 返回准则文本,供前端初始化界面展示
- frontend/index.html: 打开任意会话窗口时 showGuidelinesBanner() 在终端初始化
  界面打印准则横幅(沿用现有连接横幅样式,不新增任何UI元素)

覆盖:新建会话 + 已有会话重连/重启均按新准则;前端每次开窗口可见。

backend/agent_guidelines.md
backend/app.py
frontend/index.html

index dafa5193ff92df1ba5d1f4b91b1ee4e28c99171d..0ec09400e082702cdd1649dc621646e9cccdf7fa 100644 (file)
@@ -1,9 +1,11 @@
-ä½ é\80\9aè¿\87 Codebuddy Web Console è¿\90è¡\8cã\80\82å\9c¨æ\94¶å\88°ç\94¨æ\88·ç\9a\84é\97®é¢\98æ\88\96å®\9eç\8e°é\9c\80æ±\82æ\97¶ï¼\8cå¿\85é¡»é\81µå®\88以ä¸\8bæµ\81ç¨\8bï¼\9bå\9c¨è\8e·å¾\97ç\94¨æ\88·æ\98\8e确确认ä¹\8bå\89\8dï¼\8cä¸\8då¾\97ä¿®æ\94¹ä»»ä½\95代ç \81 / é\85\8dç½®ï¼\8cä¹\9fä¸\8då¾\97 commit / push:
+ä½ é\80\9aè¿\87 Codebuddy Web Console è¿\90è¡\8cã\80\82å\9c¨æ\9c¬ä¼\9aè¯\9d中ï¼\8cä½ å¿\85须严格æ\89§è¡\8c以ä¸\8bå\87\86å\88\99:
 
-1. 先复述并总结用户的问题或需求,确认自己理解无误(包括要点、边界、期望行为)。
-2. 如有歧义或多种实现方式,点明可能的原因、影响范围与关键决策点。
-3. 给出执行方案(改哪些文件、怎么改、是否需重启服务、有无副作用 / 风险)。
-4. 将 1–3 一次性输出,并向用户确认。
-5. 仅在用户明确确认后,才开始实施、测试、提交。
+1. 请严格按照我的描述执行!
+2. 描述有任何不清楚的,和既有逻辑冲突或不足的,你可以提出来,我来回复(不得自行臆测或替我补全需求)。
+3. 不得擅自进行任何建议、任何设计、任何分析、任何优化!
+4. 不得擅自修改任何 UI 标准。
+5. 不得使用当前 UI 上不存在的字体、字号、颜色、UI 样式等(除非我特别说明);交互操作必须保持和现有页面交互行为逻辑一致。
+6. 回复中不需要任何安慰、表扬、夸奖、赞叹、同情和自我批评等情感传达;只反馈执行结果,或执行中遇到不理解的问题时列出问题。深度思考和任务执行过程中不返回上述信息,只返回执行结果。
+7. 回复任务结果后,不需要进行任何进阶建议。
 
-例外:纯问答、只读分析,或用户明确说“直接改 / 先改了再说”的情况。
+在打开任何会话窗口时,本准则会在初始化界面展示,你必须严格遵守。
index 5e3884d98b20cbb340b91f132317beb35faa25e3..efb66abb8d690546c1682d032500646f4b413ac4 100644 (file)
@@ -553,6 +553,11 @@ async def favicon():
         headers={"Cache-Control": "public, max-age=86400"},
     )
 
+# 会话行为准则:注入每个会话(--append-system-prompt),同时供前端初始化界面展示
+@app.get("/api/guidelines")
+async def api_guidelines():
+    return JSONResponse({"ok": True, "guidelines": _load_agent_guidelines()})
+
 
 # 设计说明 / 帮助页(独立静态 HTML,可从应用内“❓ 帮助”打开,支持打印为 PDF)
 HELP_FILE = FRONTEND_DIR / "help.html"
index 46c2a3d8ed3a68f9192542237712d7646373fd89..cadbd496154e8ce264159f98656c7c5ddb0bf0cd 100644 (file)
@@ -1081,10 +1081,26 @@ body { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; heigh
     updateTitle();
     show('terminal');
     initTerminal();
+    showGuidelinesBanner();
     connectWS();
     loadModelSelect();
   }
 
+  // 打开任意会话窗口时,在终端初始化界面打印行为准则(与现有连接横幅同形式,不新增任何 UI 元素)
+  async function showGuidelinesBanner() {
+    try {
+      const res = await fetch(API + '/api/guidelines', { headers: authHeaders() });
+      if (!res.ok) return;
+      const d = await res.json();
+      const g = (d.guidelines || '').trim();
+      if (!g) return;
+      term.writeln('\x1b[36m╔════════════════════ 会话行为准则(全程严格遵守)════════════════════\x1b[0m');
+      g.split('\n').forEach(line => term.writeln('\x1b[90m' + line + '\x1b[0m'));
+      term.writeln('\x1b[36m╚════════════════════════════════════════════════════════════════════\x1b[0m');
+      term.writeln('');
+    } catch (e) { /* 展示失败不影响会话使用 */ }
+  }
+
   // 切换模型:保存到任务,并重启会话以应用
   // 注意:监听器在脚本加载时只绑定一次(见下方初始化区),不放在 showTerminalMode 内,
   // 避免重复进入终端页导致重复绑定 / 未绑定,从而引起“点了没反应”。