Skip to content

老系统版(Windows Server 2012) ​

标准版 CLI 内嵌的是 Node.js 22 运行时,需要 Windows 10 / Server 2016 及以上; 更老的系统缺少它依赖的系统 API,装运行库也无法解决(原因见 Windows 支持版本)。

本页提供的是一个独立维护的精简版:运行时换成了 Node.js 12(最后一个支持 Server 2012 的版本),打成单个 exe,目标机器不需要安装 Node,也不需要任何 DLL。

先确认你需要它

如果你的机器是 Windows 10 / Server 2016 及以上,请用标准版 (专业用法),工具更全、维护更及时。 本页只面向老系统 —— 新系统上用精简版会少掉一部分能力。

下载 ​

zqagent-lite-win-x64.exe (约 29 MB,64 位 Windows 单文件)

适用系统:Windows Server 2012 / 2012 R2 / 2008 R2、Windows 7 SP1、Windows 8 / 8.1。 内嵌运行时静态链接了 CRT,不需要额外安装运行库。 只提供 x64 产物,不支持 32 位与 ARM。

使用 ​

1. 放到服务器上并配置 ​

把 exe 放到任意目录,例如 D:\zqagent\zqagent-lite-win-x64.exe。

默认已内置 DeepSeek(https://api.deepseek.com / deepseek-flash), 所以只需要填 API Key,一条命令搞定:

bat
zqagent-lite-win-x64.exe node --set-key sk-你的key

这条命令在任何情况下都能用:它直接写配置文件,不依赖环境变量、账户或当前目录。 装成服务后(以 SYSTEM 运行)也照样有效——因为 setx 写的用户级变量 SYSTEM 根本读不到。 如果已经装了开机自启任务,它会自动重启任务让配置立即生效。

写完确认一下(每一项都会标出来源):

bat
zqagent-lite-win-x64.exe node --show-config
  API Key : sk-xx****abcd   ← config.json
  baseURL : https://api.deepseek.com   ← 内置默认
  model   : deepseek-flash   ← 内置默认

只有想换提供商或模型时,才需要改 %APPDATA%\zqagent\config.json 里的 baseURL / model。

2. 运行 ​

bat
cd /d D:\work\myproject
D:\zqagent\zqagent-lite-win-x64.exe

一定要先 cd 到项目目录

程序把当前目录当作工作区。双击 exe 时当前目录是 exe 所在目录, 工作区会设错,它就会在你的安装目录里翻文件。

非交互执行(计划任务 / 批处理),用 --yes 自动批准写文件与执行命令:

bat
D:\zqagent\zqagent-lite-win-x64.exe --once "统计 src 下有多少个 ts 文件" --yes

3. 冒烟验证 ​

bat
D:\zqagent\zqagent-lite-win-x64.exe --version
D:\zqagent\zqagent-lite-win-x64.exe --help

能力 ​

精简版保留了日常干活需要的部分:

能力说明
读写文件list_files / read_file / write_file / replace_in_file
代码搜索grep(正则、递归、自动跳过 node_modules)
执行命令run_shell(cmd.exe,工作目录持久,超时杀进程树)
联网web_search(Bing RSS,失败降级 DuckDuckGo,不需要 API Key)、web_fetch
任务面板todo_write,终端打印进度
计划审批propose_plan,支持批准 / 拒绝 / 提补充要求触发修订
子代理explore,独立上下文的只读调研
上下文压缩超阈值自动摘要,避免长会话撑爆上下文

不支持:会话持久化与恢复、MCP、图片与音频输入、后台任务、多 agent 并行。 单轮迭代上限 800,explore 子代理默认 30 轮。

作为节点接入 hub(可被远程控制) ​

除了在本地用,它还能接入 gateway,出现在 hub 控制台的节点列表里,被远程派活。

首次需要管理员在 hub 生成的注册码:

bat
D:\zqagent\zqagent-lite-win-x64.exe node --enroll-code ABCD-1234 --label "2008r2-file-server"

凭据会保存到 %APPDATA%\zqagent\fleet.json,之后直接启动即可:

bat
D:\zqagent\zqagent-lite-win-x64.exe node

支持的远程指令:

指令说明
ping / get_node_info / get_node_host连通性、节点信息、宿主信息(CPU/内存/磁盘/会话)
list_projects / get_config / update_config项目与配置,在控制台改工作目录走这里
list_dirs / search_dirs目录浏览(选择工作目录用)
list_files / read_file / write_file / grep文件操作
run_command执行命令(破坏性命令仍被拒绝)
submit_turn远程派活,走本地 agent 引擎,流式回传
interrupt / cancel_turn中断当前任务

另外这些面板会正常显示(返回合法的空结果或真实数据): list_sessions、list_tools(真实 11 个工具及风险等级)、project_stats、 get_session_states、get_events、list_mcp、terminal_list、list_shell_tasks。

其余指令(git 面板、实时终端、MCP 配置、会话管理、用量账单、自更新) 会明确返回 ok=false 并附原因,不会静默失败。

限制:一个节点同时只跑一轮对话(不支持 steering);一个进程服务一个工作目录 (任务运行中不能切换);进程重启后本地对话历史丢失;没有实时终端面板。

时钟要求:网关要求握手时间在 ±60 秒内。老机器 CMOS 电池失效或没配 NTP 时, 时钟可能偏差几分钟。本程序会在首次认证被拒时用网关时间自动校准并重试一次,日志里会打印实际偏差。

连不上模型怎么办(内网 / 代理) ​

最常见的原因是这台机器出不了外网。先体检,它会逐层告诉你是哪一环断了:

bat
zqagent-lite-win-x64.exe node --check
[1/4] DNS 解析失败: api.deepseek.com —— EAI_AGAIN
      本机查不到这个域名。内网机器常见原因:不能直连外网、DNS 服务器不通。
      试试: nslookup api.deepseek.com
[2/4] 连接失败: getaddrinfo EAI_AGAIN api.deepseek.com
  → 域名解析失败:本机 DNS 查不到 api.deepseek.com。
    可能原因:内网机器不能直连外网 / DNS 服务器不通 / 需要 HTTP 代理。
    用代理:set HTTPS_PROXY=http://代理地址:端口

四种处理方式,按顺序试:

1. 走 HTTP 代理(内网最常见)

bat
setx HTTPS_PROXY "http://代理地址:8080"
:: 代理要认证时带上账号密码
setx HTTPS_PROXY "http://user:pass@代理地址:8080"

新开 cmd 生效。支持 HTTPS_PROXY / HTTP_PROXY / ALL_PROXY(大小写都认)以及 NO_PROXY 排除内网域名。注意 Node 12 本身不读这些变量,是本程序自己实现的 CONNECT 隧道,所以设置后确实会走代理。

2. 换成内网网关地址

如果有自建网关(能访问到),改 %APPDATA%\zqagent\config.json:

json
{
  "apiKey": "sk-你的key",
  "baseURL": "https://你们的内网网关/v1",
  "model": "模型名"
}

3. 确认 DNS 本身是通的

bat
nslookup api.deepseek.com

查不到说明这台机器的 DNS 就没配好,找运维加解析或转发。

4. 自签证书的内网网关

报 SELF_SIGNED_CERT_IN_CHAIN 时可临时绕过(有安全风险,仅内网):

bat
setx NODE_TLS_REJECT_UNAUTHORIZED "0"

开机自启(服务化) ​

节点要常驻,服务器重启后不该靠人手点。用任务计划程序注册开机自启(系统自带,零依赖):

bat
:: 需以「管理员身份」运行 cmd
cd /d D:\work\myproject
D:\zqagent\zqagent-lite-win-x64.exe node --install-service

注册名为 zqagent-lite 的任务并立即启动。之后:

命令作用
node --service-status查看任务状态与日志尾部
node --uninstall-service停止并删除任务

任务做了三件容易忽略的事:不限运行时长(默认 72 小时会被系统强杀)、 崩溃后 1 分钟自动重启(最多 3 次)、显式指定工作目录 (默认工作目录是 C:\Windows\System32,会让节点在系统目录里翻文件)。

如果安装报错,schtasks 的提示往往很含糊。先导出 XML 看看生成的是什么,再手工导入:

bat
D:\zqagent\zqagent-lite-win-x64.exe node --task-xml D:\task.xml
schtasks /Create /TN zqagent-lite /XML D:\task.xml /F

也可以打开「任务计划程序」→ 导入任务 → 选 D:\task.xml,GUI 的报错会具体得多。 安装失败时程序会自动保留 XML 并打印路径。

服务化后读不到配置? ​

任务以 SYSTEM 账户运行,而 setx 默认写用户级环境变量——SYSTEM 读不到。 一条命令解决(写完会自动重启任务让配置生效):

bat
zqagent-lite-win-x64.exe node --set-key sk-你的key

也可以手动写 %APPDATA%\zqagent\config.json:

json
{
  "apiKey": "sk-你的key"
}

只需这一项,地址和模型有内置默认(DeepSeek)。

优先级:命令行 > 环境变量 > config.json > 内置默认。服务化后没有控制台, 日志默认写到 %APPDATA%\zqagent\logs\node.log(超 5 MB 自动轮转),是唯一排查依据。

交互命令 ​

命令作用
/exit退出(老系统的 Ctrl+C 不可靠,建议用它)
/clear清空对话历史
/model <name>切换模型
/plan切换只读计划模式
/todo查看当前任务列表
/compact下一次请求前强制压缩上下文

校验下载 ​

每次发布都会在同目录生成 .sha256 文件:

bat
:: 下载校验值
curl -O https://agent.cd-zq.com/downloads/zqagent-lite/zqagent-lite-win-x64.exe.sha256

:: Windows 10 1803+ / Server 2019+ 自带
certutil -hashfile zqagent-lite-win-x64.exe SHA256

老系统没有 curl 时,用浏览器打开 .sha256 链接保存即可。

常见问题 ​

exe 被 SmartScreen 或杀毒软件拦下 产物没有做 Authenticode 代码签名(内嵌的是修改过的 Node 运行时基座),部分环境会误报。 内网受控环境可加白名单;正式分发需要用 signtool 重新签名。

提示缺少 api-ms-win-crt-*.dll 正常情况下不会出现 —— 产物内嵌的 Node 12 是静态链接 CRT 的,不依赖这些 DLL。 如真遇到,安装 KB2999226 即可。

节点模式连不上 / 一直重连 先看程序打印的原因:AUTH 被拒绝 一般是密钥或节点绑定问题; code 1006 多为网络或中间设备拦了 WebSocket Upgrade; 日志里若提示已做过时钟校准但仍失败,说明偏差超过 10 分钟,需先校时。

中文输出乱码 加 chcp 65001(程序启动时会尽力自动切换)。若命令本身的输出是 GBK 而系统没有 GBK 解码器, 可能仍有乱码,属老系统的已知限制。

纯内网环境能跑吗 能。只有调用模型接口需要出网;web_search 会失败但不影响其它功能。

相关 ​