背景
JMS 是一个 Go 写的 JumpServer CLI 客户端,日常用于 SRE 运维。经过多轮迭代,已经具备了相当丰富的功能:WebSocket 终端、exec 单命令执行、SFTP 文件传输、Miller Column TUI 资产浏览器、AI Panel(通过 Claude API 在终端内提供 AI 辅助)、Web UI 同步查看、自动重连、PCap 抓包、Skill 系统、Context compaction 等。
功能做得越多,越容易陷入”下一步做什么”的选择困难。于是决定开一场全员会议——让 7 个 AI 模型同时给建议。
全员会议机制
通过 Claude Code 的后台技能系统,同时启动 6 个模型的分析任务:
@startuml
!theme plain
skinparam backgroundColor #FEFEFE
participant "Claude\n(Orchestrator)" as C
participant "Gemini 3" as G
participant "Codex\n(GPT-5.2-pro)" as X
participant "Kimi\n(K2.5)" as K
participant "DeepSeek\n(V3.2)" as D
participant "GLM-5" as GL
participant "Qwen3-Max" as Q
C -> C : 分析 codebase\n(Explore agent)
C -> G : 后台分析请求
C -> X : 后台分析请求
C -> K : 后台分析请求
C -> D : 后台分析请求
C -> GL : 后台分析请求
C -> Q : 后台分析请求
note over C : 不阻塞,继续工作
G --> C : 6 个功能建议
X --> C : 7 个功能建议
K --> C : 8 个功能建议
D --> C : (输出截断)
GL --> C : 8 个功能建议
Q --> C : 7 个功能建议
C -> C : 汇总对比矩阵
@enduml
每个模型收到相同的项目描述和现有功能列表,独立给出 5-8 个功能建议。Claude 作为 orchestrator 同时深度分析了代码库(通过 Explore agent 读取了所有 15 个 Go 源文件),最后汇总各方观点。
共识矩阵
| 功能 | Claude | Gemini | Codex | Kimi | DeepSeek | GLM | Qwen | 共识 |
|---|---|---|---|---|---|---|---|---|
| 批量并发执行 | - | HIGH | HIGH | HIGH | - | HIGH | yes | 5⁄7 |
| 会话录制回放 | yes | - | MED | HIGH | - | MED | yes | 5⁄7 |
| 命令历史/模板 | yes | - | HIGH | MED | - | MED | yes | 5⁄7 |
| 端口转发隧道 | - | MED | MED | - | - | HIGH | - | 3⁄7 |
| 诊断剧本/Runbook | - | - | HIGH | HIGH | - | - | yes | 3⁄7 |
| 一键排障采集包 | - | MED | HIGH | - | - | - | - | 2⁄7 |
| 资产书签/收藏 | yes | - | - | HIGH | - | - | - | 2⁄7 |
| AI 日志流分析 | - | HIGH | - | - | - | - | - | 1⁄7 |
| 工具热注入 | - | HIGH | - | - | - | - | - | 1⁄7 |
三个功能获得了 5⁄7 的最高共识:批量并发执行、会话录制、命令历史/模板。
各方独到见解
Gemini:工具热注入
最有创意的建议。生产环境容器通常缺少 tcpdump、htop、dig 等调试工具。Gemini 提议维护一个预编译的静态链接工具包,通过 SFTP 自动上传到 /tmp,用完清理:
用户只需输入
/run tcpdump,JMS 自动完成上传-执行-结果拉取-清理全过程。
Codex (GPT-5.2-pro):Fleet Exec –diff
对批量执行功能提出了一个杀手级子特性:--diff 和 --unique 模式。在几十台机器上执行相同命令后,只显示输出不同的主机:
jms fleet exec 'web-*' -- 'cat /etc/hosts' --unique
# 只显示输出不同于大多数主机的异常节点
这比逐行看输出高效得多,大规模巡检时是真正的效率倍增器。
Kimi:诊断剧本 + AI 分析
提出了 YAML 格式的诊断剧本系统,关键亮点是最后一步 ai_analyze: true,将采集到的所有信息发送给 AI Panel 分析:
# ~/.jms/playbooks/k8s-pod-crash.yaml
name: K8s Pod Crash 诊断
steps:
- name: 获取异常 Pod
cmd: kubectl get pods -n {{namespace}} | grep -v Running
capture: failed_pods
- name: 查看 Pod 日志
cmd: kubectl logs -n {{namespace}} {{failed_pods.0}} --previous
- name: 查看事件
cmd: kubectl get events -n {{namespace}} --sort-by=.lastTimestamp | tail -20
- ai_analyze: true
这与 JMS 已有的 AI Panel 和 Skill 系统完美结合。
GLM:简洁实用
用一个表格交付了 8 个功能建议,没有多余的话。建议了端口转发功能 jms forward <asset> <remotePort> [localPort],这确实是 SRE 通过跳板机访问内网服务时最痛的点之一。
Qwen:自动生成 Plan
最有趣的行为差异——Qwen 没有直接回答问题,而是读取了项目的 plan skill,然后自动生成了一个 plan/plan-2026-02-26-jms-enhancement-features.md 文件。虽然内容不如直接回答详细,但这种”按框架办事”的行为挺有意思。
DeepSeek:沉默的读者
读了所有 Go 源文件,写了一句”我来分析 JMS 项目的代码架构”,然后……就没了。可能是 OpenRouter 限制或超时。全场最短输出。
最终优先级排序
综合各方意见,按投入产出比排序:
Tier 1 — 立刻做
| 功能 | 理由 | 工作量 |
|---|---|---|
| 批量并发执行 | 6⁄7 推荐,现有 exec 基础上加并发调度 | 中 |
| 资产书签 | 极低成本,高频使用 | 小 |
| AI Panel 命令历史 | 5 分钟实现 | 极小 |
Tier 2 — 解决真实痛点
| 功能 | 理由 | 工作量 |
|---|---|---|
| 会话录制 | 故障复盘 + 审计,已有 termBuf 基础 | 中 |
| Support Bundle | 标准化采集 → 下载 → AI 分析闭环 | 中 |
| 诊断剧本 | 与 Skill 系统互补 | 中 |
Tier 3 — 长期价值
| 功能 | 理由 | 工作量 |
|---|---|---|
| 批量 Diff | 配置漂移检测的轻量版 | 小 |
| 命令模板 | 避免重复输入长命令 | 小 |
会后立刻落地:AI Panel 命令历史
既然 Tier 1 里有个”极小”工作量的,当场就做了。改动只涉及 panel.go:
- 新增 3 个字段:
inputHistory []string、historyIdx int、inputDraft []rune - Enter 提交时将查询存入 history(最多 100 条,最新在前)
- Arrow Up/Down 从滚动改为历史导航
- Ctrl+J/K 保留为滚动
核心逻辑:
case 'A': // Up — history older
if len(p.inputHistory) > 0 && p.historyIdx < len(p.inputHistory)-1 {
if p.historyIdx == -1 {
p.inputDraft = make([]rune, len(p.inputBuf))
copy(p.inputDraft, p.inputBuf)
}
p.historyIdx++
p.inputBuf = []rune(p.inputHistory[p.historyIdx])
}
case 'B': // Down — history newer
if p.historyIdx >= 0 {
p.historyIdx--
if p.historyIdx == -1 {
p.inputBuf = p.inputDraft
p.inputDraft = nil
} else {
p.inputBuf = []rune(p.inputHistory[p.historyIdx])
}
}
按 Up 进入历史时,先把当前输入保存为 draft;按 Down 回到最新时恢复 draft。和 bash shell 的行为一致。
总结
多模型全员会议的价值不在于”谁更对”,而在于:
- 覆盖盲区:每个模型都提出了其他模型没想到的点
- 共识验证:5/7 一致推荐的功能基本不会选错
- 行为差异:观察不同模型的”做事方式”本身也很有趣(Qwen 自动写 plan、DeepSeek 先读代码再说话)
总耗时约 3 分钟(并行执行),成本低廉,收获的是多角度的功能路线图。值得在需要方向决策时常规使用。