# WaLiSSH 智能 AI 运维软件服务

作者:小傅哥
博客:https://bugstack.cn (opens new window)
项目:https://t.zsxq.com/s83De (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥!

耗时1个月,迭代了13个版本,积累了近≈1万个,用户安装使用。WaLiCode「https://walicode.xiaofuge.cn (opens new window) 」 一款小傅哥基于自研的 AI IDE 本地运行 AI 编程助手!那么,现在我要为你做一个这样的课程版新项目! 死鬼,开心吗🐴!

呐,新项目是什么?🤔

新项目是小傅哥自研的 WaLiSSH,一款本地运行的 AI SSH 运维助手。

该项目,以 WaLiCode 的架构设计为内核标准,使用 Spring AI + Google ADK + Tauri(+Typescript),结合运行时智能体设计,涵盖;Agent WorkFlow上下文管理(对话追踪、搜索、提示词)意图识别(+LLM)混合窗口裁剪动态提示词( Prompt 组装器、里程碑追踪)等,核心设计,构建一整套 AI Agent 智能体服务工具。

用途呢,除了基本的 SSH +Sftp 能力外,你可以为 WaLiSSH 项目工程,扩展添加 mcp、skills 技能等,为你的服务器做智能化运维服务管理。如;日志分析系统健康度巡检内存泄漏排查复杂项目链路耗时处理项目压测优化建议等等场景。这个工具,就是你穿插在云服务器上的智能机器人。现在它已经可以替换我电脑上的其他 SSH 工具了,嘎嘎好用!

说白了,AI Agent 要解决的就是一整条研发交付路径服务,包括;研发设计(spec规约)、工程编码(WaLiCode)、项目上线/运维(WaLiSSH)等,而本次的项目,其实完全可以在学习后,扩展出Coding能力。

如果你感受过 WaLiCode (opens new window) 有多强悍,那么你就知道会学习多少东西多硬了!(技术高、简历硬、面试能力又高又硬)好啦,接下来,我要放一些项目演示效果啦!🌶

--- 演示视频

🧧扫码加入「星球:码农会锁」,学习 walissh 实战项目。此外还可以获得已完成的20个项目(含6个AI项目 + 1个即将开启的)。地址:https://t.zsxq.com/s83De (opens new window)

下文有项目运行演示和详细介绍。关注小傅哥の码场「B站」,最近也会发布介绍视频。此次项目,会在本周末发出当前全部源码 + 运行说明,让心急的兄弟,先把热豆腐吃了。随后课程章节内容,会逐步更新。💐

# 一、软件启动

# 1. 软件信息

  • 服务端(walissh-server);Java jdk 17、maven 3.8.x、spring ai 1.1.5、google adk 1.2.0、mysql 8.x(存储ssh连接、上下文数据用于意图识别增强),(小傅哥已为此框架做了脚手架项目,可以快速搭建服务端)。注意,在项目里配置 LLM baseUrl、apikey 才可以使用。
  • 客户端(walissh-client);nodejs 20+、Tauri、React、Typescript(tauri 可以构建 Windows、mac、linux、安卓、ios,安装包)https://v2.tauri.org.cn/ (opens new window)

你可以获取源码后,可以通过 IntelliJ IDEA 启动服务端。之后使用 WebStorm 打开客户端(会自动启动构建 run npm install),之后在客户端命令终端里执行 docs/dev-ops 下(start-dev.sh/start-dev.bat)脚本。即可启动软件。

后续课程会提供项目学习方式、项目教程、部署视频等,这些内容都会手把手教你学习下来。

