Files
SenMeshNet/docs/system-overview.md
zhaolei 1bb5390263
Some checks failed
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
docs: add system overview and plan-management-and-alert-remediation v1.3 design doc
- system-overview.md: full platform summary for NetMesh v2.x

- plan-management-and-alert-remediation.md: dual-track alert response design with 26 decisions

- alertRecordStore.cjs: remove auto_recover per D25 (alerts must be manually closed)
2026-10-30 16:35:50 +08:00

16 KiB
Raw Permalink Blame History

NetMesh 系统总结

项目代号:Netcatty · 版本:v2.x · 日期:2026-10-30


一、项目定位

NetMesh(品牌名 Netcatty) 是一款 AI 原生的 SSH 客户端 / 网络运维终端 / 服务器管理平台,以"让 AI 帮你管服务器"为核心理念,面向开发者、运维工程师、DevOps 团队。

它不是一个纯终端工具,而是一个终端 + SFTP + 主机库 + 巡检监控 + 告警处置 + AI Agent + MCP Server + 云同步 + 插件生态的完整平台。


二、核心功能清单

2.1 主机与连接管理

功能 说明
多协议主机支持 SSH / Telnet / Mosh / ET(自研加密协议)/ 本地 Shell / Serial 串口 / 插件扩展协议
跳板机链路 多级跳板机链式连接,自动探测最优路径
代理配置 HTTP / SOCKS5 代理,每台主机独立或全局配置
算法覆写 不同主机支持不同加密算法、KEX、MAC 协商策略
主机分组与标签 任意层级分组、自定义标签,支持按分组批量操作
Host Key 管理 known_hosts 自动维护、指纹校验、信任策略配置
SSH Agent 转发 支持系统 SSH Agent 和内置 Agent
凭据安全存储 AES-GCM 加密存储私钥和密码,内存中零明文

2.2 终端能力

功能 说明
多终端分割 拖拽式工作区分割,水平/垂直/自由布局,支持标签页
xterm.js 6 渲染 WebGL 加速、图片渲染、搜索高亮、序列化回放
终端主题 内置 20+ 主题,支持自定义配色
命令历史 跨终端会话命令历史、模糊搜索、智能推荐
片段(Snippets) 常用命令片段库,一键插入,支持参数化模板
快捷键绑定 Vim/Emacs/自定义快捷键方案
防刷屏与截断 长输出自动截断 + 查看完整内容
终端录屏 会话录制为 JSON 序列化文件,离线回放

2.3 SFTP 文件管理

功能 说明
双栏文件浏览 本地/远程双栏同步滚动,拖拽上传下载
断点续传 大文件传输中断后自动续传
SCP 后端 原生 SCP 协议支持(自研后端,不依赖外部库)
文件搜索 递归搜索、按类型/大小/时间过滤
文件编辑 Monaco Editor 内置编辑,SFTP 远程编辑即时保存
传输中心 全局传输队列、速度显示、失败重试、并发控制
临时文件安全 所有下载到本地的临时文件通过专用 tempDir 管理,程序退出自动清理

2.4 端口转发

功能 说明
本地转发(L) 本地端口 → 远程主机端口
远程转发(R) 远程主机端口 → 本地端口
动态转发(SOCKS5) 本地 SOCKS5 代理 → 通过远程主机出网
隧道管理 多隧道并发、状态监控、自动重连、流量统计

2.5 巡检与监控

功能 说明
定时巡检调度 可配置周期、并发度、超时、重试策略
多设备类型适配 路由器 / 交换机 / 服务器 / 防火墙,每类设备独立采集适配器
巡检指标 CPU / 内存 / 磁盘 / 网络 / 进程 / 服务 / 端口 / GPU / Docker
健康评分 每台设备巡检后计算综合健康分
拓扑视图 大屏可视化监控,按告警等级着色,实时刷新
巡检报告 自动生成巡检报告,支持 AI 汇总(内置 AI 对巡检结果做自然语言总结)
远程 HTTP API 内置轻量 HTTP 服务器,支持外部系统调用巡检 API、获取告警、推送到大屏

2.6 告警系统(v2.x 新增)

