news 2026/9/7 12:54:34

Wave终端:SSH自动重连与AI报错分析实测与部署指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Wave终端:SSH自动重连与AI报错分析实测与部署指南

深夜加班连跳板机,最怕的就是屏幕突然僵住,回车毫无反应,过几秒才弹出Connection reset by peer。这种断连体验,做运维的基本都经历过。今天要看的 Wave 是 GitHub 快报第 398 期里的一个开源终端项目,它把两个高频痛点直接做成了默认能力:SSH 自动重连,以及 AI 读取终端报错。

先给结论:这个项目值不值得试,取决于你平时有没有维护远程服务器的需求。如果你经常在云主机、跳板机、局域网服务器之间来回切,又受够了断线后重新登录、重新找目录、重新看上下文的操作,Wave 这类终端就值得跑一次完整验证。对于单纯想在本地玩终端的人,价值会小一些。

下面这篇文章会把 Wave 从规格、部署、连接、断线模拟、AI 报错分析、多主机管理到资源占用完整过一遍。由于项目还在迭代,有些参数需要以仓库 README 和 Releases 页面为准,我会在对应位置标注清楚,避免你照着一份过期文档踩坑。

1. 核心能力速览

先看一张规格表,把 Wave 能做什么、不能做什么放到同一个坐标系里。这里只写项目定位能确定的部分,具体版本字段以你拉到本地的仓库文档为准。

能力项说明
项目定位开源终端工具,来自 GitHub 快报第 398 期
核心特性SSH 自动重连、AI 读取终端报错
典型场景跳板机维护、云主机管理、远程开发、故障排查
部署方式需要以项目 README 和 Releases 页面为准
平台支持以项目 README 为准,建议先确认 Windows / macOS / Linux 支持情况
AI 模型接入以项目文档为准;常见做法是接入 OpenAI 兼容接口或本地 LLM
是否提供 API需要以仓库文档为准
是否支持批量任务需要以仓库文档为准;可以通过 SSH config 和脚本实现多主机批量执行
显存需求终端工具本身不依赖独立显卡;若在本机跑本地 LLM,则需要按模型大小估算显存
上手成本中等,先看 README,再跑一次断线模拟即可验证

从这张表能看出,Wave 的定位不是做一款“花哨的换皮终端”,而是解决远程连接场景里两个最影响效率的问题:连接保持和错误理解。SSH 自动重连解决的是“链路断开后怎么恢复”,AI 报错分析解决的是“报错出来之后怎么快速知道原因”。这两件事单独拿出来都有现成方案,但 Wave 把它做进了终端默认交互里。

下面我会按照“环境准备 -> 安装部署 -> 功能测试 -> 多主机与自动化 -> 性能观察 -> 排错 -> 最佳实践”的顺序展开,每一步都给可验证的操作。

2. 适用场景与使用边界

Wave 适合四类人。第一类是经常连跳板机的运维工程师,跳板机链路通常经过多层网络设备,空闲一段时间就会被中间设备切断,自动重连能把每次手工登录变成后台行为。第二类是在云主机上做远程开发的开发者,尤其是用 VSCode Remote SSH 之前想先确认网络稳定性的场景,终端自动重连至少能保证你的 SSH 会话不因为一次网络抖动就全部重来。第三类是喜欢排查服务器故障但又对命令不熟的初级工程师,AI 报错分析能把“看不懂报错”变成“知道下一步查什么”。第四类是愿意尝鲜 GitHub 新项目的技术爱好者,这类工具迭代快,早用早反馈。

使用边界也要说清楚。第一,Wave 目前定位是终端工具,如果你需要的是完整运维平台、堡垒机审计、权限管控,那不是一个终端工具能解决的。第二,AI 报错分析属于辅助判断,不是绝对答案,模型可能给出错误的修复建议,尤其在命令上下文不完整时。第三,自动重连不等于命令自动补跑,断线期间远端可能执行了部分命令,重连后需要确认执行状态。第四,涉及生产服务器、数据库、客户环境时,先把 Wave 放到测试机上验证一轮,不要直接接管线上业务。

信息合规同样需要重视。如果把终端报错发送给云端模型,命令输出里可能包含主机名、用户名、内网 IP、目录结构,甚至误贴出来的密钥痕迹,发送前要做好脱敏。使用任何模型服务都要遵守对应服务商的服务条款,有条件的团队优先使用本地部署模型。

