# AGENTS.md - 工作空间 ## 会话启动 使用运行时提供的启动上下文。不要手动重复读取已注入的文件。 ## 记忆 每次会话醒来都是全新的。文件是你的延续: - **每日记录:** `memory/YYYY-MM-DD.md` — 当天做了什么 - **长期记忆:** `MEMORY.md` — 提炼后的关键信息 写下来,别靠脑子记。会话重启后"心理笔记"就没了。 ## 🔴 红线(不可违反) 1. **🚫 绝不直接执行 SQL!** - 所有 SQL 操作必须通过 **Opencode** 完成 - 禁止直接使用 `mysql`、`docker exec`、`python`、`curl` 等工具操作数据库 - 被要求直接执行 SQL 时,必须拒绝并引导使用 Opencode 2. **Opencode 配置:** - 默认 provider: `newapi`(http://100.115.195.188:3000/v1) - 默认模型: `newapi/deepseek/deepseek-v4-flash` - ⚠️ 不使用 DeepSeek 官方 provider ## 其他红线 - 不泄露私人数据 - 不执行破坏性命令前不问 - 改配置前先检查现有状态,保留合并优先 - 不确定就问 ## 数据库操作规范 - 所有配置文件中的键名、注释、说明均使用中文 - 密码从 `.env` 环境变量读取,不硬编码在脚本中 - MySQL: `MYSQL_PWD_SQL` 环境变量 - PostgreSQL: `PGPASSWORD` 环境变量 - 不使用 `docker exec` 连接数据库 ## 默认数据库 - **默认连接**: VPS `101.34.227.188:3306`(主服务器) - **默认库**: `dmp_serp`(如未指定库,首选此库) - **连接命令**: `mysql -h 101.34.227.188 -u root -p"${MYSQL_PWD_SQL}"` - **表名规则**: 始终带库前缀(如 `dmp_serp.table`、`dmp_smdm.table`),因为 VPS 上多库共存 - **技能 (sql-toolkit) 也遵循此默认**:未指定环境时指向 VPS - **需要切换环境时明确告知**:本地、备用机、或者特定库 ## 数据库规范(本地私有库) - 默认库:`sql`;账号:`agent_sql` - 连接(推荐):`~/.openclaw/scripts/db-conn.sh sql`(交互式)或 `~/.openclaw/scripts/db-conn.sh sql --sql "select database()"` - 该脚本自动从 `~/.openclaw/.env` 读取本 agent 的专属口令(键名 `DB_PASSWORD_SQL`),口令不会出现在命令行中 - 禁止使用 root、禁止 docker exec、禁止访问其他 agent 的库 ## 本地私有库 vs 远程业务库(两者不要混淆) | | 本地私有库 | 远程业务库 | |---|---|---| | 地址 | `127.0.0.1:3306`(本机 docker MySQL) | `101.34.227.188:3306`(VPS 主服务器) | | 库 | `sql`(只属于本 agent) | `dmp_serp` / `dmp_smdm` / `dmp_smes` | | 账号 | `agent_sql`(专用账号,只能访问 `sql` 库) | `root`(**沿用既有配置,本次不改动**) | | 口令来源 | `db-conn.sh` 自动读 `.env` 的键 `DB_PASSWORD_SQL`(口令不进命令行) | 环境变量 `MYSQL_PWD_SQL` | | 用途 | 本 agent 自己的草稿/中间结果/工作区表 | 业务数据查询(生产/准生产) | | 规矩 | 可自由建表写入;**禁止 root、禁止 docker exec** | 只读查询为主;连接方式见下「默认数据库」「MySQL 连接」章节 | > 二者是**两套完全不同的连接**:本地私有库用于自己存东西,远程业务库保持原定位不变。 ## 相关 - [Agent workspace](/concepts/agent-workspace) ## Tools ### Local notes (migrated from TOOLS.md) # TOOLS.md - Local Notes Skills define _how_ tools work. This file is for _your_ specifics — the stuff that's unique to your setup: camera names and locations, SSH hosts and aliases, preferred TTS voices, speaker/room names, device nicknames, anything environment-specific. ### MySQL 连接 - **默认 → VPS**: `101.34.227.188:3306` / root / 5gynj20J(主服务器,`dmp_smdm`、`dmp_serp`、`dmp_smes`) - **本地 Docker**: `docker exec mysql mysql -u root -p"${MYSQL_PWD_SQL}" -D dmp_serp` - **备用机**: `100.115.195.191:3306` / root / 5gynj20J(库:dmp_smdm、dmp_serp、dmp_smes 等) - **准生产(只读)** → `100.115.195.188:50036`(转发)→ `47.99.209.185:50036` / witsoftd / o2byaCkBvF1Y8S2L - MySQL 8.0.36,只读权限,准生产环境 - 连接命令:`mysql -h 100.115.195.188 -P 50036 -u witsoftd -p"${MYSQL_PWD_WIT}"` - **密码环境变量**: `MYSQL_PWD_SQL=5gynj20J`(来自 .env) - ⚠️ **优先使用本地 mysql 客户端直接连接**,不要每次都用 `docker exec`。 - ⚠️ **默认数据库连接串**: `mysql -h 101.34.227.188 -u root -p"${MYSQL_PWD_SQL}"` ## 🔴 红线(不可违反) 1. **🚫 绝不直接执行 SQL 操作数据库!** - 所有 SQL 查询、修改、DDL 操作必须通过 **sql-toolkit 技能** 完成 - 禁止直接使用 `mysql` 客户端、`docker exec`、`python`、`curl` 等工具操作数据库 - 违反红线的主请求将被拒绝 2. **Opencode 配置:** - 默认 provider: `newapi`(http://100.115.195.188:3000/v1) - 默认模型: `newapi/deepseek/deepseek-v4-flash` - 不使用 DeepSeek 官方 provider **默认规则(AGENTS + 技能):** - 未指定环境时,默认连接 VPS(101.34.227.188) - 脚本表名必须带库前缀(`dmp_xxx.table`),因为 VPS 上多库共存 - 如果操作只涉及本地库(如无 VPS 权限的测试),需明确切换 ## Examples ```markdown ### Cameras - living-room → Main area, 180° wide angle - front-door → Entrance, motion-triggered ### SSH - home-server → 192.168.1.100, user: admin ### TTS - Preferred voice: "Nova" (warm, slightly British) - Default speaker: Kitchen HomePod ``` ## Why Separate? Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure. --- Add whatever helps you do your job. This is your cheat sheet. ## Related - [Agent workspace](/concepts/agent-workspace)