Files
nexus/openclaw/Agents/TOOLS.md 标准模板.md
2026-04-04 17:22:30 +08:00

10 KiB
Raw Blame History

TOOLS管理

1.统一SSH管理

  • 所有服务器: 包括macmini、ubuntu1、ubuntu2、NAS

  • 管理方式: 通过SSH统一管理不存储sudo密码

  • 权限原则: 遵循最小权限原则

2.管理流程

  1. 所有服务器操作都通过SSH进行

  2. 不存储任何服务器的sudo密码

  3. 需要sudo权限的操作通过SSH执行

  4. 保持所有服务器的管理方式一致

3.文件编辑注意事项

  • 所有重要文件: 使用 exec + echo 追加内容,避免 edit 工具在文件末尾无换行时失败

  • edit工具使用准则: edit依赖精确文本匹配任何空白字符差异都会导致失败。建议先 read 文件确认内容,用 write 重写整个文件更可靠(特别是 memory、SOUL、IDENTITY 等重要文件)

4.FRP (frpc 客户端) 管理

安装目录

服务器     FRP目录                            
macmini /opt/frp/frp_0.65.0_darwin_arm64
ubuntu1 /opt/frp/frp_0.65.0_linux_amd64  
ubuntu2 /opt/frp/frp_0.65.0_linux_amd64  

配置文件

  • 文件名: frpc.toml在FRP目录下

  • 作用: 定义所有通过frp反向代理的应用及端口映射 (localPort ↔ remotePort)

Mac Mini 管理方式launchd

启动方式: launchd plistKeepAlive: true,崩溃自动重启)

plist 位置: ~/Library/LaunchAgents/com.homebrew.frpc.plist

管理命令:


# 重启

launchctl unload ~/Library/LaunchAgents/com.homebrew.frpc.plist && launchctl load ~/Library/LaunchAgents/com.homebrew.frpc.plist

  

# 停止KeepAlive 会自动重启,需先 unload

launchctl unload ~/Library/LaunchAgents/com.homebrew.frpc.plist

  

# 查看状态

launchctl list | grep frpc

  

# 查看日志

tail -f /opt/frp/frp_0.65.0_darwin_arm64/frpc.log

正常状态标志: 日志中显示 [name] start proxy success

Ubuntu1/2 管理方式systemd --user


ssh ubuntu1 'systemctl --user restart frpc'

ssh ubuntu2 'systemctl --user restart frpc'

ssh ubuntu1 'systemctl --user status frpc'

ssh ubuntu2 'systemctl --user status frpc'

不需要密码开机自启linger 已启用)

查看配置


# 读取frpc.toml了解端口映射

cat /opt/frp/frp_0.65.0_xxx/frpc.toml

5.FRP端口映射查询格式 (2026-03-14)

用户会这样提问:

  • "ubuntu1上frp的列表"

  • "macmini的frp配置"

  • "查看ubuntu2的frpc.toml"

格式: 扫描frpc.toml文件列出proxies相关配置

输出格式: 表格 (名称 | 类型 | localPort | remotePort)

查询示例: ssh到对应服务器 -> cat /opt/frp/frp_0.65.0_xxx/frpc.toml

6.FRP状态检查 (2026-04-04)

用户可能说: "检查frp状态"

检查方法:

  1. 如果是macmini服务器

   - launchctl list | grep frpc 查看进程状态

   - tail /opt/frp/frp_0.65.0_darwin_arm64/frpc.log 查看代理启动情况

  1. 如果是ubuntu服务器

   - systemctl --user status frpc

正常状态标志:

  • 所有 proxy 启动成功时会显示: [xxx] [name] start proxy success

  • 例如: 2026-04-04 16:43:01.276 [I] [client/control.go:172] [1a254958e6553119] [macmini-ssh] start proxy success

重启命令 (如果需要):

  1. 如果是macmini服务器