3. 环境准备与前置条件

3.1 确认本地基础环境

不管 Wave 最终以什么形式安装,本机首先得有一个能正常工作的 SSH 客户端。macOS 和 Linux 一般自带 OpenSSH,Windows 10 之后的系统也会带 OpenSSH Client。先跑一条命令确认:

ssh -V

如果输出类似OpenSSH_9.x的版本号,说明 SSH 客户端可用。如果没有,需要先安装对应系统的 OpenSSH 客户端。接下来确认测试主机的 22 端口可达。端口连通性测试可以用nc,也可以用ssh -v直接看连接过程:

# 示例 IP 换成你的真实测试机地址 nc -vz 192.0.2.10 22 # 如果系统没有 nc,直接带调试参数连一次 ssh -v test-server

ssh -v的输出会打印连接过程中的每一步,便于对比后续 Wave 的行为。

3.2 准备 SSH 测试主机

建议准备一台闲置的云主机或本地虚拟机,不要拿承载线上业务的机器来做自动重连模拟。测试主机需要确认 sshd 服务处于运行状态:

# Debian / Ubuntu 系 sudo systemctl status sshd # 如果没有 systemd,直接检查进程 ps aux | grep sshd

SSH 长连接容易被断,通常和两端 keepalive 参数有关。服务端可以调整/etc/ssh/sshd_config里的两个参数:

# 服务端主动向客户端发送存活探测 ClientAliveInterval 30 ClientAliveCountMax 3

这两行的作用是:服务端每 30 秒探测一次客户端是否存活,连续 3 次没有响应就判定连接死亡。调整这个参数有助于更快感知断线,但要注意,如果中间网络设备本来就限制了空闲超时,这个参数只能让检测更及时,并不能完全避免断线。

3.3 配置 SSH 密钥与连接参数

自动重连要生效,首先要保证重连时不需要手工输入密码。最常见的做法是配置 SSH 密钥免密登录。先生成一对测试密钥:

ssh-keygen -t ed25519 -C "wave-test" -f ~/.ssh/id_ed25519_wave

然后把公钥安装到测试主机:

ssh-copy-id -i ~/.ssh/id_ed25519_wave.pub test-server

如果系统没有ssh-copy-id,可以手动追加公钥到目标主机的~/.ssh/authorized_keys。为了后续测试方便,建议把主机信息写入~/.ssh/config

Host test-server HostName 192.0.2.10 User root Port 22 IdentityFile ~/.ssh/id_ed25519_wave ServerAliveInterval 30 ServerAliveCountMax 3 ExitOnForwardFailure yes

这里的192.0.2.10是示例地址,请替换为真实测试主机 IP。密钥文件权限必须严格设置,目录是 700,文件是 600:

chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519_wave chmod 600 ~/.ssh/id_ed25519_wave.pub

配置完成后,先确认普通 SSH 能免密登录:

ssh test-server "hostname && uptime"

这一步通过,再去装 Wave,能少排查很多问题。

4. 安装部署与启动方式

4.1 获取项目并确认安装方式

Wave 的具体安装命令要以官方仓库 README 为准。拿到仓库名后,重点看两个地方:README 里的 Quick Start 或 Installation 章节,以及 Releases 页面是否提供对应系统的安装包。开源终端工具常见的分发方式有三种,这里给通用模板,实际命令需要替换成项目文档里给出的命令:

# 方式一:npm 分发(如果项目是 Node CLI) npm install -g <package-name> # 方式二:Homebrew 分发(macOS 常见) brew install <formula> # 方式三:直接从 Releases 下载二进制后执行 ./wave --help

如果 Wave 是桌面型终端应用,安装后通常会在应用程序列表里出现启动图标;如果是 CLI 工具,启动方式就是在终端里输入wave。不要照搬其他项目的包名,一定要看 README。

4.2 启动 Wave

以 CLI 方式启动为例,启动命令大致是:

wave

如果项目支持指定配置文件,可能会提供类似参数:

wave --config ~/.config/wave/config.json

启动后应该能看到一个可交互的终端界面,或者在本机终端中进入 Wave 的命令行模式。不同的启动方式界面差异很大,核心判断标准是:能不能在这里发起一个新的 SSH 连接。

4.3 配置 AI 报错分析

