资料库安全读写避坑

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

WorkBuddy 内置「资料库」存数据、跑自动化同步,最常栽在 API 静默失败:url 字段被悄悄清空、返回 success 却没落库、select 选项不对直接报 11607。这个技能把增删改查的正确姿势和坑点一次讲清——字段写/读格式对照(url 必须对象包裹、选项 11607、image/attachment/person 差异)、批量 1–100 上限与分片、游标分页、false-success 回查、写前 schema 校验、不可逆操作护栏。附本地预检脚本 db_write_guard.py:不联网、不收 token、不调接口,提交前自动拦下 url 裸串、未知字段、选项越界。所有坑点对照 skill-library 5.6.2 源码核实,适合所有用资料库的 WB 用户。

一句话选型结论

按资料字段整理

资料库安全读写避坑是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_9e7626c1/wb-db-safe-ops
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_9e7626c1仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791662503
正文体量6.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
资料库安全读写避坑当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

6.5 KB
模型实际读到的说明书原文,来自技能仓库

WorkBuddy 资料库安全读写(避坑版)

把 WorkBuddy 内置「资料库」增删改查的正确字段格式与反坑清单固化下来。聚焦纯 API 操作避坑:字段值格式、读取、批量、分页、成功判据、写入前校验、不可逆操作的护栏。不碰 token / 宿主通道那一层。

什么时候用这个 Skill

用户问到这些场景时加载:

  • 「往资料库写 url 字段怎么老被清空」
  • 「workbuddy 资料库 url / 链接字段格式到底怎么写」
  • 「batch_add 一次能写几条?我批量入库怎么分片」
  • 「查资料库返回 success 但记录没写进去」
  • 「query 资料库怎么翻页,数据好几万条」
  • 「资料库 select 选项报 11607 是什么错」
  • 用资料库存数据、写自动化同步脚本、做采集入库

核心结论(先读这条)

  1. 写侧字段值(PropertyValue)和读侧字段值(FieldValue)格式不一样;写错不报错,只是静默失败或清空。
  2. url 字段必须写成对象 { "url": { "text": "...", "link": "https://..." } };写成裸字符串 "url": "https://..." 会被静默清空。
  3. 批量接口单次 1–100 条;超过必须分片。生产环境保守分片 20–50 条更稳。
  4. results[].success: true 不等于已落库,接口可能返回成功但没写进去;报送完成前必须回查。
  5. 删除字段 / 批量删除 / 改字段类型 / 删 select 选项是不可逆操作,必须 warn-then-wait。
  6. 字段名必须与 get_database_schema 的实时返回完全一致,不能凭记忆或样例文档构造。

写值正确姿势(PropertyValue 速查)

完整对照表见 @references/value-formats.md。要点:

  • 所有写值都是 oneof:{ "<类型key>": 值 },只能有一个 key,不能混用。
  • url:{ "url": { "text": "官网", "link": "https://..." } } —— 是对象,不是字符串。
  • select / multi_select:传选项的 text 或 id 都可以,但必须是 schema 里已存在的选项,否则报 11607(选项不会自动创建)。
  • image:{ "image": { "images": [{ "title": "...", "imageUrl": "https://..." }] } } —— 外层包一层 images 数组。
  • attachment:数组,每项至少含 name / fileType / fileSize / mediaType,确认上传后用 attachmentId 引用。
  • person:数组,每项 { "id": "uid..." } —— 写只收 id,name 由服务端回填。
  • phone_number 的 key 带下划线,不要写成 phone。

读值(FieldValue)与写值的差异

  • 读出来的 select 只是字符串(选项 text),不是对象。
  • 读出来的 url 是 { "text", "link" } 对象。
  • 空字段是 null,不是 "";读取时按 null 判断缺失。
  • 读取兜底取值:优先按字段名取;取不到再试 field_id(属踩坑经验,脚本未静态证实,但实践中 server 偶发回 field_id,建议保留兜底取值器)。

批量写入

  • 单次最多 100 条、最少 1 条;超过必须分片。
  • 生产环境建议保守分片 20–50 条,降低单次失败面。
  • 写前必跑 get_database_schema 校验字段名与选项;字段名必须和 schema 完全一致。
  • 用 scripts/db_write_guard.py 做本地 pre-flight(oneof 校验、url 包裹检测、分片尺寸、select 选项预检),确认无误再提交线上接口。

分页查询(游标)

  • query_database_record 返回 { "results": [...], "next_cursor": "...", "has_more": bool }。
  • 翻页:把上一次返回的 next_cursor 作为下一次的 --start-cursor,循环直到 has_more 为 false。
  • 不要自己估总数或用 offset;用游标才稳,尤其数据量上万时。

false-success 防御

  • batch_add / batch_update 返回 results[].success: true 不代表已落库,接口可能返回成功但记录没真正写进去。
  • 报送完成前,必须逐条或抽样用 get_database_record 回查确认。
  • 既不能用 results,也不能用 query_database_record 的列表计数当作写入成功的证据。

写入前 schema 校验(必做)

  • 字段名:必须与 get_database_schema 返回的 properties[].name 完全一致。
  • select / multi_select 选项:传入的 text / id 必须已在 schema 的 options 里;缺失先 add_database_field / update_database_field 加选项再写,否则 11607。
  • person 列:只有 name 时先 space.permission.collaborators 解析 uid,精确命中才写;模糊或多命中绝不自动写。

不可逆操作的护栏(warn-then-wait)

以下操作删除 / 改写数据且不可恢复,绝不自动执行;即使当前消息明确要求,也先回复点名表 + 字段 / 记录集、说明不可恢复、等用户明确许可后才执行:

  • 删除字段(delete_database_field)
  • 批量删除记录(batch_delete_database_records)
  • 改字段类型(update_database_field 改 type)——无法转换的单元格会被清空
  • 删除 select / multi_select 已有选项——引用该选项的每个单元格被清空

纯改名(rename)无风险,不需要护栏。

本地预检脚本

scripts/db_write_guard.py 不联网、不收 token、不调任何资料库接口:输入 schema(JSON)和待写 records(JSON),输出规范化 / 分片后的 payload 与问题清单,覆盖 oneof 校验、url 包裹层检测、分片尺寸(1–100)与 select / multi_select 选项对 schema 预检。使用方式见脚本内 docstring。

红线(绝不做)

  • 不写 token / 凭据相关逻辑(属层 2)。
  • 不自动执行删除字段 / 批量删除 / 改字段类型 / 删选项(必须 warn-then-wait)。
  • 不因 results[].success: true 就断言写入成功。
  • 不把 url 写成裸字符串。
  • 不从记忆 / 样例文档构造字段名,必须现场 get_database_schema。

常见问题

5 问
答案由本站依据条目字段整理
资料库安全读写避坑怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_9e7626c1/wb-db-safe-ops。安装方式为未标注。装完刷新技能列表或重开客户端。

资料库安全读写避坑支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

资料库安全读写避坑权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

资料库安全读写避坑收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

资料库安全读写避坑用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。