功能 说明
告警规则引擎 指标阈值、持续时间、触发次数、告警等级(info/warning/critical)
多通道通知 Desktop 弹窗、Webhook(钉钉/企业微信/飞书/自定义)
告警中心页 活动告警列表、历史告警、ACK 确认、关闭、备注
规则分组 按设备类型、分组、标签批量绑定规则
AI 预案匹配(设计中) 告警触发后匹配预设的"值班员动作预案 + 操作级预案"双轨配置
AI 初始响应包(设计中) 告警触发时 AI 自动生成结构化响应包,嵌入大屏弹窗,值班员可直接转发运维群
聚合升级(设计中) 时间窗口内多台设备同类型告警自动升级
AI 处置执行(设计中) 预案中的可执行步骤由 AI Agent 自动/半自动执行

2.7 AI Agent 系统(核心差异化能力)

能力 说明
内置 AI 对话(Catty) 侧边栏 AI 对话面板,多厂商 LLM 接入
AI 多主机编排 一个指令同时操作多台主机("所有核心交换机 show version")
AI 自动执行命令 三种执行权限:observer(只看不写)/ confirm(写需确认)/ auto(全自动)
安全审批机制 危险命令自动拦截、执行前弹窗审批、审批记录审计
AI 上下文感知 自动知道当前终端会话、当前主机、当前告警、巡检历史
AI 压缩与记忆 长对话自动摘要压缩,413 Token 超限自动降级处理
Codex App Server 实验性 Codex 持久化运行时,支持原生审批、线程/Turn 管理

2.8 MCP Server(Model Context Protocol)

能力 说明
内置 MCP stdio 服务器 让 Claude Desktop / Cursor / Cline / Codex 等外部 AI 代理操作 NetMesh 连接的主机
能力暴露 30+ 目录命令(终端/SFTP/Vault/端口转发/巡检/片段/harness)通过统一的 RPC 分发
权限控制 MCP 会话的 observer / confirm / auto 三级模式
MCP Tool Registry 代码生成驱动,新增能力自动暴露到 MCP

2.9 云同步

能力 说明
多后端支持 GitHub Gist / Google Drive / OneDrive / S3 / WebDAV
CRDT 收敛同步 自研无冲突复制数据类型,支持多端并发编辑收敛
端到端加密 所有同步数据 AES-GCM 加密,密钥本地派生
同步范围 主机库 / 密钥 / 片段 / 分组 / 标签 / 设置
冲突解决 自动检测冲突、合并、或提示手动选择

2.10 插件系统

能力 说明
插件包格式 .ncpkg 格式,原子发布、版本化、沙箱运行
沙箱隔离 普通插件运行在 BrowserWindow 沙箱 + 离线网络
Node-only 插件 高级开发模式:utilityProcess 运行、有限 Node API
插件 RPC PluginRpcRouter 负责请求关联、取消、超时、流量限制
插件安全 禁止访问本地文件系统、禁止连接外网、插件间完全隔离

2.11 其他

能力 说明
应用锁 Windows Hello / 系统级密码锁
主题与外观 明暗主题、强调色、终端主题独立配置
国际化 多语言框架
键盘快捷键 全局快捷键可自定义
数据导出/导入 主机库、密钥、片段 JSON 格式导入导出

三、技术创新点

3.1 架构创新

三层解耦架构(Domain → Application State → UI)

  • Domain 层是纯逻辑,零副作用(workspace 树操作、CRDT 合并、发行版归一化)
  • Application State 层是状态拥有者,持久化边界清晰(~120 个 hooks,状态变更统一经过 hooks)
  • UI 层纯展示,不包含业务逻辑
  • 结果:测试粒度细、复用性强、AI Agent 和 MCP Server 可以独立调用 Domain 层能力

双运行时架构

  • 主进程:CommonJS .cjs,IPC bridge + SSH/SFTP + 插件宿主
  • 渲染层:ESM + TypeScript + React 19 + Vite 7
  • 两套模块系统分离但通过 preload API 严格对接

3.2 AI Agent Harness(最有特色的创新)