Wave 的 AI 功能通常需要配置模型接口。不同项目配置结构不同,下面是一个典型的 OpenAI 兼容接口配置模板,它可以对接本地模型服务,也可以对接云端模型服务:

{ "llm": { "provider": "openai-compatible", "base_url": "http://127.0.0.1:11434/v1", "api_key": "local-test-key", "model": "qwen2.5-coder:7b" } }

上面的字段是通用设计,具体字段名需要按 Wave 文档的配置 Schema 调整。如果使用本地模型,需要先启动 Ollama 或 vLLM 等本地模型服务;如果使用云端模型,api_keymodel需要从模型服务商控制台获取。无论用哪种方式,都不要把生产环境的密钥、数据库密码、敏感目录结构明文发送给不可信的模型接口。

5. 功能测试与效果验证

5.1 SSH 基础连接测试

启动 Wave 后,先测试最基础的 SSH 连接能力。在 Wave 中新建一个 SSH 会话,选择前面配置好的test-server,连接成功后执行:

hostname && uptime && whoami

预期输出会显示测试主机名、运行时长和当前用户。判断标准很简单:命令能正常返回,说明 Wave 的底层 SSH 通道工作正常。如果连接失败,先回到普通终端执行同样的ssh test-server,确认问题出在 Wave 还是远端服务器。

5.2 自动重连测试

自动重连是 Wave 的核心功能,验证需要模拟一次断线。这里有三种方法,按安全程度从高到低排列。

方法一:断开本地网络 10 到 20 秒,再恢复网络。这是最真实也最安全的模拟方式,适合本地 WiFi 或有线网络环境。重连过程中观察 Wave 界面是否出现“重连中”状态,恢复网络后是否自动回到之前的会话。

方法二:在测试机上临时停止 sshd 服务,再重新启动。这个方法适合测试机,不适合生产机器,因为所有正在连接的会话都会被断开:

sudo systemctl stop sshd sleep 10 sudo systemctl start sshd

方法三:在测试机上临时阻断 22 端口流量,更接近真实网络故障,但操作需要非常谨慎:

sudo iptables -I INPUT -p tcp --dport 22 -j DROP sleep 15 sudo iptables -D INPUT -p tcp --dport 22 -j DROP

重连测试要观察四个点:

  • 断开后 Wave 是否在短时间内提示连接异常。
  • 网络恢复后是否自动发起重连,而不是需要手工触发。
  • 重连成功后是否仍然处于之前的用户身份和目录,不同终端实现策略不同。
  • 重连过程中日志是否频繁刷错误,是否出现指数退避机制。

如果自动重连一直失败,优先检查密钥免密是否生效。自动重连的本质是“重新执行一次 SSH 登录”,如果登录需要输入密码,重连流程就会卡住。

5.3 AI 读取终端报错测试

AI 报错分析是另一个核心功能。先制造一个真实报错,在 Wave 中连接测试主机后执行:

systemctl start nginx

如果测试机没有 nginx,会输出类似Failed to start nginx.service: Unit not found的错误。也可以用一个更明显的 Python 语法错误:

python3 -c "print('hello)"

此时如果 Wave 集成了 AI 报错功能,界面上应该有“分析报错”或“AI 解释”入口。选中报错文本触发分析,预期输出应该包含错误类型、可能原因、下一步排查命令。判断成功标准是:AI 能识别这是“服务名不存在”或“语法错误”,并给出有实际意义的修复建议,而不是一段泛泛而谈的废话。

如果 Wave 本身没有集成 AI,或者你想验证“终端报错 -> 模型分析”这个流程本身,可以用一个通用 Python 脚本把报错文本发送给本地模型。这个脚本不依赖 Wave,只验证链路是否通:

import requests url = "http://127.0.0.1:11434/api/chat" payload = { "model": "qwen2.5-coder:7b", "messages": [ { "role": "user", "content": ( "下面是一段终端报错,请说明错误原因并给出排查命令。\n" "```\n" "bash: systemctl: command not found\n" "```\n" ) } ], "stream": False } resp = requests.post(url, json=payload, timeout=120) print(resp.json().get("message", {}).get("content", ""))

运行前先确认本地模型服务已经启动,并且qwen2.5-coder:7b模型名与本地一致。这个测试能帮你把“终端功能”和“模型能力”分开排查。

5.4 多会话与长时间运行测试