# 2. 安装完成

  • 对话;产品功能如图所示,首先需要通过 SSH 添加你的服务器。之后你可以在对话输入框,询问;检查服务器状态安装docker了吗docker里都安装了什么软件,占用了多少资源查看下系统配置的elk日志帮我安装jdk17、nodejs等等,你都可以操作起来了,再也不用一堆堆的写命令了。当你执行询问后,命令终端,会自动执行分析和执行你的命令,最终给出分析结果。
  • 文件;你还可以点击文件、查看系统的运行日志、配置文件、添加 nginx 脚本等内容,这些内容也可以选择后加入到对话框。让具体的分析系统运行时候的报错,或者配置的 nginx 为啥访问不了等场景问题。
  • sftp;该软件还有 sftp 这样的基础能力,但更加优化,你可以打开本地多个文件夹,选择不同的文件夹,上传文件。来回切换更加方便。

此外,还有很多小细节的细腻的功能,如命令辅助,这里列出了常用命令,可以让小白伙伴更加清楚且便捷的使用。还有历史对话,收藏对话(命令)等。

# 二、软件使用

# 1. 基础设置

  • 首先,在设置里有个通用设置,这里的服务端地址,就是 walissh-server 部署的地址。如果你部署在云服务器,那么这个默认地址也可以配置成云服务器。
  • 之后,如果你想改变外观主题或者终端字体,可以分别调整设置。
  • 最后,是关于,这里写了相关的技术栈,整个项目也是基于此语言进行构建的。

# 2. 辅助命令

  • 连接服务器,在终端页有相关的辅助命令,你可以直接使用。
  • 右侧是对话输入框,以及对话展示栏。提供了一些案例,也可以点击后,测试验证。

# 3. 智能分析

  • 你可以在对话框输入框,发送各类运维相关的信息。之后 ssh ai agent 会自动化的分析,并执行脚本命令(你可以看到命令的执行,风险命令已被限制不会执行)。
  • 命令逐个执行完毕后,你会得到一个分析结果,以及会提示你是否做后续的其他操作。

这个东西是我一直想要的,但市面上是真没有!我太需要一个智能 ssh 服务了,可以帮我这类的请运维工程师,做很多工作。甚至你像做个 redis 集群,也可以帮你配置完成。通过多个 ssh 终端对话,让 ai agent 智能体,依次的配置并验证检查。

# 4. 文件目录

  • 这是一个非常有用的功能,我们把文件作为项目理解,你可以打开项目,并查看每个文件。包括像是你部署的项目,运行的日志,也可以查看、编辑,还能选中后对话,让智能体分析这是什么报错。
  • 在此页面里,还分区展示了终端和文件,简直太舒服了!完全是人性化设计!(我已经在nas上部署了一套 walissh-server,日常的服务器运维,使用这套东西,简直太爽了 😄)

# 5. sftp(上传/下载)

  • 这是一个 sftp 的基础能力,但小傅哥这里也做了扩展,可以打开做个文件夹,之后切换的进行使用。美滋滋!
  • 我们日常在做上传文件的时候,往往文件都是在各类文件夹里,每次打开后再切换都比较麻烦,所以做了这样的能力。

# 三、课程信息

重要信息;本周末(10.16 ~ 10.17)先上传课程完整的全部代码(+启动部署教程)。之后逐步按照教学方式,在拆分讲解项目的需求设计实现部署等系列内容。该项目会使用星球「码农会锁」的 AI Agent 脚手架 (opens new window)项目进行快速搭建,这几天时间可以快速学习补充。

# 1. 项目工程

  • 项目分为服务端 walissh-server、客户端 walissh-client,所有的核心智能体能力,都在服务端里。客户端主要负责基础软件功能和api接口服务对接。
  • 服务端 walissh-server 采用 DDD 架构设计(非常方便的管理智能体),domain 层负责智能体装配、运行时设计,之后 case 层负责ReAct 执行编排,以及接口结果的异步反馈。

项目工程地址会在本课程目录中更新:https://t.zsxq.com/s83De (opens new window)

# 2. 核心领域(运行时 Agent)

