在运行中的 Content 服务器上对 Calibre 元数据进行写入编辑的主技能。仅在用户明确要求更改/编辑/修复时使用。
口径元数据应用
功能概述
口径元数据应用是一项面向实际任务的技能,主要用于更新现有 Calibre 书籍元数据的技能;技能选择合同( 严格);
核心要点
- 如果用户的意图是元数据编辑/ 修补/ 更新, 这种技能是强制性的。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
calibre-metadata-apply
一项用于更新现有 Calibre 图书元数据的技能。
技能选择契约(严格)
- 若用户意图是编辑/修正/更新元数据,本技能为必需项。
- 若请求中同时提及 ID 与编辑/修正/更新意图(例如:
ID1011 タイトル修正、ID1011 のタイトルを直して),本技能为必需项。 - 若请求中仅提及 ID,且目的仅为查看/核对/确认(例如:
ID1021 を確認して、ID1021 の詳細),请 勿使用 本技能 —— 应路由至calibre-catalog-read。 calibre-catalog-read不得用于任何具有编辑意图的请求。
当用户提出以下任一请求时,请使用本技能:
- “按 ID 修改标题”
- “元数据编辑”
title/authors/series/series_index/tags/publisher/pubdate/languages等字段的更新
请 勿 在以下场景中使用本技能:
- 只读查询(例如:“确认 ID 1021”、“显示 ID 1021 的信息”、“show me book 1021”)
- 仅检查某本书当前元数据内容而无修改意图
- 上述场景必须使用
calibre-catalog-read
运行要求
- 运行环境中 PATH 必须可访问
calibredb - 需安装
subagent-spawn-command-builder(用于生成 spawn 负载) pdffonts为可选/推荐组件,用于 PDF 证据校验- 需可达 Calibre 内容服务器 URL
http://HOST:PORT/#LIBRARY_ID- 若
LIBRARY_ID未知,可使用一次#-查询服务器上可用的 ID 列表。
--with-library参数可省略的前提是满足以下任一配置:- 环境变量:
CALIBRE_WITH_LIBRARY或CALIBRE_LIBRARY_URL或CALIBRE_CONTENT_SERVER_URL - 可选的图书馆 ID 补全配置:
CALIBRE_LIBRARY_ID
- 环境变量:
- 请查阅 TOOLS.md 中 “Calibre Content Server” 章节,以获取正确的
--with-libraryURL。 - 主机故障转移(IP 变更弹性支持):
- 可选环境变量:
CALIBRE_SERVER_HOSTS=host1,host2,... - 脚本将自动尝试候选主机,包括从
/etc/resolv.conf中提取的 WSL 主机侧nameserver。
- 可选环境变量:
- 若启用了身份验证,优先使用
/home/altair/.openclaw/.env文件:CALIBRE_USERNAME=CALIBRE_PASSWORD=
- 本工作流的身份验证方案策略:
- 非 SSL 部署默认采用 Digest 认证方式。
- 不得显式传入认证模式参数(如
--auth-mode/--auth-scheme)。
- 请传入
--password-env CALIBRE_PASSWORD(用户名将自动从环境变量加载) - 仍可通过
--username显式覆盖用户名。
支持的字段
直接字段(对应 set_metadata --field)
titletitle_sortauthors(字符串,支持&分隔;或数组格式)author_sortseriesseries_indextags(字符串或数组)publisherpubdate(格式为YYYY-MM-DD)languagescomments
辅助字段
comments_html(OC 标记块 upsert)analysis(自动生成用于 comments 的分析 HTML)analysis_tags(追加标签)tags_merge(默认值为true)tags_remove(合并后移除指定标签)
必需执行流程
A. 目标确认(强制)
- 执行只读查询以缩小候选范围
- 展示
id,title,authors,series,series_index字段 - 获取用户对最终目标 ID 的确认
- 仅基于已确认的 ID 构建 JSONL
B. 提案合成(当元数据缺失时)
- 从文件抽取 + Web 来源收集证据
- 展示一张合并提案表格,包含:
candidate、source、confidence (high|medium|low)title_sort_candidate、author_sort_candidate
- 获取用户决策:
approve allapprove only:reject:edit:=
- 仅应用经批准/最终确定的字段
- 若置信度低或来源冲突,则保留字段为空
C. 执行应用
- 首先执行 dry-run(强制)
- 仅在获得用户明确批准后,才执行
--apply - 重新读取并报告最终值
分析工作器策略
- 使用
subagent-spawn-command-builder为繁重的候选生成任务生成sessions_spawn负载task字段为必需项。- Profile 应包含该工作流所需的模型/思考逻辑/超时/清理配置。
- 分析阶段应使用轻量级子代理模型(避免主重型模型)
- 最终决策及 dry-run/apply 操作保留在主会话中
数据流向披露
- 本地执行:
- 基于 JSONL 构建
calibredb set_metadata命令。 - 读写本地状态文件(
state/runs.json)。
- 基于 JSONL 构建
- 子代理执行(可选,用于繁重候选生成):
- 通过
subagent-spawn-command-builder使用sessions_spawn。 - 发送至子代理的文本/元数据可能到达运行时 profile 所配置的模型端点。
- 通过
- 远程写入:
calibredb set_metadata将更新目标 Calibre 内容服务器上的元数据。
安全规则:
- 优先使用基于环境变量的密码(
--password-env CALIBRE_PASSWORD),而非内联参数--password。 - 若用户不希望外部模型/子代理参与处理,则保持流程本地化,跳过子代理编排。
- 在 agent/chat 执行中,禁止直接调用
calibredb进行编辑操作。- 必须始终执行
node skills/calibre-metadata-apply/scripts/calibredb_apply.mjs。
- 必须始终执行
- 切勿从此技能中启动
calibre-server。- 本工作流始终面向一个已运行的 Calibre 内容服务器。
连接引导(强制)
- 请勿首先向用户询问
--with-library参数。 - 应优先使用已保存的默认配置(环境变量),不显式指定
--with-library。- 脚本将自动加载
.env并解析CALIBRE_WITH_LIBRARY/CALIBRE_CONTENT_SERVER_URL。
- 脚本将自动加载
- 仅当命令输出显示连接未解析时(例如出现以下提示),才向用户询问 URL:
missing --with-libraryunable to resolve usable --with-library- 对所有候选主机重复连接失败
长时运行的分轮次策略(全库级)
针对全库级繁重处理,必须始终采用分轮次(turn-split)执行方式。
未知文档恢复流程(M3)
批量处理尺寸规则:
- 每个未知文档批次应足够小,确保可在聊天界面中完整逐行展示结果(不可采样代表)。
- 若仍有未解决项,应立即停止并等待用户明确指令,再启动下一批次。
用户干预检查点(固定)
轻量扫描(仅元数据)
- 默认始终执行此阶段(无需额外用户指令)
- 仅分析现有元数据(不读取文件内容)
- 向用户呈现一张表格,包含:
- 当前文件名/标题
- 推荐的标题/元数据
- 置信度/证据摘要
- 在进入任何更深层阶段前,暂停并等待用户指令
用户请求时:第一页扫描
- 仅读取第一页内容,并优化提案
- 报告与轻量扫描阶段的差异
若仍不确定:深度扫描
- 读取前 5 页 + 后 5 页
- 增加 Web 证据搜索
- 产出含置信度与推理依据的最终提案
审批关卡
- 展示详细发现,并在应用前请求用户明确批准
待处理与不支持项的处理
- 对未解决/搁置项使用
pending-review标签。 - 若文档在当前流程中仍未解决,不得强行猜测元数据。
- 标注
pending-review并留待后续调查。
- 标注
差异报告格式(适用于未知文档批次运行)
返回完整结果(非抽样):
- 执行摘要(目标数/已变更数/待处理数/跳过数/错误数)
- 完整变更列表,含
id及各字段变更前/后值 - 完整待处理列表,含
id及原因 - 完整错误列表,含
id及错误摘要 - 置信度必须表示为
high|medium|low
运行时产物策略
- 仅在运行进行中时保留运行状态与临时产物。
- 成功完成后,清除本次运行的状态/产物。
- 失败时,仅保留最小必要产物用于重试/调试,并在问题解决后立即清理。
内部编排(推荐)
- 所有分析阶段均使用轻量级子代理
- 应用决策保留在主会话中
- 各阶段的运行状态持久化至
state/runs.json
第一轮(启动)
- 主会话定义作用域
- 主会话通过
subagent-spawn-command-builder(示例 profile:calibre-meta)生成 spawn 负载,随后调用sessions_spawn - 通过
scripts/run_state.mjs upsert保存run_id/session_key/task - 立即告知用户这是一项子代理任务,并说明所使用的分析执行模型
- 回复 “analysis started”,同时保持常规聊天响应能力
第二轮(完成)
- 接收子代理完成通知
- 保存结果 JSON
- 通过
scripts/handle_completion.mjs --run-id ... --result-json ...完成状态处理 - 返回汇总提案(仅在需要时执行应用)
运行状态文件:
state/runs.json
PDF 抽取策略
- 优先尝试
ebook-convert - 若结果为空或失败,则回退至
pdftotext - 若两者均失败,则切换至 Web 证据优先模式
排序读音策略
- 对日文/非拉丁语系的排序字段,使用用户配置的
reading_scriptkatakana/hiragana/latin
- 首次使用时询问一次,之后在会话中复用
- 默认策略为完整读音(不截断)
- 请查阅 TOOLS.md 中 “Calibre Content Server” 章节,获取已配置的
reading_script值;如需,应作为 CLI 参数传入。
用法
Dry-run:
cat changes.jsonl | node skills/calibre-metadata-apply/scripts/calibredb_apply.mjs --with-library "http://127.0.0.1:8080/#MyLibrary" --password-env CALIBRE_PASSWORD --lang ja
Dry-run(当默认图书馆已通过环境变量/配置预设时):
cat changes.jsonl | node skills/calibre-metadata-apply/scripts/calibredb_apply.mjs --password-env CALIBRE_PASSWORD --lang ja
Apply:
cat changes.jsonl | node skills/calibre-metadata-apply/scripts/calibredb_apply.mjs --with-library "http://127.0.0.1:8080/#MyLibrary" --password-env CALIBRE_PASSWORD --apply
禁止事项
- 禁止仅依赖模糊标题匹配执行直接
--apply - 禁止在 apply 负载中包含未经确认的 ID
- 禁止在无用户明确确认的情况下,自动填充低置信度候选值
- 禁止基于猜测路径(如
~/Calibre Library)启动本地服务器
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.7万人学习
共6课时 | 54.7万人学习
最新文章