## 版本概述 发布 **v2.2.1** 版本,核心聚焦于 **AI Agent 连续运维记忆合并、实体对齐演进与前端交互体验增强**。彻底解决在复杂运维场景下,连续排查导致工作日志碎片化刷屏、记忆提炼过于草率简写、配置更新冲突并存以及前端卡片展示等痛点。 --- ### 更新内容 1. **任务快照锚定与连续运维任务合并**: - 逆序定位本轮任务起点用户诉求,确保复杂长交互(超过 16 步)不丢失初始核心目标与显式参数; - 引入时序紧邻度与连续任务强合并指引(30分钟内),指导大模型优先采用 `mode: "update_latest"` 承前启后地合并上一阶段成果,彻底解决排障过程中工作日志碎片化与 10 条配额被刷爆的问题; - 数据库 `UserDBDO` 支持原子合并更新最新一条工作历程,并在模型缺省时自动容错兜底。 2. **知识实体对齐与版本平滑演进**: - 提炼时注入当前服务器已存的知识项与凭据清单,强制约束修改配置或更换凭据时复用完全相同的 key 名; - 结合底层 SQLite 原生 `UNIQUE(user_id, server_id, key)` 与 `ON CONFLICT DO UPDATE` 实现原子更新,杜绝同一配置产生多条冲突脏数据; - 支持 `action: "delete"` 标记,允许用户明确废弃某项实体时在后台原子清理。 3. **长短时记忆职责彻底解耦**: - 会话内摘要(`this.state.summary`)专职保留未完结的任务目标、用户决策与待办上下文,彻底剔除冗长具体的命令流水账; - System Prompt 中对“当前会话未决任务与决策摘要”与“服务器近期工作历程与操作备忘”进行语义与注入层隔离,消除同类信息双份冗余堆叠。 4. **真实凭据流通与通用协议规范**: - 彻底移除 Agent 工具输出中的破坏性正则硬脱敏代码,解除密钥与 Token 自动回填流转的阻碍; - 移除非标准 `reasoning_effort` 参数,仅保留标准 `temperature: 0.1`,杜绝 OpenAI 官方 GPT-4o 等模型报 HTTP 400 校验错误; - 前置清洗 `<think>` 思考标签,避免 DeepSeek-R1 / QwQ 等推理模型思考阶段的草稿代码块被错误截获; - 补充循环步数上限与异常终止时的阶段性记忆提炼兜底,并增加纯问候本地快速熔断与并发排队补偿。 5. **前端工作历程呈现与交互增强**: - 放宽提炼摘要字数限制至 100 字内(title 扩至 20 字内),引导大模型在不超过限制的前提下详实具体地记录排查背景、配置变更、服务状态及验证结果,消除草率简略; - 前端工作历程卡片应用 `-webkit-line-clamp: 2` 配合文本省略(`...`),保持整洁紧凑布局; - 支持鼠标悬停浮动展示完整文本 Tooltip,并支持点击直接展开/收起完整摘要内容。 --- ### 提交列表 - `d99bd7b` release: 发布 v2.2.1 AI Agent 连续记忆合并与交互增强版本 - `542381a` feat: 放宽工作历程摘要长度至100字并支持前端两行截断悬停与点击展开 - `8d55927` refactor: 重构与优化 AI Agent 上下文管理与长期记忆系统 --- ### 验证结果 全套本地门禁全部通过(`pnpm run verify`): - **TypeScript 类型检查**:双端全部通过(0 errors) - **单元与集成测试**:69 个测试文件、784 项用例全部通过(100% pass) - **前端生产构建**:Vite 生产构建与单文件 HTML 内联成功 - **Playwright E2E & 无障碍测试**:75 个端到端测试全部通过(100% pass)
44 lines
1.2 KiB
JSON
44 lines
1.2 KiB
JSON
{
|
|
"name": "cloudssh-frontend",
|
|
"version": "2.2.1",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc && vite build",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@codemirror/commands": "^6.11.0",
|
|
"@codemirror/lang-css": "^6.3.1",
|
|
"@codemirror/lang-html": "^6.4.12",
|
|
"@codemirror/lang-javascript": "^6.2.5",
|
|
"@codemirror/lang-json": "^6.0.2",
|
|
"@codemirror/lang-markdown": "^6.5.2",
|
|
"@codemirror/lang-python": "^6.2.1",
|
|
"@codemirror/lang-yaml": "^6.1.3",
|
|
"@codemirror/language": "^6.12.4",
|
|
"@codemirror/legacy-modes": "^6.5.3",
|
|
"@codemirror/search": "^6.7.1",
|
|
"@codemirror/state": "^6.7.1",
|
|
"@codemirror/view": "^6.43.9",
|
|
"@lezer/highlight": "^1.2.3",
|
|
"@xterm/addon-fit": "^0.11.0",
|
|
"@xterm/addon-search": "^0.16.0",
|
|
"@xterm/addon-web-links": "^0.12.0",
|
|
"@xterm/addon-webgl": "^0.19.0",
|
|
"@xterm/xterm": "^6.0.0",
|
|
"dompurify": "^3.4.13",
|
|
"marked": "^18.0.5",
|
|
"trzsz": "^1.1.6"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
"@tailwindcss/forms": "^0.5.11",
|
|
"autoprefixer": "^10.5.4",
|
|
"postcss": "^8.5.23",
|
|
"tailwindcss": "^3.4.19",
|
|
"typescript": "^5.7.0",
|
|
"vite": "^6.0.0"
|
|
}
|
|
}
|