From 9e42c69d0f27713acd3866e07ef88570fd413930 Mon Sep 17 00:00:00 2001 From: Mimikko-zeus Date: Wed, 7 Jan 2026 12:50:50 +0800 Subject: [PATCH] feat: add system environment information retrieval to LocalAgent - Introduced a new method to gather and display system environment details, including OS, Python version, architecture, home directory, workspace path, and current directory. - Updated system prompts in chat messages to include user environment information, enhancing the context for responses. - Improved guidance prompts to provide tailored instructions based on the user's operating system. --- app/agent.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/app/agent.py b/app/agent.py index e86af58..f1cc4ee 100644 --- a/app/agent.py +++ b/app/agent.py @@ -4,6 +4,8 @@ LocalAgent 主应用类 """ import os +import sys +import platform import tkinter as tk from tkinter import messagebox from pathlib import Path @@ -223,11 +225,50 @@ class LocalAgentApp: self.chat_view.set_input_enabled(True) + def _get_system_environment_info(self) -> str: + """获取当前系统运行环境信息""" + info_parts = [] + + # 操作系统信息 + os_name = platform.system() + os_version = platform.version() + os_release = platform.release() + info_parts.append(f"操作系统: {os_name} {os_release} ({os_version})") + + # Python 版本 + python_version = sys.version.split()[0] + info_parts.append(f"Python版本: {python_version}") + + # 系统架构 + arch = platform.machine() + info_parts.append(f"系统架构: {arch}") + + # 用户主目录 + home_dir = Path.home() + info_parts.append(f"用户主目录: {home_dir}") + + # 工作空间路径 + info_parts.append(f"工作空间: {self.workspace}") + + # 当前工作目录 + cwd = os.getcwd() + info_parts.append(f"当前目录: {cwd}") + + return "\n".join(info_parts) + def _build_chat_messages(self) -> List[Dict[str, str]]: """构建带上下文的消息列表""" - system_prompt = """你是一个智能助手,可以回答各种问题。请用中文回答。 + env_info = self._get_system_environment_info() + + system_prompt = f"""你是一个智能助手,可以回答各种问题。请用中文回答。 -如果用户的问题涉及之前的对话内容,请结合上下文进行回答。""" +## 用户运行环境 +{env_info} + +## 注意事项 +- 如果用户的问题涉及之前的对话内容,请结合上下文进行回答 +- 根据用户的操作系统和环境,给出适合其系统的建议和解答 +- 如果涉及文件路径,请使用适合用户操作系统的路径格式""" messages = [{"role": "system", "content": system_prompt}] messages.extend(self._chat_context) @@ -263,15 +304,23 @@ class LocalAgentApp: client = get_client() model = os.getenv("CHAT_MODEL_NAME") or os.getenv("GENERATION_MODEL_NAME") + # 获取环境信息 + env_info = self._get_system_environment_info() + # 构建专门的操作指导 Prompt - system_prompt = """你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务(如软件设置、系统配置、GUI操作等)。 + system_prompt = f"""你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务(如软件设置、系统配置、GUI操作等)。 +## 用户运行环境 +{env_info} + +## 回答要求 请提供清晰、详细的操作步骤指导: 1. 使用编号列表,步骤清晰 2. 如果有多种方法,列出最常用的1-2种 -3. 如果涉及不同操作系统/软件版本,说明适用范围 +3. **重要**: 根据用户的操作系统({platform.system()})给出针对性的操作指导 4. 可以适当配合说明截图位置或界面元素名称 5. 如果操作有风险,给出提醒 +6. 如果涉及文件路径,使用适合用户系统的路径格式 用中文回答。"""