From fcc3e469bff4bd591c3792319fcb647e3e5a6f9e Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 28 Mar 2026 17:42:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0API=20Key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AI/agency-agents | 1 + AI/🟠API Key.md | 18 ++ openclaw/Agents/New Design Draft.md | 10 - openclaw/Agents/New Design for TOOL.md.md | 287 ++++++++++++++++++ .../Ubuntu 下 OpenClaw 安装与管理指南.md | 2 +- ...全能监控栈 (Glances + InfluxDB + Grafana).md | 113 +++++++ 6 files changed, 420 insertions(+), 11 deletions(-) create mode 160000 AI/agency-agents create mode 100644 openclaw/Agents/New Design for TOOL.md.md create mode 100644 openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md diff --git a/AI/agency-agents b/AI/agency-agents new file mode 160000 index 00000000..4feb0cd7 --- /dev/null +++ b/AI/agency-agents @@ -0,0 +1 @@ +Subproject commit 4feb0cd736dd0e2e9830cd54dfc99770621bed90 diff --git a/AI/🟠API Key.md b/AI/🟠API Key.md index 6f76f9e8..81e2057f 100644 --- a/AI/🟠API Key.md +++ b/AI/🟠API Key.md @@ -219,4 +219,22 @@ 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 # star-agent-mail-api-key am_us_inbox_02cca1b9cdc0adf061ddb5b9f11253aaf0bed554dee2e78f026f9463e83c8294 +``` + +## ElevenLabs +https://elevenlabs.io/app/developers/api-keys +``` +sk_6e7d663649b5c931893cee6f72fc174893470b89e92e723c +``` + +## Scrapecreators API +https://app.scrapecreators.com/ +``` +EYZCRa1FqWSA7YtW4UmEavyKNVB2 +``` + +## Xai +https://console.x.ai/team/7ad45818-bfe7-4517-b64c-a21d9c81dbea/api-keys/create +``` +xai-fGtb2ovSYfeVfPEJoMKNZKJl0SkuILeh0RnU8aCMjkntD3zNACe8rSCZigRf4ouRIRfiZuKwwmh6m8lw ``` \ No newline at end of file diff --git a/openclaw/Agents/New Design Draft.md b/openclaw/Agents/New Design Draft.md index c4b4f0ce..ccd2441a 100644 --- a/openclaw/Agents/New Design Draft.md +++ b/openclaw/Agents/New Design Draft.md @@ -263,9 +263,7 @@ You are: Before doing anything: 1. Read system-related memory - 2. Load recent incidents from memory-lancedb-pro - 3. Understand current system context @@ -276,11 +274,8 @@ Before doing anything: ## Store: - Incidents - - Root causes - - Fix strategies - - Monitoring gaps @@ -295,9 +290,7 @@ Never solve the same problem twice without learning. # 🧰 Tools - System tools (Docker, Linux, etc.) - - Monitoring (Grafana) - - memory-lancedb-pro @@ -308,9 +301,7 @@ Never solve the same problem twice without learning. ## MUST DO - Identify root cause - - Provide step-by-step solution - - Evaluate impact @@ -319,7 +310,6 @@ Never solve the same problem twice without learning. ## MUST NOT - Run destructive commands without confirmation - - Ignore system-wide effects diff --git a/openclaw/Agents/New Design for TOOL.md.md b/openclaw/Agents/New Design for TOOL.md.md new file mode 100644 index 00000000..6af70dc3 --- /dev/null +++ b/openclaw/Agents/New Design for TOOL.md.md @@ -0,0 +1,287 @@ +# TOOLS.md - Local Notes + +```table-of-contents +``` + +# TOOLS管理 +## 统一SSH管理 +- **所有服务器**: 包括macmini、ubuntu1、ubuntu2、NAS +- **管理方式**: 通过SSH统一管理,不存储sudo密码 +- **权限原则**: 遵循最小权限原则 +## 管理流程 +1. 所有服务器操作都通过SSH进行 +2. 不存储任何服务器的sudo密码 +3. 需要sudo权限的操作通过SSH执行 +4. 保持所有服务器的管理方式一致 +## Docker命令路径 +- **macmini**: `/usr/local/bin/docker` 或 `/opt/homebrew/bin/docker`(SSH时PATH不包含docker) +- **NAS**: `/usr/local/bin/docker`(使用 `docker-compose` 而非 `docker compose`) +- **ubuntu1/ubuntu2**: 直接用 `docker` + +## 文件编辑注意事项 +- **所有重要文件**: 使用 `exec + echo` 追加内容,避免 edit 工具在文件末尾无换行时失败 +- **edit工具使用准则**: edit依赖精确文本匹配,任何空白字符差异都会导致失败。建议:先 read 文件确认内容,用 write 重写整个文件更可靠(特别是 memory、SOUL、IDENTITY 等重要文件) + +## 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) +### 管理方式(通过tmux) +1. 切换到root用户: `sudo su` +2. 进入FRP目录: `cd /opt/frp/frp_xxx` +3. 连接到tmux会话: `tmux attach -t frpc` +4. 停止进程: `Ctrl+C` +5. 重启frpc: `./frpc -c frpc.toml` +6. 查看启动是否成功 +### 查看配置 +```bash +# 读取frpc.toml了解端口映射 +cat /opt/frp/frp_0.65.0_xxx/frpc.toml +``` + +## 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 +## FRP状态检查 (2026-03-14) +用户可能说: "检查frp状态" +**检查方法**: +1. SSH到对应服务器 +2. 切换root: `sudo su` +3. 进入FRP目录: `cd /opt/frp/frp_xxx` +4. 如果是macmini服务器连接tmux: `tmux attach -t frpc` +5. 如果是ubuntu服务器:`systemctl status frpc` +6. 查看日志输出 + +**正常状态标志**: +- 所有 proxy 启动成功时会显示: `[xxx] [name] start proxy success` +- 例如: `2026-03-14 20:49:36.007 [I] [client/control.go:172] [65f4a34a064fae9e] [transmission] start proxy success` + +**重启命令** (如果需要): +1. 如果是macmini服务器: +- `Ctrl+C` 停止当前进程 +- `./frpc -c frpc.toml` 重启 +2. 如果是ubuntu服务器 +- `systemctl stop frpc` `systemctl start frpc` `systemctl restart frpc` + +## VPS2 (x-UI 科学上网) +- **IP**: 104.194.92.188 +- **SSH**: `ssh vps2` +- **管理命令**: `x-ui` +- **用途**: x-UI 面板管理,用于科学上网 +- 结果展示用列表方式,方便阅读 + +## 笔记系统 +用户可能说: "请帮我记笔记"、"帮我把这篇文章保存在笔记目录"、"请读取知识库笔记目录下的这篇笔记" +使用obsidian skill 读取/保存/修改Markdown笔记 +Macmini服务器上 +- **Obsidian笔记目录**: `/Users/weishen/Workspace/nexus` +- **Openclaw笔记目录**: `/Users/weishen/Workspace/nexus/openclaw` +- **知识库笔记目录**: `/Users/weishen/Workspace/nexus/openclaw/knowledgebase` +- **星曜专属笔记目录**: `/Users/weishen/Workspace/nexus/openclaw/xingyao` + +## 网络测试策略 (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 refused` 或 `Timeout`,说明**端口未开放或 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连: ✅/❌ +  +## Telegram 配置注意事项 (2026-03-15) +- groupPolicy=allowlist 时必须配置 groupAllowFrom,否则群消息被静默丢弃 +- 中国访问Telegram API需要配置代理 (proxy) +- 代理协议必须是 http:// 或 socks5:// +- Bot 的 has_topics_enabled: false,不支持 Telegram Topics 功能 +## 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` | + +## 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` +**使用方式**: +- SSH 到对应服务器后,使用完整路径执行命令 +- 例如: `ssh ubuntu1 '/home/shenwei/.npm-global/bin/openclaw status'` +## sag (TTS 语音生成) (2026-03-27) +### 安装 +```bash +brew install steipete/tap/sag +``` + +### API Key 配置 +- 位置: `~/.openclaw/.env` +- 环境变量: `ELEVENLABS_API_KEY` +### 生成语音并发送到 Telegram +```bash +# 1. 生成 MP3 文件 +source ~/.openclaw/.env +sag --api-key "$ELEVENLABS_API_KEY" -o /tmp/voice.mp3 "要转换的文字" + +# 2. 发送到 Telegram (voice note) +message --account --chatId --filePath /tmp/voice.mp3 --message "文字" --buttons [] +``` +### 使用规则 +- 所有用 sag 生成的语音都必须通过 Telegram voice note 发送给我 +- 使用 当前agent对应的telegram bot 账号发送 +- 文件临时保存在 /tmp/ 目录 + +### OpenCode +- **路径**: `/Users/weishen/.opencode/bin/opencode` +- **版本**: 1.2.27 +- **用法**: 开发任务必须通过它执行 + +## Nexus Git 仓库配置 +当用户说 "请帮我把这个笔记push到Git" +用于提交Obsidian笔记目录里的笔记,进行版本控制管理 +- **Remote URL**: `ssh://git@192.168.3.189:2222/admin/nexus.git` +- **SSH认证**: 已配置(osxkeychain),无需输入用户名密码 +- **可直接执行**: git add → git commit → git push +- **用户名**: weishen +- **邮箱**: ishenwei@gmail.com + + +## AgentMail (邮件收发与自动化) (2026-03-28) +### 安装 +``` +npm install -g @clawhub/agentmail +``` +### API Key / 账号配置 +- 位置: `~/.openclaw/openclaw.json` 配置路径:skills.entries.agentmail.env +- 环境变量: +AGENTMAIL_API_KEY=your_api_key +AGENTMAIL_EMAIL=your_email@example.com +AGENTMAIL_PROVIDER=imap_smtp # 或 gmail / outlook +AGENTMAIL_IMAP_HOST=imap.example.com +AGENTMAIL_SMTP_HOST=smtp.example.com +AGENTMAIL_PASSWORD=your_password_or_app_password +> ⚠️ 建议使用 **App Password**(如 Gmail / Outlook),避免主密码暴露 +### 发送邮件 +``` +agentmail send \ + --to "target@example.com" \ + --subject "测试邮件" \ + --body "这是一封由 Agent 自动发送的邮件" +``` +#### 带附件发送 +``` +agentmail send \ + --to "target@example.com" \ + --subject "报告文件" \ + --body "请查收附件" \ + --attachments "/tmp/report.pdf,/tmp/log.txt" +``` +### 收取邮件 +``` +agentmail fetch \ + --limit 10 \ + --unread true +``` +#### 输出为 JSON(方便 Agent 处理) +``` +agentmail fetch \ + --limit 20 \ + --format json > /tmp/mails.json +``` +### 搜索邮件 +``` +agentmail search \ + --query "from:boss@example.com subject:urgent" \ + --limit 5 +``` +### 自动化处理(典型 Agent 场景) +#### 1️⃣ 拉取未读邮件并分类 +``` +agentmail fetch --unread true --format json > /tmp/unread.json +``` +#### 2️⃣ 解析后自动回复 +``` +agentmail send \ + --to "" \ + --subject "Re: " \ + --body "已收到您的邮件,我们会尽快处理" +``` +#### 3️⃣ 保存关键邮件到 Markdown(用于知识库 / Daily Notes) +``` +agentmail fetch --limit 10 --format markdown > /tmp/mails.md +``` +### 与 Telegram 联动(通知类) +``` +agentmail fetch --unread true --format text > /tmp/mail.txt +``` + +``` +message \ + --account \ + --chatId \ + --message "$(cat /tmp/mail.txt)" +``` +### 使用规则 +- 所有 **重要邮件(如告警 / 客户 / 商机)必须同步到 Telegram** +- 邮件正文必须经过摘要处理(避免噪音信息) +- 附件文件统一下载到 `/tmp/` 目录再处理 +- 自动回复必须符合上下文语义,避免机械回复 +- 对于批量邮件处理,优先输出 JSON 供 Agent 决策 +- 敏感邮件(如包含凭证 / 密钥)禁止自动转发 \ No newline at end of file diff --git a/openclaw/knowledgebase/Ubuntu 下 OpenClaw 安装与管理指南.md b/openclaw/knowledgebase/Ubuntu 下 OpenClaw 安装与管理指南.md index a625df46..806e4c26 100644 --- a/openclaw/knowledgebase/Ubuntu 下 OpenClaw 安装与管理指南.md +++ b/openclaw/knowledgebase/Ubuntu 下 OpenClaw 安装与管理指南.md @@ -399,7 +399,7 @@ openclaw channels add --channel telegram --account yunzhi --token 8639619464:AAE ``` openclaw channels add --channel telegram --account fengheng --token -openclaw channels add --channel telegram --account fengchi --token +openclaw channels add --channel telegram --account fengchi --token 8696785331:AAEjtl6duODUtjxC8DSCrUsJx5awUZVMkD8 openclaw channels add --channel telegram --account fengji --token ``` diff --git a/openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md b/openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md new file mode 100644 index 00000000..7fa20dbe --- /dev/null +++ b/openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md @@ -0,0 +1,113 @@ +#glances #influxdb #grafana +# 📝 技术笔记:构建全能监控栈 (Glances + InfluxDB + Grafana) + +## 1. 为什么需要这个组合? + +- **Glances (采集层)**:轻量级、全能。负责抓取 M4 芯片负载、GPU 状态、温度以及 Docker 容器指标。 +- **InfluxDB (存储层)**:时序数据库。专门存储随时间变化的数据,方便回顾昨天或上周的服务器波动。 +- **Grafana (展示层)**:可视化门面。将枯燥的数字变成直观的曲线图,并提供多维度报警功能。 + +--- + +## 2. Docker Compose 一键部署脚本 + +在您的服务器上创建目录 `~/monitor`,新建 `docker-compose.yml`: + +YAML + +``` +services: + # 1. 数据库:存储历史监控数据 + influxdb: + image: influxdb:2.7 + container_name: monitor-db + restart: always + ports: + - "8086:8086" + volumes: + - ./influxdb_data:/var/lib/influxdb2 + environment: + - DOCKER_INFLUXDB_INIT_MODE=setup + - DOCKER_INFLUXDB_INIT_USERNAME=admin + - DOCKER_INFLUXDB_INIT_PASSWORD=your_password_here # 请修改密码 + - DOCKER_INFLUXDB_INIT_ORG=my-org + - DOCKER_INFLUXDB_INIT_BUCKET=glances_metrics + + # 2. 采集器:抓取宿主机和 Docker 指标 + glances: + image: nicolargo/glances:latest + container_name: monitor-collector + restart: always + pid: host + network_mode: host # 使用 host 模式以获取最精准的硬件指标 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + environment: + # 关键:配置导出到 InfluxDB v2 + - GLANCES_OPT=-w --export influxdb2 + depends_on: + - influxdb + + # 3. 可视化:精美仪表盘 + grafana: + image: grafana/grafana:latest + container_name: monitor-ui + restart: always + ports: + - "3000:3000" + volumes: + - ./grafana_data:/var/lib/grafana + depends_on: + - influxdb +``` + +--- + +## 3. 核心配置步骤 + +### 第一步:启动容器 + +Bash + +``` +docker compose up -d +``` + +### 第二步:获取 InfluxDB Token + +1. 浏览器访问 `http://服务器IP:8086`。 +2. 使用配置文件中的用户名密码登录。 +3. 进入 **Load Data -> API Tokens**,生成一个全权限的 Token。 +4. **重要**:将此 Token 配置到 Glances 的导出设置中(如果使用环境变量,请更新 `docker-compose.yml` 中的 InfluxDB 相关配置)。 + +### 第三步:配置 Grafana 展示 + +1. 浏览器访问 `http://服务器IP:3000` (默认 admin/admin)。 + +2. **添加数据源**:选择 **InfluxDB**。 + + - Query Language 选择 **Flux**。 + - URL 填写 `http://localhost:8086` (或容器名 `http://monitor-db:8086`)。 + - 填入 Organization, Token 和 Bucket 名。 +3. **导入现成模板**: + - 点击 **Dashboards -> New -> Import**。 + - 输入模板 ID:`13544` (Glances 官方模板) 或 `2387`。 + - 瞬间即可看到美观的 CPU、内存、Docker 容器监控大屏。 + +--- + +## 4. AI Agent 场景应用 + +### 场景 B:OpenClaw Agent 深度对接 +除了看图表,你可以让 OpenClaw Agent 通过查询 InfluxDB 的 API 来获取“历史洞察”: +- **Agent 指令**:“查询过去 3 小时 M4 GPU 的平均负载,如果超过 70%,请告诉我。” +- **业务逻辑**:这能帮你优化 AI 视频剪辑任务的排程。 + +--- +## 💡 维护小贴士 + +- **磁盘清理**:InfluxDB 会产生历史数据。建议在 InfluxDB 设置中配置 **Retention Policy (保留策略)**,例如只保留最近 30 天的数据,防止撑爆磁盘。 +- **安全保护**:既然有 Web 界面,请务必在 Grafana 和 InfluxDB 中设置复杂的强密码。 +--- + +**提示**:如果你在配置 InfluxDB 2.x 的 Flux 查询语句时遇到困难,可以随时问我,我可以帮你写一段用于 OpenClaw 的查询脚本! \ No newline at end of file