walissh-server-domain/src/main/java/cn/bugstack/ai/domain/agent/
├── service/
│   ├── IChatContextService.java              上下文管理领域服务接口
│   ├── IIntentService.java                   意图识别领域服务接口
│   ├── IIntentEnhancerService.java           意图增强领域服务接口
│   ├── IPromptService.java                   提示词构建领域服务接口
│   ├── armory/                               智能体装配(google adk)
│   ├── context/                              上下文记忆服务实现包
│   │   ├── ChatContextService.java           领域服务实现
│   │   ├── provider/
│   │   │   ├── ContextProvider.java          Provider 接口
│   │   │   ├── TerminalStateProvider.java    终端状态(OS、用户、目录)
│   │   │   ├── TaskProvider.java             当前任务
│   │   │   ├── MilestoneProvider.java        里程碑事件
│   │   │   └── ToolResultProvider.java       工具结果摘要
│   │   └── reducer/
│   │       ├── MessageReducer.java           Reducer 接口
│   │       ├── PriorityReducer.java          优先级裁剪
│   │       ├── SlidingWindowReducer.java     滑动窗口裁剪
│   │       └── HybridReducer.java            混合裁剪(默认)
│   ├── intent/                               意图识别服务实现包
│   │   ├── IntentService.java                领域服务实现
│   │   ├── ContextTracker.java               对话上下文追踪器 (内部组件)
│   │   └── classifier/
│   │       ├── IntentClassifier.java         分类器接口
│   │       ├── RuleIntentClassifier.java     第1层:规则分类
│   │       └── LLMIntentClassifier.java      第2层:LLM 分类
│   ├── enhance/                              意图增强服务实现包
│   │   ├── IntentEnhancerService.java        领域服务实现
│   │   └── processor/
│   │       ├── SignalExtractor.java          信号提取 (内部组件)
│   │       └── ContextSearch.java            服务器上下文搜索 (内部组件)
│   ├── prompt/                               提示词构建服务实现包
│   │   ├── PromptService.java                领域服务实现
│   │   └── dynamic/
│   │       ├── DynamicPromptBuilder.java     动态 Prompt 组装器 (内部组件)
│   │       └── MilestoneTracker.java         里程碑追踪器 (内部组件)
├── model/
│   ├── valobj/
│   │   ├── prompt/
│   │   │   ├── PromptContextVO.java          Prompt 上下文值对象
│   │   │   └── MilestoneVO.java              里程碑
│   │   ├── IntentResult.java                 意图识别结果
│   │   ├── ExtractedSignals.java             提取的信号
│   │   ├── SearchContext.java                搜索上下文
│   │   └── ConversationContext.java          对话上下文
│   └── entity/
│       └── ChatMessageEntity.java            对话消息实体
└── adaper/
    └── IChatHistoryRepository.java           对话历史持久化网关接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  • 这些核心设计,就是 walicode 里使用的,也是小傅哥不断深入折腾做的相关内容。通过这些设计,可以让智能体更加准确的识别用户意图,并做出正确的执行动作。
  • 包括;上下文管理领域服务、意图识别领域服务、意图增强领域服务、提示词构建领域服务等。这些东西都有源码,你可以都陆续的学习到。这些内容的学习,可以让你远超互联网公司里即使正在做智能体项目的大部分工程师!

# 3. 库表设计

  • 对话消息、里程碑、回话Session、ssh连接信息,都有相关的库表设计。这不是一个小儿科,而是一个完整的 ai ssh 工具服务设计。
  • 当你进行细化的学习后,你也可以继续扩展这些内容,做你需要的功能的迭代。(当你的项目被其他伙伴开始使用的时候,你会有很多功能迭代,只要你动起来,你就会有非常多的学习积累)

现在,我们可以一起启程了,一起成为 AI Agent 相关技术实践工程师,积累 AI Agent 项目开发能力。—— 注意,小傅哥为你提供的从不是一个项目,而是一整套多个项目,从多方面为你提高技术体系化成长。