Wave 如果支持多标签或多会话,可以继续验证长时间运行场景。同时打开 3 到 5 个 SSH 会话,分别连接到不同主机或同一台主机的不同登录,然后在其中一个会话执行一个持续输出命令:

tail -f /var/log/syslog

观察多个会话同时存在时,终端的内存和 CPU 占用是否明显上涨。做一次短暂断网后,看多个会话是否都能自动恢复。这里要提醒的是:多个会话同时重连,相当于同一时间向目标主机发起多次 SSH 登录,如果主机有 sshd 的 MaxStartups 限制,可能出现部分重连失败。

6. SSH 配置文件批量管理、多会话与自动化任务

Wave 是否自带批量任务能力,需要以仓库文档为准。但即使终端没有内置批量功能,SSH 运维的批量操作也有成熟做法,下面这套流程可以配合 Wave 使用。

6.1 用 ~/.ssh/config 管理多主机

~/.ssh/config是 SSH 客户端通用的主机配置文件,Wave 如果没有特殊实现,通常会复用这个文件。把多台测试主机的连接信息写进去:

Host web-prod HostName 192.0.2.21 User deploy ServerAliveInterval 30 ServerAliveCountMax 3 Host db-prod HostName 192.0.2.22 User dba ServerAliveInterval 30 ServerAliveCountMax 3

这样在 Wave 里新建会话时,只需要选择web-proddb-prod,不需要每次手写 IP、用户和端口。主机多的时候,配置文件是批量管理的基础。

6.2 批量执行任务的两种方式

批量操作第一类方式是用 shell 循环。写一个简单的批量执行脚本,前提是已经配置好免密登录:

#!/usr/bin/env bash # 批量在多个主机上执行命令 for host in web-prod db-prod; do echo "===== $host =====" ssh "$host" "hostname && uptime && free -h | head -2" done

这个脚本适合临时任务。如果需要更复杂的编排、文件分发、变量处理,更成熟的方案是 Ansible,终端工具本身不用承担批量任务引擎的角色。

第二类方式是用 Python 的 paramiko 做程序化 SSH。适合需要把 SSH 操作嵌入到自己的自动化脚本里的场景:

import os import paramiko hosts = [ {"host": "web-prod", "user": "deploy", "command": "uptime"}, {"host": "db-prod", "user": "dba", "command": "df -h"}, ] key_path = os.path.expanduser("~/.ssh/id_ed25519_wave") for item in hosts: client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect( hostname=item["host"], username=item["user"], key_filename=key_path, timeout=10, ) stdin, stdout, stderr = client.exec_command(item["command"]) print(f"===== {item['host']} =====") print(stdout.read().decode()) client.close()

需要先安装依赖:

pip install paramiko

脚本中的key_filename使用expanduser展开~,避免路径解析问题。这个脚本和 Wave 本身无关,但可以作为批量运维的底座。

6.3 接口 API 能力确认

Wave 如果提供本地 API,文档中一般会有 API 章节。拿到文档后,先确认三件事:API 是基于 HTTP、WebSocket 还是 RPC;默认监听地址和端口是什么;是否需要在启动参数里显式开启。

如果 Wave 提供 HTTP API,可以用 curl 做一次健康探测:

# 示例命令,端口和路径以 Wave 文档为准 curl http://127.0.0.1:7860/api/health

返回ok或类似状态说明 API 服务可用,之后就可以在自动化脚本里调用。如果项目不提供 API,不必强求,直接用 shell 循环或 paramiko 脚本同样能完成批量任务。

7. 资源占用与性能观察

7.1 本地进程与内存观察

终端工具的资源占用,主要看本地进程的 CPU 和内存。启动 Wave 并保持一个 SSH 会话后,用ps观察进程列表:

ps aux | grep -E "wave|ssh" | grep -v grep

关注两个指标:CPU 占用和内存占用。空闲状态下 CPU 占用应该接近 0%,如果一直在 10% 以上,可能是渲染层或日志层有死循环。内存占用取决于终端实现,原生终端通常占用较低,基于 Electron 等框架的终端内存占用会明显更高,这一点需要在实测中确认,不要盲目对比不同项目的数字。

也可以用top实时查看:

top -o cpu -n 1

7.2 自动重连对网络的影响

自动重连期间,本地会发起新的 TCP 连接。可以用ss查看当前到 22 端口的连接状态:

ss -tn | grep ':22'

