增加API Key
This commit is contained in:
1
AI/agency-agents
Submodule
1
AI/agency-agents
Submodule
Submodule AI/agency-agents added at 4feb0cd736
@@ -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
|
||||
```
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
287
openclaw/Agents/New Design for TOOL.md.md
Normal file
287
openclaw/Agents/New Design for TOOL.md.md
Normal file
@@ -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 <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
|
||||
- **用法**: 开发任务必须通过它执行
|
||||
|
||||
## 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 "<extracted_email>" \
|
||||
--subject "Re: <original_subject>" \
|
||||
--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 <telegram bot> \
|
||||
--chatId <user_id> \
|
||||
--message "$(cat /tmp/mail.txt)"
|
||||
```
|
||||
### 使用规则
|
||||
- 所有 **重要邮件(如告警 / 客户 / 商机)必须同步到 Telegram**
|
||||
- 邮件正文必须经过摘要处理(避免噪音信息)
|
||||
- 附件文件统一下载到 `/tmp/` 目录再处理
|
||||
- 自动回复必须符合上下文语义,避免机械回复
|
||||
- 对于批量邮件处理,优先输出 JSON 供 Agent 决策
|
||||
- 敏感邮件(如包含凭证 / 密钥)禁止自动转发
|
||||
@@ -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
|
||||
```
|
||||
|
||||
113
openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md
Normal file
113
openclaw/monitor/构建全能监控栈 (Glances + InfluxDB + Grafana).md
Normal file
@@ -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 的查询脚本!
|
||||
Reference in New Issue
Block a user