一键导入
bookshelf-setup
家庭书架初始化技能。当用户说「第一次使用」「初始化书架」「怎么配置」「连接不上」「setup」时使用。引导完成 API 连通、Google Books Key、Agent 对接与成员渠道绑定。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
家庭书架初始化技能。当用户说「第一次使用」「初始化书架」「怎么配置」「连接不上」「setup」时使用。引导完成 API 连通、Google Books Key、Agent 对接与成员渠道绑定。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
家庭藏书入库技能。当用户发送书封照片、ISBN、或说「买了本书/入库/加书」时使用。调用 bookshelf CLI 完成识别、元数据补全与落库。
家庭藏书查询技能。当用户问「有没有 XX 书」「我家关于历史的书」「这本书详情」时使用。调用 bookshelf find / show 检索书架。
读书笔记技能。当用户说「记一段摘录」「写点感想」「给这本书做个笔记」时使用。调用 bookshelf note 写入 reading_notes。
购书记录技能。当用户说「这本花了 X 元」「在京东买的」「补录购买信息」时使用。调用 bookshelf purchase 写入购买记录。
阅读进度跟踪技能。当用户说「读到第 X 页」「在读」「读完了」「给这本书打 5 分」时使用。调用 bookshelf progress 更新进度。
藏书统计技能。当用户问「我家有多少书」「今年买书花了多少」「阅读 streak」时使用。调用 bookshelf stats。
| name | bookshelf-setup |
| description | 家庭书架初始化技能。当用户说「第一次使用」「初始化书架」「怎么配置」「连接不上」「setup」时使用。引导完成 API 连通、Google Books Key、Agent 对接与成员渠道绑定。 |
首次使用请先跑本技能,完成后再使用 book-intake / book-query 等业务技能。
deploy/.env 或 backend/.envbookshelf doctorbook-intakebookshelf doctor → 修 errors → 配 Key(可选) → 配 Agent → bind 成员 → doctor 再验 → 完成
bookshelf doctor
关注 JSON 中:
| 字段 | 含义 |
|---|---|
checks.api_reachable | API 是否可达 |
checks.db_ok | 数据库是否正常 |
checks.google_books_configured | 服务端是否配置了 Google Books Key |
checks.barcode_scan_available | 服务端条码识别是否可用 |
checks.members_bound | 已绑定 IM 渠道的成员数 |
errors | 必须先清零 |
warnings | 建议处理,不阻断基本使用 |
hints | 具体操作指引 |
| 现象 | 处理 |
|---|---|
| API 不可达 | 本机:cd backend && uvicorn app.main:app --host 127.0.0.1 --port 8000;或 cd deploy && docker compose up -d |
| DB 异常 | alembic upgrade head;检查 data/ 目录权限 |
BOOKSHELF_API_URL 错误 | Agent/CLI 机器上 export BOOKSHELF_API_URL=http://<家庭服务器IP>:8000 |
不要在对话里让用户发送 Key。
告知用户:
deploy/.env → GOOGLE_BOOKS_API_KEY=...backend/.env 或 deploy/systemd/bookshelf.envbookshelf doctor,确认 google_books_configured: trueOpenLibrary + 国图源无需 Key,但中文书 metadata 有 Key 更稳。
skills/ 目录 加入 OpenClaw / Hermes 等 Agent 的可用技能路径bookshelf 命令(pip install -e cli)export BOOKSHELF_API_URL=http://127.0.0.1:8000 # 或家庭服务器地址
| Skill | 用途 |
|---|---|
| bookshelf-setup | 本技能(初始化) |
| book-intake | 入库 |
| book-query | 查询 |
| reading-tracker | 阅读进度 |
| purchase-logger | 购书记录 |
| note-taker | 笔记 |
| shelf-report | 统计 |
查看现有成员:
bookshelf doctor # data.members 列表
或调用 GET /api/v1/members
默认可能有「默认用户」(ID=1)。如需区分多位家庭成员,先创建新成员:
bookshelf member --name "你" --role owner # role 可选 owner / member / guest
空库首次直接
bookshelf bind --member-id 1 ...会自动创建默认 owner,无需先手动建成员。
绑定飞书用户(示例):
bookshelf bind --member-id 1 --channel feishu --external-user-id ou_xxxxxxxx
external_user_id:飞书开放平台用户 open_id(ou_ 开头)sender.sender_id.open_id绑定后 bookshelf doctor 应显示 members_bound >= 1
绑定后所有业务写端点(progress/notes/reading-logs/purchases/intake)会校验
X-Channel/X-External-User-Id,未绑定的渠道身份返回 403。 一期不做飞书 Webhook 自动配置;Agent 侧收到消息后映射成员 ID 即可。
全部 warnings 可接受后:
bookshelf doctor # ready: true
bookshelf stats # 空库也应正常
# 可选:bookshelf add --isbn 9780141439518 # 测试入库
书架已初始化完成:API 连通、数据库正常{,Google Books 已配置}{,成员已绑定飞书}。 你现在可以发书封照片或 ISBN,我会帮你入库。
然后 切换至 book-intake 技能 处理后续藏书请求。
| 情况 | 话术 |
|---|---|
| doctor 有 errors | 列出 errors,逐步引导,不要跳过 |
| 用户想在聊天里发 Key | 拒绝并说明安全风险,引导编辑 .env |
| 绑定 ID 不知道 | 说明从飞书事件/开放平台获取 open_id,或二期 Web 配置 |
| doctor ready 但入库失败 | 转 book-intake 排查;必要时查服务端日志 |
| 业务端点返回 403 | 渠道身份未绑定/与 member_id 不一致,提示先 bind 或核对成员 |
bookshelf doctor
bookshelf health
bookshelf member --name "你" --role owner
bookshelf bind --member-id 1 --channel feishu --external-user-id ou_xxx
bookshelf stats
export BOOKSHELF_API_URL=http://<host>:8000