最近一次安全检查,SIEM 平台上突然刷出来几百条告警,虽然大半是误报,但人工逐条核对、提取来源 IP、翻历史日志、写初步研判,硬是折腾到后半夜。当时我脑子里只有一个想法:这种活儿必须找个 AI Agent 来分担。我最后选择在蓝队的云服务器上部署 OpenClaw,把它变成团队里一个能读日志、能跑脚本、能写报告初稿的“安全运营助理”。这篇文章就是这次部署的完整记录,从选机器、装环境、接模型,到配技能、管权限、排故障,按实际执行顺序写下来。如果你也是蓝队、安全运维或者 DevSecOps,想把大模型能力真正落地到日常工作中,这篇应该能帮你少踩不少坑。
1. 为什么我在蓝队场景里选择 OpenClaw 而不是随便一个大模型对话
1.1 蓝队安全运营里的“杂活”清单
先盘一下蓝队日常到底在忙什么。很多人以为蓝队就是攻防演练时坐在屏幕前防守,其实平时的工作大量是告警研判、日志溯源、IOC 整理、报告撰写、规则调优。这些任务有一个共同点:碎片化、重复化、上下文老是断。
比如最常见的告警研判流程:SIEM 里拉出一批登录失败记录,你要找出哪些 IP 在短时间内暴破、哪些账号被命中、有没有已经成功的登录,然后写成一段结论贴到群里。过去我一天至少要把同样的话术复制粘贴十几遍:先贴日志片段,再贴模型对话框,等回复,再自己改写成团队口径,最后归档。一个中级蓝队人员,每天花在这种“复制、粘贴、改写”上的时间少说两三个小时。
我一开始也试过直接开个大模型对话框来问,但很快发现问题:对话式 AI 没有持久化的工作上下文,你上午让它分析某段日志,下午它就把规则忘干净了。它也不能直接读服务器上的文件、执行一条命令、把结果写入指定目录。最麻烦的是没有审计记录,所有问答都停留在聊天窗口里,出了问题根本没法溯源。
1.2 OpenClaw 和普通对话式 AI 的区别
OpenClaw 本质上是一个能“动手”的 Agent 框架,不是聊天窗口。它会把工作目录、技能、记忆、执行审批这些机制组合起来,让模型不再只是“回答你的问题”,而是“完成你的任务”。
我举个例子。你让普通大模型“分析 /opt/blue/logs 目录下的日志”,它只能让你把日志复制粘贴到对话框里,然后给你一段泛泛的分析。但 OpenClaw 可以直接读取 workspace 或指定目录下的文件,调用 Python 脚本做统计,提取异常 IP,最后在指定路径生成一份 Markdown 报告。它甚至能自己拆解任务:先列出目录内容,再判断哪些文件需要分析,然后写脚本处理,最后汇总结果。这就是 Agent 和 Chatbot 的分界线。
还有一点很关键:OpenClaw 本身不提供模型,只负责编排和工具调用。模型由后端 LLM 提供,你可以接本地 Ollama 开源的 Qwen、Llama,也可以接 DeepSeek API、NVIDIA NIM,或者任何 OpenAI 兼容接口。这意味着模型能力和 Agent 能力解耦,换模型不影响工作流。
1.3 为什么部署在云服务器而不是本机
我见过很多人把 Agent 装在自己电脑上,方便是方便,但蓝队场景真的不合适。首先,安全运营需要 7×24 小时在线,你电脑合上盖子任务就断了。其次,Agent 应该是一个团队共享的服务,而不是某个人桌面的私有工具。云服务器可以固定 IP、弹性扩容、做快照回滚,还能跟 SIEM、Webhook、工单系统做长期集成。
当然,选云服务器时也要考虑数据合规。如果分析的日志里含有业务敏感数据,尽量选择国内云厂商的合规区域,或者直接私有化部署在公司的 IDC,模型接口走内网。这一步在选型的时候就要想清楚,别等数据进去了再折腾迁移。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署前的规划:选机器、选系统、定架构
2.1 云服务器配置怎么选
OpenClaw 本身对资源的要求不高,真正吃资源的是本地模型。先想清楚一个问题:你打算用 API 模型还是本地模型?这直接决定硬件选型。
| 使用场景 | 推荐配置 | 说明 |
|---|---|---|
| 只跑 OpenClaw,模型走 API | 2 核 4G,系统盘 50G | 足够支撑日常任务和 Web 管理界面 |
| 多 Agent、定时批量任务、WebUI 对外服务 | 4 核 8G,系统盘 100G | 需要处理并发,留出内存余量 |
| 同时跑 7B~14B 本地模型 | 4 核 16G 起步,建议 GPU | 量化模型吃内存,推理速度吃算力 |
| 跑 70B 级别模型 | 8 核 32G + 24G 显存以上 | 一般建议模型单独部署,OpenClaw 只做编排 |
我们团队最初买的是一台 2 核 4G 的轻量服务器,计划模型全走 API。后来为了让日志分析不出公网、数据本地闭环,又加了一台带 GPU 的机器单独跑 Ollama。OpenClaw 这台轻量服务器只负责任务编排和调度,两台机器通过内网通信。这个架构现在跑得很稳。
2.2 系统与运行环境准备
操作系统我推荐 Ubuntu 22.04 LTS,稳定性好,安全补丁跟得也及时。环境方面主要装 Node.js 和 Docker,因为 OpenClaw 本身是 Node.js 生态的框架,Docker 则用来跑辅助服务和隔离沙箱。
bash复制sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
build-essential 一定要装,有些 npm 原生模块在云服务器上需要本地编译,缺了它会出现各种编译报错。公司网络环境如果有限制,记得提前把 npm 镜像源切到国内源,避免下载依赖时卡到天荒地老:
bash复制npm config set registry https://registry.npmmirror.com
Docker 的安装也很简单:
bash复制curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
跑通 hello-world 说明 Docker 安装正常。这里有个小细节:usermod -aG docker 之后要重新登录或执行 newgrp docker,否则当前会话拿不到 docker 组权限。
2.3 网络与端口规划
OpenClaw 默认的管理界面和 API 端口一般走 3000(不同版本可能会有差异,以官方文档为准)。端口本身不重要,重要的是暴露方式。我的建议很明确:服务一定要监听 127.0.0.1,不要让端口裸奔到公网。对外访问用 Nginx 反向代理,前面加一层认证。
/etc/nginx/sites-available/openclaw 配置参考:
nginx复制server {
listen 443 ssl;
server_name agent.example.com;
ssl_certificate /etc/nginx/ssl/agent.crt;
ssl_certificate_key /etc/nginx/ssl/agent.key;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "OpenClaw";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
auth_basic 虽然只是 HTTP Basic 认证,但对于内网工具已经够用了。如果你们有统一的跳板机或 SSO,也可以换 OIDC 或者客户端证书方案。
2.4 蓝队视角的初始化安全加固
Agent 拥有执行命令的能力,它就是一个高权限实体。所以部署 OpenClaw 必须按照生产服务的安全标准来,不能图省事。
第一,不要用 root 用户跑服务。我专门建了一个低权限用户:
bash复制sudo useradd -m -s /bin/bash openclaw
sudo usermod -aG docker openclaw
第二,SSH 改成密钥登录,关闭密码登录。修改 /etc/ssh/sshd_config:
code复制PasswordAuthentication no
PubkeyAuthentication yes
改完记得 sudo systemctl restart sshd,并且确认自己的密钥已经加进 ~/.ssh/authorized_keys。
第三,防火墙只放行必要端口:
bash复制sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
第四,API key 不要直接写死在配置文件里,也不要把配置文件提交到 Git 仓库。建议用环境变量注入,并在服务器上把配置文件的权限收紧到 600。
3. OpenClaw 安装与初始化:从空机器到 Agent 跑起来
3.1 安装方式怎么选
OpenClaw 常见的安装方式有三种,各有各的适用场景:
| 方式 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| npm 全局安装 | 命令直接可用,升级方便 | 依赖系统 Node 版本,环境隔离较差 | 个人使用、快速迭代 |
| Docker 部署 | 资源隔离好,日志存储卷管理方便,回滚容易 | 调试容器内命令稍繁琐 | 生产环境、团队共享 |
| 源码运行 | 方便二次开发和调试 | 要自己管理依赖和分支 | 准备改框架代码的团队 |
我先后用了两套:测试机用 npm 装,生产环境用 Docker。如果你刚接触,我建议先在一台临时机器上用 npm 方式把流程跑通,理解目录结构之后,再决定要不要迁到 Docker。
3.2 正式安装步骤
在 Ubuntu 上,npm 方式安装只需要一条命令:
bash复制sudo npm install -g openclaw
openclaw --version
如果 openclaw: command not found,多半是 npm 全局 bin 目录没进 PATH。执行 npm config get prefix,然后把输出的路径加到 /etc/profile.d/nodejs.sh 里:
bash复制export PATH=/usr/local/bin:$PATH
Docker 方式部署则更干净一些:
bash复制docker volume create openclaw-data
docker run -d \
--name openclaw \
--restart unless-stopped \
-v openclaw-data:/root/.openclaw \
-p 127.0.0.1:3000:3000 \
openclaw/openclaw:latest
我加了几个关键的挂载:openclaw-data 数据卷保存配置、工作目录、记忆和日志;如果需要让 Agent 读取系统日志,可以只读挂载 /var/log。挂载前一定要想好暴露面,只读挂载不代表安全,敏感日志一样可以被 Agent 读走,所以要通过技能和白名单去限制访问范围。
3.3 初始化配置与目录结构
执行初始化命令:
bash复制openclaw init
这条命令会在 ~/.openclaw 下生成一套标准目录:
code复制~/.openclaw/
├── config.json
├── exec-approvals.json
├── workspace/
├── skills/
├── memory/
└── logs/
每个目录的作用我都理清楚之后,配置起来就心理有数了:
- config.json:主配置,模型后端、监听端口、工作目录、执行策略都在这里。
- exec-approvals.json:命令执行审批的记录和规则,蓝队场景里这是最重要的安全配置文件。
- workspace:Agent 的工作空间,它读写文件都默认在这个范围内。
- skills:技能目录,每个子目录对应一个技能。
- memory:长期记忆,Agent 可以把跨任务的经验存在这里。
- logs:运行日志,审计全靠它。
一份最小可用的 config.json 大概是这样的:
json复制{
"port": 3000,
"host": "127.0.0.1",
"workspace": "~/.openclaw/workspace",
"model": {
"provider": "ollama",
"baseUrl": "http://127.0.0.1:11434",
"modelName": "qwen2.5:14b",
"temperature": 0.2
},
"execPolicy": {
"default": "ask",
"allowlist": ["ls", "cat", "grep", "python3", "node"]
}
}
execPolicy 是执行审批策略。默认 ask 表示每次执行命令前都要问管理员,allowlist 里列出的命令可以直接放行。蓝队场景我强烈建议保持这个策略,别一上来把所有命令都设为 allow。
3.4 首次启动与冒烟测试
启动服务:
bash复制openclaw start
如果只想像普通服务一样前台挂着调试,可以用:
bash复制openclaw serve
启动之后先做一次健康检查:
bash复制curl http://127.0.0.1:3000/health
能返回正常状态码,说明服务起来了。接下来做一个最简单的冒烟测试:让 Agent 列出 workspace 目录下的文件,并且创建一个测试文件。这个过程会触发一次命令执行审批,正好可以验证审批链路是否生效。审批通过后,到 workspace 目录确认文件确实创建成功,整个基本流程就算通了。
4. 接入模型后端:LLM 是 Agent 的发动机
4.1 三种主流方案对比
OpenClaw 只是个“身体”,模型才是“大脑”。我在部署前对比了三种主流模型后端方案:
| 方案 | 数据隐私 | 成本 | 延迟 | 硬件要求 | 适合场景 |
|---|---|---|---|---|---|
| Ollama 本地模型 | 最高,数据不出内网 | 仅电费 | 受 GPU/内存限制 | 需要较强本地算力 | 敏感日志分析、离线环境 |
| DeepSeek/OpenAI 兼容 API | 数据出公网,需要评估 | 按量计费,弹性 | 快 | 无 | 日常任务、报告生成 |
| NVIDIA NIM | 可私有化可托管,灵活 | 较高 | 快 | 看部署方式 | 需要较高模型性能的企业环境 |
我们的最终方案是双路并行:日常告警分析走本地 Ollama,保证日志数据不出内网;生成正式报告和复杂推理用 DeepSeek API,速度和质量都有保障。两条路都在 OpenClaw 的配置里按技能区分模型,互不干扰。
4.2 Ollama 本地部署开源模型
Ollama 的安装很直接:
bash复制curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:14b
ollama run qwen2.5:14b
拉取模型之后跑一下,确认推理正常。如果你只想做日志摘要这种轻量任务,7B 模型就够用了;想处理复杂推理和多步骤任务,14B 会明显更稳。有个内存预算可以参考:7B 量化模型大概吃 5~6G 内存,14B 量化大概需要 15G 左右。
默认 Ollama 只监听 127.0.0.1:11434,如果 OpenClaw 和 Ollama 不在同一台机器,需要修改 Ollama 的监听地址:
bash复制export OLLAMA_HOST=0.0.0.0:11434
改成全网监听之后,务必在防火墙里限制 11434 端口的访问来源,只允许 OpenClaw 所在的内网 IP 访问,不让内网其他机器白嫖算力。
4.3 接入 DeepSeek API 与 NVIDIA NIM
DeepSeek 的接口兼容 OpenAI 协议,配置特别简单。在 config.json 里把模型 provider 改成 openai-compatible:
json复制{
"model": {
"provider": "openai-compatible",
"baseUrl": "https://api.deepseek.com/v1",
"apiKey": "sk-xxxxxxxx",
"modelName": "deepseek-chat",
"temperature": 0.2,
"maxTokens": 4096
}
}
NVIDIA NIM 的配置类似,只是 baseUrl 换成 NIM 的接口地址,模型名对应 NIM 上发布的模型 ID,比如 meta/llama-3.3-70b-instruct:
json复制{
"model": {
"provider": "nim",
"baseUrl": "https://integrate.api.nvidia.com/v1",
"apiKey": "nvapi-xxxxxxxx",
"modelName": "meta/llama-3.3-70b-instruct"
}
}
有一点值得注意:API key 一律通过环境变量注入,不要直接硬编码进配置文件。比如在 systemd 服务文件里设置 Environment=OPENCLAW_API_KEY=...,然后 config.json 里写 ${OPENCLAW_API_KEY},这样即使配置文件外泄,密钥也不会跟着暴露。
4.4 模型参数与 Agent 行为调优
模型参数对 Agent 的影响非常大,我试了几组之后总结出一些经验:
- temperature:蓝队分析任务建议 0.1~0.3,越低越稳定,减少胡编乱造。写报告初稿时可以适当放宽到 0.5。
- maxTokens:日志分析经常会生成很长的摘要,
maxTokens调到 4096 以上,不然输出常常被截断。 - timeout:本地模型推理慢,API 偶尔也会慢,超时设置至少 120 秒,否则一个稍微复杂的任务就会超时失败。
- 上下文窗口:不要把几万行日志一次性塞给模型。先让 Agent 用脚本统计、抽样,再喂结果给模型,速度和准确率都更好。
4.5 多模型路由与降级策略
生产环境里模型 API 不是永远可靠,限流、超时、断连都会发生。我给 OpenClaw 配置了多模型路由的思路:日志分析这类对隐私要求高的任务走本地 Ollama,报告生成走 DeepSeek API,一旦主模型调用失败,自动重试两次,仍失败就切换到备用模型,同时给管理员发一条告警通知。
这样即使某一路模型挂了,Agent 的核心任务也不会停摆。降级策略的配置还可以细化到技能级别,不同技能用不同模型,互不影响。
5. 蓝队实战配置:技能、权限与自动化工作流
5.1 配置技能(Skill):从“会聊天”到“能干活”
OpenClaw 真正厉害的地方是技能机制。技能不是普通的 prompt 模板,而是“描述 + 可执行逻辑”的组合。Agent 会读技能的描述,判断当前任务能不能用这个技能来处理,然后用技能里的脚本去实际干活。
举个我们实际在用的技能:log-triage,负责告警日志的初级研判。
技能目录结构:
code复制~/.openclaw/skills/log-triage/
├── SKILL.md
├── main.py
└── requirements.txt
SKILL.md 定义了技能的元信息和触发条件:
markdown复制---
name: log-triage
description: 对SIEM导出的CSV/JSON告警日志做初级研判,输出分级摘要与可疑IP列表
trigger: 分析告警、日志研判、整理异常IP
---
main.py 里干的事情很具体:读取指定日志文件,按告警类型聚合统计 TOP 10,提取出现次数最多的来源 IP,按严重程度分高中低三级,最后输出一份 Markdown 摘要。Agent 的任务描述里只要提到“分析日志”,它就会自动匹配这个技能并执行。
实际使用下来,这套机制让 Agent 不再是一个“有时聪明有时蠢”的聊天机器人,而是一个能稳定执行固定流程的自动化助理。
5.2 执行审批机制:机器替人干活的前提是管得住
在蓝队场景,Agent 拿到的是真实服务器权限,如果它执行了 rm -rf / 或者 shutdown,后果不堪设想。OpenClaw 的 exec-approvals.json 就是为了管住这一点。
我配置的审批策略:
json复制{
"default": "ask",
"rules": [
{ "pattern": "rm -rf /", "action": "deny" },
{ "pattern": "shutdown", "action": "deny" },
{ "pattern": "init 0", "action": "deny" },
{ "pattern": "curl*", "action": "allow" },
{ "pattern": "apt install*", "action": "ask" },
{ "pattern": "python3 *", "action": "ask" }
],
"historyFile": "~/.openclaw/exec-approvals.json"
}
这里面的逻辑很清晰:明确危险操作直接拒绝;只读命令、网络请求放行;安装软件、执行脚本需要人工确认;所有命令的执行记录都会落盘到 historyFile。这些审批记录在攻防演练复盘的时候特别有用,出了事能追溯 Agent 到底执行过什么。
特别提醒一点:不要让 Agent 执行“从外部下载脚本然后执行”这种复合命令,太容易被劫持了。真有需要,把脚本放到技能目录里,经过评审后再让 Agent 调用。
5.3 蓝队常用工作流:告警摘要、日志初筛、报告草稿
配置完技能和权限,我落地了三个具体的工作流场景,参考价值比较大。
第一个是告警摘要。SIEM 每天定时导出告警 CSV 到 /opt/blue/alerts/ 目录,OpenClaw 的定时任务读取最新文件,调用 log-triage 技能,生成一份摘要。然后通过 Webhook 推送到团队的即时通讯群:
bash复制curl -X POST -H "Content-Type: application/json" \
-d '{"msgtype": "text", "text": {"content": "蓝队AI摘要:今日告警120条,高危3条,详见报告。"}}' \
https://your-im-webhook.example.com/hook
第二个是日志初筛。从认证日志中提取暴破特征,统计失败次数最多的 IP:
bash复制grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20
这个命令执行完,Agent 会把结果和威胁情报库做交叉对比,输出一份“可疑 IP 清单及处置建议”。整个过程完全在 OpenClaw 里完成,不需要人手工登录服务器。
第三个是报告草稿。给 Agent 一个模板,让它根据告警数据生成事件处置报告初稿,包括事件时间线、影响范围、建议措施。但团队里有一条硬规则:AI 只负责写初稿,所有结论必须经人工复核才能外发。AI 分析得再快,也不能替人做判断。
5.4 与现有安全工具链的联动
OpenClaw 的价值在联动之后才真正释放。我现在做的联动包括:
- 通过 API 调用 SIEM 查询接口,把返回值存到 workspace,再让 Agent 分析;
- 通过 Webhook 把分析结果推送到同事已经习惯的 IM 工具;
- 通过工单系统 API 自动创建告警工单,标题和初步分级由 Agent 生成;
- 用 cron 定时跑任务:每两小时执行一次日志初筛,每天早上八点生成昨日安全摘要。
一个典型的 crontab 条目:
code复制0 */2 * * * cd /opt/blue && /usr/bin/openclaw run log-triage --input /opt/blue/alerts/latest.csv --output /opt/blue/reports/today.md
这套联动跑起来之后,团队每天节省的时间非常可观,关键是大家不用再在多个系统之间来回切换。
6. 部署后的验证、监控与维护:上线只是开始
6.1 上线前必做的验证清单
服务跑起来不等于能直接用。我每次部署完成都会按一套验证清单逐项过一遍,避免上线后才发现问题:
- 功能验证:完整跑一遍“读取日志 → 统计分析 → 生成报告”全流程,确认输出文件正确生成;
- 性能验证:记录一次标准任务的耗时。以 1000 条日志为例,本地 14B 模型大约需要 3~5 分钟,DeepSeek API 大约 30 秒;耗时差距心里有数才能合理安排任务;
- 权限验证:让 Agent 尝试读取
/etc/shadow,确认被拒绝;尝试rm -rf一个临时文件,确认被审批机制拦截; - 安全验证:检查
exec-approvals.json里的执行记录,确认每一步都有据可查。
6.2 日志与监控:Agent 干了什么必须有记录
蓝队对“不可审计的东西”天然不信任。OpenClaw 自身的 logs 目录会记录运行日志,但这还不够。我建议把 Agent 的输入输出、执行命令、审批记录全部纳入日志审计范围,并定期归档。
我用 systemd 把 OpenClaw 托管起来,这样它可以开机自启、异常自动重启:
code复制[Unit]
Description=OpenClaw Agent Service
After=network.target
[Service]
User=openclaw
ExecStart=/usr/bin/openclaw start
Restart=always
RestartSec=10
Environment=OPENCLAW_API_KEY=xxxx
[Install]
WantedBy=multi-user.target
启用服务:
bash复制sudo systemctl daemon-reload
sudo systemctl enable --now openclaw
同时,我在监控系统里配置了进程存活、端口监听、内存占用三组告警,Agent 异常退出能在五分钟内收到通知。在蓝队场景里,安全工具本身沦为攻击对象是最常见的风险,所以对 OpenClaw 的监控必须和业务服务一样严格。
6.3 升级、备份与回滚
OpenClaw 迭代速度很快,我一般是每个季度评估一次升级。升级之前必做三件事:备份配置、打云快照、准备回滚方案。
备份命令很简单:
bash复制tar czf backup-openclaw-$(date +%F).tar.gz ~/.openclaw
Docker 方式部署的更简单:直接升级镜像 tag,数据卷保留不动,回滚时换回旧镜像即可。但有一点要注意:升级后技能目录的格式可能变化,所以无论哪种方式装完都要跑一遍冒烟测试,确认核心技能还能正常匹配。
6.4 部署和运行中的常见问题排查
下面这几个问题是我实际部署过程中遇到过的,按出现频率排序:
| 症状 | 可能原因 | 处理方式 |
|---|---|---|
openclaw: command not found |
npm 全局目录不在 PATH | 执行 npm config get prefix,把输出目录加到 /etc/profile.d/ |
| 端口 3000 被占用 | 其他服务占用端口 | lsof -i:3000 查占用进程,改 config 里的端口 |
| Agent 连不上 Ollama | Ollama 只监听了 127.0.0.1,或防火墙拦截 | 检查 OLLAMA_HOST,确认 11434 端口放行,curl http://127.0.0.1:11434/api/tags 测试 |
| API 请求 401 | apiKey 错误或环境变量未加载 | 检查密钥前后空格,确认 systemd 里 Environment 配置正确 |
| 中文输出乱码 | 系统缺少中文字符集 | 安装 language-pack-zh-hans,设置 LANG=en_US.UTF-8 |
| exec-approvals.json 写入失败 | 目录权限不对 | chown -R openclaw:openclaw ~/.openclaw |
| 技能不生效 | SKILL.md 格式错误或目录权限问题 | 检查技能目录结构和文件格式,重启服务,看日志 |
| NVIDIA NIM 模型列表为空 | baseUrl 或 API key 错误 | 先用 curl 手测 NIM 接口连通性,再检查配置 |
Windows 上安装时想指定目录,可以在安装前设置环境变量:
powershell复制$env:OPENCLAW_HOME="D:\openclaw\home"
npm install -g openclaw
这样配置和数据都会落在 D:\openclaw\home,而不是默认的用户目录。
最后分享两个我踩过的坑。第一个是初期图省事直接用 root 用户跑 Agent,结果有一次日志摘要任务写了一个死循环脚本,把系统盘临时目录直接塞满,整个服务器卡死。从此我老老实实改成了专用用户 + systemd 管理,资源也要加配额限制。第二个坑是过度信任 Agent 的输出。有一次它读了一份伪造的日志文件,居然一本正经地分析出一条根本不存在的攻击链,还写了建议封禁的 IP 列表,幸好团队有人认真复核才发现不对劲。从那以后我们定了一条规矩:Agent 的产出必须标注数据来源,所有结论在人工复核之前都只能算“草稿”,不能直接进报告。OpenClaw 真正节省的是复制粘贴、格式整理和初步统计的时间,而不是分析和判断本身。