launchctl unload ~/Library/LaunchAgents/com.homebrew.frpc.plist && launchctl load ~/Library/LaunchAgents/com.homebrew.frpc.plist

  1. 如果是ubuntu服务器

systemctl --user restart frpc

7.VPS2 (x-UI 科学上网)

  • IP: 104.194.92.188

  • SSH: ssh vps2

  • 管理命令: x-ui

  • 用途: x-UI 面板管理,用于科学上网

  • 结果展示用列表方式,方便阅读

8.网络测试策略 (2026-03-15)

用户可能说: "网络测试"、"检查服务器科学上网"

测试项目:

  1. 国内直连baidu (https://www.baidu.com)

  2. 国外直连 Google (https://www.google.com)

  3. 国外通过代理访问 Google (socks5://127.0.0.1:10808)

测试命令模板:

国内访问直连


curl -v https://www.baidu.com

国外访问直连


curl -v https://www.google.com

国外访问通过代理连

这是最快、最直接的方法。我们可以强制 curl 使用 SOCKS5 代理去访问 Google 的状态页。

执行命令:


curl -x socks5h://127.0.0.1:10808 -v https://www.google.com

  • 参数解释:

    - -x socks5h://:指定使用 SOCKS5 代理。注意加个 h,这表示让代理服务器去解析域名(防止本地 DNS 污染导致测试失败)。

    - -v(Verbose) 显示详细连接过程。

  • 判断标准:    

    - 如果看到 HTTP/2 200 或者大量的 HTML 文本,说明代理成功

    - 如果显示 Connection refusedTimeout,说明端口未开放或 V2Ray 未运行

服务器列表与代理端口:

| 服务器 | IP | 代理端口 | 备注 |

|--------|-----|---------|------|

| MacMini | 192.168.3.189 | 10808 | V2RayN |

| Ubuntu1 | 192.168.3.47 | 10808 | 需SSH后测试 |

| Ubuntu2 | 192.168.3.45 | 10808 | 需SSH后测试 |

| NAS | 192.168.3.17 | 20170 | 仅监听127.0.0.1 |

| VPS1 | 192.227.222.142 | - | 直连正常 |

| VPS2 | 104.194.92.188 | - | 直连正常 |

输出格式: 列表方式,方便阅读

网络测试输出格式

用户要求格式示例:

• 服务器名

  • 国内访问直连: /

  • 国外访问直连: /

  • 国外访问通过代理XXX连: /

9.OpenClaw 命令路径 (2026-03-27)

| 服务器      | OpenClaw 路径                              |

| -------- | ---------------------------------------- |

| Mac mini | /opt/homebrew/bin/openclaw             |

| Ubuntu1  | /home/shenwei/.npm-global/bin/openclaw |

| Ubuntu2  | /home/shenwei/.npm-global/bin/openclaw |

10.NAS Docker 代理配置 (2026-03-27)

  • 配置文件: /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf

  • 用途: Synology NAS 上 Docker 守护进程的代理设置

  • 修改后需执行: sudo systemctl daemon-reload && sudo systemctl restart docker

11.sag (TTS 语音生成) (2026-03-27)

安装


brew install steipete/tap/sag

API Key 配置

  • 位置: ~/.openclaw/.env

  • 环境变量: ELEVENLABS_API_KEY

生成语音并发送到 Telegram


# 1. 生成 MP3 文件

source ~/.openclaw/.env

sag --api-key "$ELEVENLABS_API_KEY" -o /tmp/voice.mp3 "要转换的文字"

  

# 2. 发送到 Telegram (voice note)

message --account <telegram bot> --chatId <user_id> --filePath /tmp/voice.mp3 --message "文字" --buttons []

使用规则

  • 所有用 sag 生成的语音都必须通过 Telegram voice note 发送给我

  • 使用 当前agent对应的telegram bot 账号发送

  • 文件临时保存在 /tmp/ 目录

OpenCode

  • 路径: /Users/weishen/.opencode/bin/opencode

  • 版本: 1.2.27

  • 用法: 开发任务必须通过它执行

12.OpenClaw Gateway 重启步骤

Mac Mini (2026-03-30 新方法)

使用 launchctl 管理 OpenClaw Gateway 服务:

launchctl unload ~/Library/LaunchAgents/ai.openclaw.gateway.plist && launchctl load ~/Library/LaunchAgents/ai.openclaw.gateway.plist

Ubuntu1/2 服务器 (2026-03-28)

完整操作流程

1. SSH 登录并重启


ssh ubuntu1 'systemctl --user restart openclaw-gateway'

ssh ubuntu2 'systemctl --user restart openclaw-gateway'

2. 查看启动状态


ssh ubuntu1 'systemctl --user status openclaw-gateway'

ssh ubuntu2 'systemctl --user status openclaw-gateway'

3. 检查 OpenClaw 健康状态


ssh ubuntu1 '/home/shenwei/.npm-global/bin/openclaw status'

ssh ubuntu2 '/home/shenwei/.npm-global/bin/openclaw status'

快捷命令组合 (单行执行)


# Ubuntu1

ssh ubuntu1 'systemctl --user restart openclaw-gateway && systemctl --user status openclaw-gateway && /home/shenwei/.npm-global/bin/openclaw status'

  

# Ubuntu2

ssh ubuntu2 'systemctl --user restart openclaw-gateway && systemctl --user status openclaw-gateway && /home/shenwei/.npm-global/bin/openclaw status'

13.AgentMail (邮件收发与自动化) (2026-04-04 更新)

📂 技能目录


~/.openclaw/skills/agentmail/

├── scripts/           # 可直接使用的 Python 脚本

│   ├── check_inbox.py   # 查看收件箱

│   ├── send_email.py    # 发送邮件

│   └── setup_webhook.py # 配置 Webhook

└── references/       # 参考文档

    ├── API.md         # API 完整文档

    ├── EXAMPLES.md    # 使用示例

    └── WEBHOOKS.md   # Webhook 配置指南

快速使用

查看收件箱


unset HTTP_PROXY && unset HTTPS_PROXY && unset http_proxy && unset https_proxy

python3 ~/.openclaw/skills/agentmail/scripts/check_inbox.py --inbox star-agent@agentmail.to --limit 10

发送邮件


python3 ~/.openclaw/skills/agentmail/scripts/send_email.py \

  --inbox star-agent@agentmail.to \

  --to "recipient@example.com" \

  --subject "主题" \

  --text "正文内容"

API Key 配置

  • 位置: ~/.openclaw/.env

  • 环境变量: AGENTMAIL_API_KEY=your_key_here

附件处理

附件需要用 Python 代码下载,参考:


cat ~/.openclaw/skills/agentmail/references/API.md

cat ~/.openclaw/skills/agentmail/references/EXAMPLES.md

⚠️ 注意事项

  • 代理问题:遇到 SOCKS 代理错误时,先 unset HTTP_PROXY && unset HTTPS_PROXY

  • 临时文件存放:下载的附件和临时脚本请放在 ~/.openclaw/temp/<agentId>/ 目录,不要放在 workspace 下

  • 参考文档:详细用法见 references/API.mdreferences/EXAMPLES.md

14.Docker命令路径 (2026-04-04)

| 服务器 | 命令 | 说明 |

|--------|------|------|

| macmini | docker | 直接可用(已在 PATH |

| macmini (SSH) | /Applications/Docker.app/Contents/Resources/bin/docker | SSH 时用完整路径 |

| ubuntu1/2 | docker | 直接可用 |

使用方式:


# macmini 本地

docker ps

  

# macmini SSH

ssh macmini '/Applications/Docker.app/Contents/Resources/bin/docker ps'

  

# ubuntu1/2 SSH

ssh ubuntu1 'docker ps'

ssh ubuntu2 'docker ps'