专为终端运维场景设计的 AI 运行时——不是通用 ChatBot,而是一个能理解多主机、多会话、多告警上下文的 Agent 编排引擎:

子系统 创新
AgentRuntime Turn 生命周期管理、trace 事件分发、每 Turn 独立的 ToolOutputStore + ToolResultDedup(解决长输出工具结果重复读取的问题)
上下文预算与压缩 contextBudget + compactionPruner + staleContextPruner 三套机制:413 Token 超限自动压缩、过期工具结果自动裁剪、步骤间增量压缩
动态 Threshold 上下文预算阈值不是固定值,而是根据模型能力和会话深度动态调整
SessionState 重新注入 AI 多轮对话中维护 session 状态(当前主机链、活跃端口转发、最近告警),每轮自动注入 system prompt
Capability Tools 注册表 从 electron/capabilities/catalog/ 代码生成(npm run generate:capability-tools),一套能力目录自动生成 Catty/MCP/CLI 三路工具暴露
白名单+权限分级 预置命令目录(command_catalog)+ 三种执行权限(observer/confirm/auto)+ blocked_patterns 黑名单,三重防线确保 AI 不会执行危险命令
Prompt 版本化 System Prompt 有版本号,便于后续迭代和 A/B 测试

3.3 MCP + CLI + RPC 三通路统一

一套能力目录(30+ 命令),自动生成三个暴露面:

electron/capabilities/catalog/ + codegen/toolSurfaces.cjs
          │
          ├──► Catty Sidebar Tools (cattyToolSpecs.json)
          ├──► MCP stdio Server (netcatty-mcp-server.cjs)
          └──► netcatty-tool-cli (CLI 工具链)

创新:新增一个能力命令,只要在 catalog 里加一条 entry(描述、device_types、agentKinds、surfaces),三个通路自动暴露。不需要改 MCP handler、不需要写 CLI 代码、不需要改 prompt。

3.4 CRDT 收敛同步(自研)

不同于市面上大多数"最后写入胜出"的同步方案,NetMesh 用 CRDT(无冲突复制数据类型) 实现多端同步:

  • 支持主机库、密钥、片段、分组等结构化数据的并发编辑收敛
  • 网络分区恢复后自动合并,不会丢数据,不会产生冲突需要手动选
  • 端到端加密 + 数据分片 + 版本向量
  • 多后端统一适配(Gist/Drive/OneDrive/S3/WebDAV)

3.5 插件安全模型

