From 85cc42cec6f1a01d3f6c017f32b80b036d6ad98d Mon Sep 17 00:00:00 2001 From: yumoqing Date: Wed, 5 Aug 2026 17:56:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20cockpit=5Fchat=20=E6=96=B0=E5=A2=9E=20d?= =?UTF-8?q?evops=20=E6=84=8F=E5=9B=BE=20=E2=80=94=20git/shell=20=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - INTENT_PROMPT 加 devops 意图描述 - 路由处理:提取操作指令,调 shell_exec 执行,返回成功/失败 --- wwwroot/api/cockpit_chat.dspy | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/wwwroot/api/cockpit_chat.dspy b/wwwroot/api/cockpit_chat.dspy index b3ea498..e0ba432 100644 --- a/wwwroot/api/cockpit_chat.dspy +++ b/wwwroot/api/cockpit_chat.dspy @@ -378,6 +378,7 @@ INTENT_PROMPT = """你是一个开发产线意图分类器。分析用户输入 - query: 查询当前状态 - skill_list: 列出已导入的企业开发技能(如"查看技能""有哪些skills") - skill_import: 导入技能文件(如"导入技能 /path/to/skill") +- devops: git/Shell 操作(如 git clone, git pull, 克隆仓库, 执行命令, 安装依赖) - chat: 开发相关的一般对话 - answer_question: 用户在回答角色Agent此前提出的问题(见「待客户回答的问题」) - out_of_scope: 完全无关软件开发 @@ -874,6 +875,15 @@ if action == 'send_message': agent_reply = f"✅ {msg}" else: agent_reply = f"❌ 导入失败:{msg}" + elif intent_type == 'devops': + description = intent.get('description', '') or message_text + workdir = ctx.get('workspace_dir', '') or '/d/pipeline/workspaces' + result = await shell_exec(description, workdir=workdir) + if result['rc'] == 0: + out = result['stdout'].strip() + agent_reply = f"执行成功。{'输出:' + out[:500] if out else '(无输出)'}" + else: + agent_reply = f"执行失败(rc={result['rc']}):{result['stderr'][:500] or result['stdout'][:500]}" else: # chat: general conversation messages = await _build_context(sor, iteration_id or ctx['iteration_id'], '',