正常连接时应该能看到ESTAB状态。如果看到大量SYN-SENT,说明重连请求一直在发但没能建立连接,需要检查远端 sshd 和网络连通性。SSH keepalive 本身数据量很小,每 30 秒一次探测报文体量几乎可以忽略。真正需要担心的是重连风暴:多个会话同时断线再同时重连,可能在一瞬间对目标主机造成连接压力。

7.3 降低长时间运行开销

长时间使用 Wave 时,建议做三件事。第一,不要开太多无用会话,用完后及时关闭。第二,大量身份验证和连接会占用文件描述符,可以用ulimit -n检查当前句柄数限制:

ulimit -n

如果句柄数不够,批量会话场景可能报too many open files。第三,如果担心重连后丢上下文,最佳实践是在远端使用 tmux,重连后重新 attach 到同一个 tmux 会话,而不是完全依赖终端自动重连来恢复状态:

# 在远端测试主机上启动 tmux tmux new -s work # 断线重连后,回到这个会话 tmux attach -t work

tmux 和 Wave 的自动重连搭配使用,体验会好很多。

8. 常见问题与排查方法

8.1 连接类问题

问题现象可能原因排查方式解决方案
Connection refusedsshd 未启动、端口写错、防火墙拦截检查目标机systemctl status sshd,用ss -tlnp查看 22 端口监听情况启动 sshd,确认安全组放行 22 端口
Connection reset by peer服务端或中间设备主动断开连接查看 sshd 日志,确认是否触发超时调整ClientAliveIntervalServerAliveInterval
Permission denied (publickey)公钥未安装、用户不对、权限过大检查~/.sshauthorized_keys权限目录 700,文件 600,重新安装公钥
连接长时间卡住网络丢包或 DNS 解析问题观察ssh -v日志卡在哪个阶段给连接加ConnectTimeout,确认主机 IP 连通性
连 GitHub 的 22 端口失败本地网络对 22 端口有限制尝试 GitHub 官方支持的 443 端口ssh -T -p 443 git@ssh.github.com

GitHub 的 443 端口连接是 GitHub 官方文档支持的 SSH 使用方式,适合 22 端口被限制的网络环境。

8.2 自动重连类问题

自动重连最常见的现象是“重连循环”。终端不断尝试重连,但每次都失败。排查顺序是:先确认密钥免密是否生效,再确认远端 sshd 是否接受并发连接,最后看网络层是否有丢包。如果重连频率太高,会给远端造成无意义压力,需要在配置里限制重连间隔,或者在工具里开启退避策略。

第二个现象是“重连成功但上下文丢失”。断线前在某个目录下,重连后回到了默认目录。这是终端自动重连的天然限制,它只恢复连接,不恢复 shell 状态。解决办法是用 tmux 在远端常驻会话,重连后 attach 回来。

第三个现象是“多个会话同时重连导致部分失败”。如果同时维护的 SSH 会话很多,断网恢复后的重连风暴可能会撞上MaxStartups限制。建议分批恢复会话,或者适当调大服务端的并发连接限制。

8.3 AI 分析类问题

AI 分析没有返回结果,先怀疑配置问题。检查三点:base_url是否可访问、api_key是否正确、model名称是否存在。用 curl 直接调用一次模型接口,能很快定位是模型服务的问题还是终端集成的问题:

# 以本地 Ollama 接口为例 curl http://127.0.0.1:11434/api/tags

如果返回模型列表正常,说明模型服务没问题。接下来检查 Wave 的配置 JSON 是否被正确加载。AI 分析结果不准确,通常是模型上下文不完整,或者模型太小,替换成更大的模型并补充完整日志后,结果质量会明显改善。

8.4 批量任务类问题

批量 SSH 脚本最典型的问题是一台主机超时导致整个脚本卡住。解决方式是在 ssh 命令里加超时和免交互参数:

timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes test-server "uptime"

BatchMode=yes会跳过密码输入,避免脚本挂起等待用户输入。批量执行前,先确认目标主机的密钥免密都已配置好。如果批量任务需要执行写操作,建议先在单台主机上验证命令本身没问题,再扩大到所有主机。

9. 最佳实践与使用建议

第一,先小规模验证,再决定是否纳入日常工具链。把 Wave 接到一台测试机上,完成一次断网模拟和 AI 报错分析之后,再逐步替换日常终端,不要在第一天就把它放到生产跳板机的主入口。