BrowserWindow 沙箱 + utilityProcess + RPC 路由三层隔离:

  • 普通插件运行在 BrowserWindow 的沙箱 session,离线网络(只能连 netcatty-plugin:// 协议)
  • 高级 Node-only 插件运行在独立 utilityProcess
  • 所有插件对主进程的调用必须经过 PluginRpcRouter(请求关联、取消、超时、流量限制、协议失败隔离)
  • 插件包 .ncpkg 原子发布,安装时校验完整性,删除时全量清理

3.6 告警双轨预案体系(设计中)

行业内少见的设计——预案同时包含「值班员动作流程」和「AI 操作步骤」两个层级,绑定在一个对象里:

  • 值班员动作预案(human_action_guide):什么时候通知谁、什么情况必须升级、处置前要做哪些防护、处置后要做哪些归档
  • 操作级预案(remediation):具体命令步骤,每个步骤带三级执行权限(auto/confirm/manual_only)
  • AI 初始响应包:告警触发时 AI 自动生成结构化响应包,嵌入监控大屏弹窗,值班员一键复制转发运维群

四、AI 使用全景

4.1 AI 在系统中的定位

AI 不是一个"附加功能",而是系统的核心运维能力层。它能:

理解告警 → 匹配预案 → 生成响应包 → 自动执行安全命令 → 协助处置 → 归档总结

4.2 AI 的三种入口

入口 面向谁 触发方式
Catty 侧边栏对话 所有用户 主动发起对话
MCP Server(外部 Agent) 高级用户(Claude Desktop/Cursor) 外部 Agent 自动调用
自动响应包生成 值班员(被动接收) 告警触发时系统自动生成(不需要人触发)

4.3 AI 能做什么

(1)运维执行

  • ✅ 读操作:show 命令、display 命令、df -h、ps aux、cat 配置文件(observer 模式自动执行)
  • ✅ 写操作(需确认):重启服务、改配置、调阈值、采集诊断(confirm 模式弹窗审批后执行)
  • ❌ 危险操作拦截:shutdown、reboot、rm -rf /、reload(blocked_patterns 自动拦截)

(2)多主机编排

  • 一条指令同时操作 N 台主机:"所有 Linux 服务器检查磁盘使用率"
  • 自动分组:"核心区的交换机" → 自动匹配 catalog_type + tier
  • 聚合输出:多台主机的命令执行结果汇总成一张表

(3)巡检报告 AI 汇总

每轮巡检结束后,内置 AI 自动生成自然语言总结:

"本轮巡检覆盖 23 台设备,2 台交换机 CPU 高负载(huawei_h3c_switch-A: 91%,huawei_h3c_switch-B: 88%),3 台服务器磁盘使用率超过 80%,1 台防火墙健康分偏低(62分),建议优先处理核心区交换机 CPU 告警。"

(4)告警 AI 初始响应包(设计中)

告警触发后,AI 自动生成结构化包(设备画像 + 快速 checklist + 匹配预案 + AI 推断的可能原因),直接嵌入监控大屏弹窗:

值班员看到弹窗 → Tab 切到"🤖 AI 响应包" → 一键复制 → 转发运维群。大家拿到完整信息,不用自己翻拓扑图、查巡检历史。

(5)预案 AI 描述生成(设计中)

运维说一句话,AI 翻译成结构化预案草稿:

运维:"核心交换机 CPU 超过 90% 持续 5 分钟,先 display cpu-usage 确认,持续不降就重启核心接口" AI 生成:符合 device_plan schema 的 JSON 草稿 → 三重校验(schema + command_catalog 交叉 + blocked_patterns)→ 保存为 draft → 运维微调 → 启用。

4.4 AI 的安全设计

层级 机制
命令白名单 command_catalog 目录(预置命令 ID + 设备类型 + risk_level + 审计记录)
前缀匹配 allowed_commands 正则前缀匹配(show *、display *、df -h)
黑名单反查 blocked_patterns(shutdown、reload、rm -rf /)优先级高于白名单
执行权限分级 observer(只读自动)/ confirm(写需弹窗审批)/ auto(全自动)
审批流 Catty 的 cattyToolApproval.ts + Codex App Server 的 native 审批 + MCP 的 setupMcpApprovalBridge
Trace 审计 每步 ToolOutput 都记录 traceStore,包含 usage / performance / tool input output
输出截断与持久化 大输出自动截断存 preview,完整内容 spill 到 tool_output_read;跨 Turn 持久化
上下文隔离 每个 chat session 独立 context、独立 plan_snapshot、独立 turn_state

4.5 AI 多厂商适配

类别 已适配
内置 SDK 集成 MiniMax(主力 Catty Provider)
外部 SDK IPC Claude(@anthropic-ai/sdk)、Codex(@openai/codex-sdk)、Cursor、Copilot、Grok、OpenCode
Codex App Server 实验性,codex app-server --stdio 持久化运行时
Vercel AI SDK v7 Catty 主路径,streamText + tool calling + context management

五、项目规模与工程数据

指标 数值
技术栈 Electron 42 + React 19 + Vite 7 + TypeScript 5.9 + xterm.js 6
模块系统 主进程 CommonJS .cjs / 渲染层 ESM + TS 双轨
Workspace npm workspaces(packages/ 插件契约/SDK/CLI)
依赖 ~100 npm 包(ssh2、ssh2-sftp-client、node-pty、Tailwind CSS 4、Radix UI、Monaco Editor、ajv、@mcp/sdk、vercel ai sdk)
测试 Node --test + tsx,domain 纯函数 / state hooks / 主进程 bridge 都有伴生测试
代码生成 能力目录 → MCP 工具 / Catty 工具 / CLI 三路暴露(npm run generate:capability-tools)
跨平台 macOS / Windows / Linux 三端