关于 arch-database
面向数据库架构建议的 OpenClaw 技能,可根据应用需求比较数据库类型、设计模式、优化索引,并规划复制或分片。
主要功能
- 01比较数据库类型
- 02设计模式与约束
- 03建议索引策略
- 04规划复制与分片
- 05提供多数据库持久化建议
适用场景
- 01为新后端选择数据库
- 02规划数据库迁移
- 03应对高流量数据需求
- 04排查数据库性能问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill arch-database安装后在 Claude Code 中输入/arch-database确认已加载。
详细介绍
arch-database
用途
此技能可帮助 AI Agent 提供数据库架构决策建议,包括在关系型、文档型、图和向量数据库之间进行选择;设计架构;优化索引;以及规划复制和分片,以构建可扩展的系统。
何时使用
在设计新的应用后端、迁移数据库、处理高流量数据需求或解决性能问题时使用此技能。例如,为需要事务的电商应用选择关系型数据库,而为社交关系图选择图数据库。对于编写 SQL 查询等底层编码任务,请勿使用此技能;应改用专注于查询的技能。
主要功能
- 比较数据库类型:根据数据结构和查询需求,评估关系型数据库(例如 PostgreSQL)与文档型数据库(例如 MongoDB)。
- 设计架构:生成 ER 图或带约束的 JSON 架构,例如定义主键和关系。
- 优化索引:推荐关系型数据库的 B-tree 索引或文档型数据库的全文索引等,以缩短查询时间。
- 处理复制和分片:建议采用主从架构实现容错,或采用水平分片实现负载均衡。
- 支持多语言持久化:建议在系统中混合使用 SQL 和 NoSQL,例如使用 Redis 缓存并搭配 PostgreSQL。
使用方式
通过以 "arch-database:" 为前缀的 OpenClaw 提示词调用此技能,例如:"arch-database: compare relational and graph for a social network." 若以编程方式使用,请使用 JSON 负载调用 OpenClaw API 端点 /api/skills/arch-database。务必提供应用需求等上下文信息(例如读密集型还是写密集型)。若在脚本中使用,请用错误检查封装调用,以处理 API 故障。对于多步骤任务,可与其他 se-architecture 技能串联,例如先设计架构,再优化索引。
常用命令/API
使用 OpenClaw CLI 快速交互:openclaw run arch-database --compare relational document --app-type social(输出优缺点)。对于 API,向 https://api.openclaw.ai/v1/skills/arch-database 发送 POST 请求,并附上类似以下的请求体:
{
"action": "design-schema",
"params": {"db-type": "relational", "tables": ["users", "posts"]}
}
通过请求头 Authorization: Bearer $OPENCLAW_API_KEY 进行身份验证。常用标志:--verbose 用于输出详细信息,--output json 用于生成结构化结果。配置文件可使用如下 YAML:
db-arch:
type: graph
schema: {nodes: users, edges: friendships}
若要生成索引建议,请运行:openclaw run arch-database --index-suggest --query "SELECT * FROM users WHERE name LIKE '%john%'"。
集成说明
设置 API 访问所需的环境变量以完成集成,例如导出 OPENCLAW_API_KEY=your-secret-key。将其嵌入较大的工作流时,请使用 OpenClaw 的 SDK:import openclaw; client = openclaw.Client(api_key=os.environ['OPENCLAW_API_KEY']); response = client.invoke('arch-database', {'action': 'replication-plan', 'replicas': 3})。对于多语言持久化配置,请在应用配置中指定兼容的数据库驱动,例如将 "postgresql" 和 "neo4j" 添加到 Node.js 项目的 package.json 中。上线前,请在沙盒环境中测试集成。
错误处理
调用时,请检查无效参数等错误(例如,db-type 拼写错误时,API 会返回 400)。在代码中使用 try-except 进行处理:try: response = client.invoke('arch-database', params) except openclaw.APIError as e: print(f"Error: {e.status_code} - {e.message}")。对于常见问题,可在出现 5xx 错误时使用指数退避重试。如果技能返回 "incompatible architecture",请完善输入(例如,指定数据量)。记录所有响应以便调试,并在 CLI 中使用 --debug 标志获取详细跟踪信息。
具体使用示例
-
示例 1:比较用户资料系统的数据库类型
提示词:"arch-database:为一个包含 1M 个用户资料且频繁更新的系统,比较关系型数据库和文档数据库。"
预期:Agent 输出:"使用关系型数据库(例如 MySQL)存储结构化数据并确保符合 ACID;使用文档数据库(例如 MongoDB)以支持灵活的架构。建议:使用关系型数据库,并为 user_id 建立索引。"
后续操作:使用输出通过 API 生成架构:向 /api/skills/arch-database 发送 POST 请求,并附带 {"action": "design-schema", "db-type": "relational"}。 -
示例 2:为社交网络设计分片架构
命令:openclaw run arch-database --design-schema --db-type graph --sharding key-based --entities users,posts
预期:Agent 回复:"架构:节点:users {id, name};边:friendships {from, to}。分片:按用户 ID 分片,以实现均匀分布。"
集成:导出为 YAML,并在应用的部署脚本中应用。
图关系
- 相关:se-architecture 集群(例如,链接到 data-modeling 以完善架构)。
- 关联方式:通过 "database" 等标签连接到 query-optimization 工具,以便后续处理索引。
- 依赖项:需要 se-architecture 基础能力以提供复制建议;输出可供部署工具使用。