第二,保留一套最小可运行配置。~/.ssh/config、一对测试密钥、一台测试主机,这三样就够了。任何新版本发布,先用这套最小配置跑一遍基础连接和重连测试,避免升级后出现配置不兼容问题。

第三,密钥分环境管理。测试主机和生产主机不要共用同一把 SSH 私钥,不同环境使用不同的 key 文件,并在~/.ssh/config中通过IdentityFile显式指定。这样即使某把密钥泄露,影响范围也可以控制。

第四,模拟断线要有限度。不要在承载线上业务的机器上执行iptables -I INPUT -p tcp --dport 22 -j DROP,更不要在生产机重启 sshd。断线模拟尽量放在测试环境,或者用断本地网络这种方式代替。

第五,AI 分析之前先脱敏。发送给模型的终端输出,默认先检查一遍是否包含 IP、用户名、路径、密钥痕迹,可以用 sed 过滤后再发送。生产环境的日志和配置,原则上优先使用本地模型处理,避免数据出域。

第六,自动重连要注意命令幂等性。断线期间,远端可能执行了一部分命令,重连后如果脚本继续接着执行,可能出现重复操作。重要任务的脚本,在重连后要先检测执行状态,再决定是否继续。

第七,定期更新 Wave。开源终端工具迭代速度快,关注官方仓库的 Release 和安全公告。新版本发布后,先看 changelog 再决定是否升级,避免因为升级导致已有的配置文件失效。

10. 总结与下一步

Wave 最值得尝试的点,是把 SSH 自动重连和 AI 终端报错分析这两个高频痛点做成了终端默认能力。它不只是一个“新终端”,而是一个可以明显减少断线后手工恢复成本、降低报错理解门槛的远程连接工具。

如果你现在准备验证,建议按这个顺序做:先配置好一台免密登录的测试主机,再用~/.ssh/config建好连接,接着在 Wave 里发起 SSH 会话,跑一次断网恢复测试,最后触发一个报错并调用 AI 分析。最先需要验证的是自动重连是否能恢复正常会话,这是 Wave 最核心的价值,也是它和普通终端拉开差距的地方。

最容易踩的坑有三个:一是密钥权限不对导致自动重连一直失败,二是断线模拟选错了环境导致业务受影响,三是 AI 模型接口配置错误导致报错分析没有返回结果。这三个坑都能在测试阶段提前暴露,所以第一轮验证一定不要跳过。

后续可以继续扩展的方向包括:把 Wave 接入本地 LLM 服务,形成完全本地化的报错排查链路;配合 tmux 和~/.ssh/config管理多台主机,把日常运维操作沉淀成可重复执行的工作流;如果 Wave 后续开放 API,还可以把它的连接能力集成到自己的自动化脚本里。如果手头正好有经常断连的跳板机或云主机,这篇文章的流程建议收藏备用,找时间把自动重连和 AI 报错分析都完整测一遍。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 12:53:36

FPGA 100G UDP协议栈移植实战:从开源工程到上板调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 12:53:22

弹幕指挥AI:构建科研智能体互动直播系统的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 12:51:20

ESP32-C5-WROOM-1U-N16R8模组详解:双频Wi-Fi 6与802.15.4的IoT融合方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 12:50:23

大模型Agent开发学习路线:框架选型、Harness工程与TextToSQL落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 12:49:59

具身智能端侧AI选型实战:算力、功耗与部署避坑指南

做具身智能载具平台这一年&#xff0c;我在轮式移动底盘和无人机视觉避障两个项目上反复折腾端侧AI选型。最开始一脸天真地看厂商标称的TOPS&#xff0c;买回来发现真正跑起感知模型和控制闭环&#xff0c;瓶颈全在散热、功耗、工具链和系统调度这些地方。这篇内容想把这些实测…

作者头像 李华
网站建设 2026/9/7 12:49:55

古龙精灵Lua脚本开发入门:从基础语法到手游自动化实战

最近在折腾手游自动化测试和脚本开发的时候&#xff0c;发现很多工作室和个人开发者都在找一款能替代懒人精灵和按键精灵的Lua脚本开发工具。之前一直用按键精灵写脚本&#xff0c;但在处理复杂寻路和多开任务时总觉得不够灵活&#xff0c;后来在一个游戏群看到有人提到古龙精灵…

作者头像 李华