mcpField
A
arch-database

arch-database

github.com/alphaonedev数据与数据库40 次安装
代码仓库

关于 arch-database

面向数据库架构建议的 OpenClaw 技能,可根据应用需求比较数据库类型、设计模式、优化索引,并规划复制或分片。

主要功能

  1. 01比较数据库类型
  2. 02设计模式与约束
  3. 03建议索引策略
  4. 04规划复制与分片
  5. 05提供多数据库持久化建议

适用场景

  1. 01为新后端选择数据库
  2. 02规划数据库迁移
  3. 03应对高流量数据需求
  4. 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. 示例 1:比较用户资料系统的数据库类型
    提示词:"arch-database:为一个包含 1M 个用户资料且频繁更新的系统,比较关系型数据库和文档数据库。"
    预期:Agent 输出:"使用关系型数据库(例如 MySQL)存储结构化数据并确保符合 ACID;使用文档数据库(例如 MongoDB)以支持灵活的架构。建议:使用关系型数据库,并为 user_id 建立索引。"
    后续操作:使用输出通过 API 生成架构:向 /api/skills/arch-database 发送 POST 请求,并附带 {"action": "design-schema", "db-type": "relational"}。

  2. 示例 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 基础能力以提供复制建议;输出可供部署工具使用。

评论

支持 Markdown