From 15106e7d00450d2c0df8a8b9c46ed1229c9882b5 Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Tue, 7 Jul 2026 18:17:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(branding):=20=E5=B0=86=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=90=8D=E7=BB=9F=E4=B8=80=E4=B8=BA=20Astrion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 前端页面标题、登录/注册页、左侧栏、聊天头部、教程欢迎语全部改为 Astrion - CLI 欢迎面板与状态栏改为 Astrion CLI - 后端启动日志与 setup 向导改为 Astrion - package.json 与 README 标题同步更新 - 主 system prompt 增加 Astrion 自我介绍,视觉模型 prompt 文件名从 qwenvl 改为 vl - 项目记忆与 AGENTS.md/CLAUDE.md 新增产品名说明 --- .agents/memory/astrion_naming.md | 48 +++++++++++++++++++ AGENTS.md | 10 ++++ CLAUDE.md | 2 +- README.md | 2 +- cli/src/components.tsx | 4 +- core/main_terminal_parts/context/messages.py | 4 +- core/main_terminal_parts/context/prompt.py | 2 +- main.py | 2 +- package.json | 2 +- prompts/main_system.txt | 4 +- ...n_system_qwenvl.txt => main_system_vl.txt} | 4 +- scripts/setup.py | 4 +- static/demo/minimal-mode-v2/index.html | 2 +- static/demo/minimal-mode/index.html | 2 +- static/demo/style/1.html | 2 +- static/demo/style/3.html | 2 +- static/index.html | 2 +- static/login.html | 2 +- static/mobile-overlay-demo.html | 2 +- static/mobile-overlay-fab.html | 2 +- static/register.html | 2 +- static/src/auth/LoginApp.vue | 2 +- static/src/components/chat/ChatArea.vue | 6 +-- static/src/components/panels/LeftPanel.vue | 2 +- static/src/stores/tutorial.ts | 2 +- static/terminal.html | 4 +- 26 files changed, 92 insertions(+), 30 deletions(-) create mode 100644 .agents/memory/astrion_naming.md rename prompts/{main_system_qwenvl.txt => main_system_vl.txt} (97%) diff --git a/.agents/memory/astrion_naming.md b/.agents/memory/astrion_naming.md new file mode 100644 index 0000000..21034c9 --- /dev/null +++ b/.agents/memory/astrion_naming.md @@ -0,0 +1,48 @@ +--- +name: astrion_naming +description: 当需要了解或引用本项目的品牌名称、产品名 Astrion 的含义与来源时,应该索引本记忆 +--- + +# 项目名称 / 产品名:Astrion + +## 决策记录 +- **暂定名称**:Astrion +- **决策时间**:2026-07-07 +- **命名方向**:人格化 + 宇宙现象/天体 + 科技意象 +- **当前状态**:暂定,后续如需变更请同步更新本记忆、AGENTS.md 与 claude.md + +## 名称含义 + +**构词** +- **Astr-**:来自希腊语 *astron*,意为“星星 / 天体 / 宇宙” +- **-ion**:科技命名中常见的粒子/状态后缀(如 photon、electron、neutron、ion) + +**字面意象** +> 星之子、星际粒子、来自宇宙尘埃的微小发光体。 + +## 表达特点 + +| 特点 | 解读 | +|------|------| +| 科技感 | `-ion` 后缀自带物理/科技联想 | +| 宇宙感 | `Astr-` 词根直接指向星空 | +| 轻盈感 | 粒子暗示微小、快速、自由穿行 | +| 能量感 | ion(离子)带电,暗示活跃、驱动、连接 | +| 可人格化 | 三音节 `/ˈæstriən/`,发音接近 Orion、Damion,适合作为“他/她” | +| 中性 | 不偏男性或女性,适用面广 | + +## 品牌叙事参考 + +1. **连接者**:像星际间传递信号的粒子,把人类意图传递到工具、文件、终端、子智能体之间。 +2. **从混沌中组织秩序**:宇宙尘埃在引力下聚集成恒星;Astrion 把零散任务聚合成可执行结果。 +3. **渺小但明亮**:单个粒子微不足道,但携带能量、能引发连锁反应——对应 Agent 虽小,却能撬动复杂系统。 + +## 中文参考 + +- 全称音译:**阿斯特里恩** +- 简称候选:**星子**(对应 astron + particle,更顺口) + +## 同步位置 + +- 项目规范:`AGENTS.md` +- Claude Code 指南:`claude.md` diff --git a/AGENTS.md b/AGENTS.md index 47f7817..06ab334 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,6 +7,16 @@ > 和用户交流时默认使用中文。 +## 0) 项目名称 + +本项目(仓库 `agents`)的暂定产品名为 **Astrion**。 + +- **构词**:`Astr-`(希腊语 *astron*,星星/天体)+ `-ion`(粒子/状态后缀,如 photon、electron)。 +- **意象**:星之子、星际粒子、来自宇宙尘埃的微小发光体。 +- **寓意**:Agent 像星际间传递信号的粒子,把人类意图传递到工具、文件、终端与子智能体之间;同时把零散任务像星尘聚合成恒星一样,聚合成可执行结果。 +- **状态**:暂定名,后续若变更需同步更新 `AGENTS.md`、`claude.md` 与项目记忆 `astrion_naming`。 +- **中文参考**:阿斯特里恩;简称可考虑 **星子**。 + ## 1) 当前项目结构(按代码现状) - **后端入口** diff --git a/CLAUDE.md b/CLAUDE.md index eecd6f1..00cfb3f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -多用户 AI Agent 系统,为每个登录用户提供独立的 Docker 容器环境。支持终端交互、文件操作、对话管理和实时监控。主要用于学习和实验"智能体 + 真实 Dev Workflow",代码大量由 AI 生成。 +多用户 AI Agent 系统,产品暂定名为 **Astrion**(`Astr-` 星星/天体 + `-ion` 粒子后缀,意象为“星之子、星际粒子”)。为每个登录用户提供独立的 Docker 容器环境,支持终端交互、文件操作、对话管理和实时监控。主要用于学习和实验"智能体 + 真实 Dev Workflow",代码大量由 AI 生成。 ## Core Architecture diff --git a/README.md b/README.md index 48e450a..3b77ba6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# AI Agent 系统 +# Astrion 一个功能完整的 AI 智能体系统,支持多模态交互、子智能体协作、实时终端操作和丰富的工具集成。 diff --git a/cli/src/components.tsx b/cli/src/components.tsx index 84adc61..175d143 100644 --- a/cli/src/components.tsx +++ b/cli/src/components.tsx @@ -97,7 +97,7 @@ function isWideCodePoint(code: number): boolean { export function WelcomePanel({ status }: { status: CliStatus }) { return ( - Agents + Astrion Welcome back! {status.model} · {status.runMode} @@ -279,7 +279,7 @@ export function WorkspacePrompt({ cwd, selectedIndex }: { cwd: string; selectedI export function StatusPanel({ status }: { status: CliStatus }) { return ( - {'>_ Agents CLI'} + {'>_ Astrion CLI'} diff --git a/core/main_terminal_parts/context/messages.py b/core/main_terminal_parts/context/messages.py index 237e519..4306034 100644 --- a/core/main_terminal_parts/context/messages.py +++ b/core/main_terminal_parts/context/messages.py @@ -112,13 +112,13 @@ class MessagesMixin: # 根据当前模型多模态能力选择系统提示。system prompt 按对话冻结; # 工具 schema 保持动态,由 define_tools 每轮根据真实状态生成。 current_model = getattr(self, "model_key", None) - prompt_name = "main_system_qwenvl" if (model_supports_image(current_model) or model_supports_video(current_model)) else "main_system" + prompt_name = "main_system_vl" if (model_supports_image(current_model) or model_supports_video(current_model)) else "main_system" model_key = getattr(self, "model_key", None) prompt_replacements = get_model_prompt_replacements(model_key) def _build_main_system_prompt() -> str: system_prompt_template = self.load_prompt(prompt_name) - # main_system.txt / main_system_qwenvl.txt 仅使用 {model_description} + # main_system.txt / main_system_vl.txt 仅使用 {model_description} return system_prompt_template.format( model_description=prompt_replacements.get("model_description", "") ) diff --git a/core/main_terminal_parts/context/prompt.py b/core/main_terminal_parts/context/prompt.py index 98d0807..5eb942a 100644 --- a/core/main_terminal_parts/context/prompt.py +++ b/core/main_terminal_parts/context/prompt.py @@ -125,4 +125,4 @@ class PromptMixin: if prompt_file.exists(): with open(prompt_file, 'r', encoding='utf-8') as f: return f.read() - return "你是一个AI助手。" + return "你是 Astrion,一个智能助手。" diff --git a/main.py b/main.py index a56b2a0..68e8313 100644 --- a/main.py +++ b/main.py @@ -27,7 +27,7 @@ class AgentSystem: async def initialize(self): """初始化系统""" print("\n" + "="*50) - print("🤖 AI Agent 系统启动") + print("🤖 Astrion 启动") print("="*50) # 1. 获取项目路径 diff --git a/package.json b/package.json index 32d2858..1361df5 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "ai-agent-frontend", + "name": "astrion-frontend", "version": "4.1.0", "private": true, "type": "module", diff --git a/prompts/main_system.txt b/prompts/main_system.txt index 263d15f..4b7b30e 100644 --- a/prompts/main_system.txt +++ b/prompts/main_system.txt @@ -1,6 +1,8 @@ +你是 Astrion,一个运行在云端服务器/用户电脑(根据工作区信息判断)上的全能型智能助手,专为**普通用户和开发者**设计。 + {model_description} -你是一名运行在云端服务器/用户电脑(根据工作区信息判断)根据上的全能型智能助手,专为**普通用户和开发者**设计。你的用户可能是没有编程背景的业务人员,也可能是专业开发者——你需要根据对话上下文灵活调整表达方式: +你的用户可能是没有编程背景的业务人员,也可能是专业开发者——你需要根据对话上下文灵活调整表达方式: - **对普通用户**:使用通俗易懂的语言,避免技术黑话,主动解释操作步骤 - **对开发者**:可以使用专业术语,提供技术细节和最佳实践建议 diff --git a/prompts/main_system_qwenvl.txt b/prompts/main_system_vl.txt similarity index 97% rename from prompts/main_system_qwenvl.txt rename to prompts/main_system_vl.txt index b22a1c0..9a4b8dc 100644 --- a/prompts/main_system_qwenvl.txt +++ b/prompts/main_system_vl.txt @@ -1,6 +1,8 @@ +你是 Astrion,一个运行在云端服务器/用户电脑(根据工作区信息判断)上的全能型智能助手,专为**普通用户和开发者**设计。 + {model_description} -你是一名运行在云端服务器/用户电脑(根据工作区信息判断)上的全能型智能助手,专为**普通用户和开发者**设计。你的用户可能是没有编程背景的业务人员,也可能是专业开发者——你需要根据对话上下文灵活调整表达方式: +你的用户可能是没有编程背景的业务人员,也可能是专业开发者——你需要根据对话上下文灵活调整表达方式: - **对普通用户**:使用通俗易懂的语言,避免技术黑话,主动解释操作步骤 - **对开发者**:可以使用专业术语,提供技术细节和最佳实践建议 diff --git a/scripts/setup.py b/scripts/setup.py index edd8de2..e7c816f 100644 --- a/scripts/setup.py +++ b/scripts/setup.py @@ -207,7 +207,7 @@ def _write_custom_models(target_path: Path, entry: dict) -> Path | None: def run_wizard(force: bool = False) -> int: print("=" * 60) - print(" AI Agent 首次启动初始化向导") + print(" Astrion 首次启动初始化向导") print("=" * 60) print("逐项设置启动前必须确定的内容,每项可回车使用 [默认值]。") print() @@ -311,7 +311,7 @@ def run_wizard(force: bool = False) -> int: def main() -> int: - parser = argparse.ArgumentParser(description="AI Agent 首次启动初始化向导") + parser = argparse.ArgumentParser(description="Astrion 首次启动初始化向导") parser.add_argument( "--force", action="store_true", diff --git a/static/demo/minimal-mode-v2/index.html b/static/demo/minimal-mode-v2/index.html index 3a18096..15933a6 100644 --- a/static/demo/minimal-mode-v2/index.html +++ b/static/demo/minimal-mode-v2/index.html @@ -30,7 +30,7 @@ - AI Assistant + Astrion diff --git a/static/demo/minimal-mode/index.html b/static/demo/minimal-mode/index.html index feafe4a..b0ed540 100644 --- a/static/demo/minimal-mode/index.html +++ b/static/demo/minimal-mode/index.html @@ -30,7 +30,7 @@ - AI Assistant + Astrion diff --git a/static/demo/style/1.html b/static/demo/style/1.html index 62bca80..e436343 100644 --- a/static/demo/style/1.html +++ b/static/demo/style/1.html @@ -68,7 +68,7 @@