老系统版(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,一条命令搞定:
zqagent-lite-win-x64.exe node --set-key sk-你的key这条命令在任何情况下都能用:它直接写配置文件,不依赖环境变量、账户或当前目录。 装成服务后(以 SYSTEM 运行)也照样有效——因为 setx 写的用户级变量 SYSTEM 根本读不到。 如果已经装了开机自启任务,它会自动重启任务让配置立即生效。
写完确认一下(每一项都会标出来源):
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. 运行
cd /d D:\work\myproject
D:\zqagent\zqagent-lite-win-x64.exe一定要先 cd 到项目目录
程序把当前目录当作工作区。双击 exe 时当前目录是 exe 所在目录, 工作区会设错,它就会在你的安装目录里翻文件。
非交互执行(计划任务 / 批处理),用 --yes 自动批准写文件与执行命令:
D:\zqagent\zqagent-lite-win-x64.exe --once "统计 src 下有多少个 ts 文件" --yes3. 冒烟验证
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 生成的注册码:
D:\zqagent\zqagent-lite-win-x64.exe node --enroll-code ABCD-1234 --label "2008r2-file-server"凭据会保存到 %APPDATA%\zqagent\fleet.json,之后直接启动即可:
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 时, 时钟可能偏差几分钟。本程序会在首次认证被拒时用网关时间自动校准并重试一次,日志里会打印实际偏差。
连不上模型怎么办(内网 / 代理)
最常见的原因是这台机器出不了外网。先体检,它会逐层告诉你是哪一环断了:
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 代理(内网最常见)
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:
{
"apiKey": "sk-你的key",
"baseURL": "https://你们的内网网关/v1",
"model": "模型名"
}3. 确认 DNS 本身是通的
nslookup api.deepseek.com查不到说明这台机器的 DNS 就没配好,找运维加解析或转发。
4. 自签证书的内网网关
报 SELF_SIGNED_CERT_IN_CHAIN 时可临时绕过(有安全风险,仅内网):
setx NODE_TLS_REJECT_UNAUTHORIZED "0"开机自启(服务化)
节点要常驻,服务器重启后不该靠人手点。用任务计划程序注册开机自启(系统自带,零依赖):
:: 需以「管理员身份」运行 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 看看生成的是什么,再手工导入:
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 读不到。 一条命令解决(写完会自动重启任务让配置生效):
zqagent-lite-win-x64.exe node --set-key sk-你的key也可以手动写 %APPDATA%\zqagent\config.json:
{
"apiKey": "sk-你的key"
}只需这一项,地址和模型有内置默认(DeepSeek)。
优先级:命令行 > 环境变量 > config.json > 内置默认。服务化后没有控制台, 日志默认写到 %APPDATA%\zqagent\logs\node.log(超 5 MB 自动轮转),是唯一排查依据。
交互命令
| 命令 | 作用 |
|---|---|
/exit | 退出(老系统的 Ctrl+C 不可靠,建议用它) |
/clear | 清空对话历史 |
/model <name> | 切换模型 |
/plan | 切换只读计划模式 |
/todo | 查看当前任务列表 |
/compact | 下一次请求前强制压缩上下文 |
校验下载
每次发布都会在同目录生成 .sha256 文件:
:: 下载校验值
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 会失败但不影响其它功能。
