
WordPress Agent Skills 新能力Abilities API 权限模型与 REST 暴露实战【免费下载链接】agent-skillsExpert-level WordPress knowledge for AI coding assistants - blocks, themes, plugins, and best practices项目地址: https://gitcode.com/gh_mirrors/agents/agent-skillsAgent Skills是一个为 AI 编码助手提供专家级 WordPress 开发知识的开源技能集其中新增的wp-abilities-api技能帮助你快速上手 WordPress 7.0 的Abilities API定义能力ability、配置权限模型permission model并通过REST 暴露wp-abilities/v1让前端和 AI Agent 安全地调用插件功能。1. 什么是 WordPress Agent SkillsAgent Skills 是一组可移植的「指令 清单 脚本」技能包安装在 AI 助手Claude、Cursor、Copilot 等中让它按照 WordPress 最佳实践写代码而不是靠猜测。本仓库包含 18 个技能与 Abilities API 直接相关的有 3 个技能作用wp-abilities-api注册 ability、配置权限与元数据、REST 暴露、JS 端消费wp-abilities-audit扫描插件 REST 接口面产出能力注册规划文档wp-abilities-verify校验已注册的 ability 是否与注解声明一致含权限回环检查完整的技能清单见 README.md技能编写规范见 docs/authoring-guide.md。一条命令即可安装技能到你的项目npx skills add WordPress/agent-skills --skill wp-abilities-api2. 权限模型核心三个关键概念Abilities API 的核心思想是把插件「能做什么」注册为稳定的领域能力domain capability再由 REST、MCP、命令面板等各自「投影」projection出去而不是为每个客户端单独注册一套。完整思路见 references/domain-vs-projection.md。2.1permission_callback必填的权限闸门每个 ability 注册时必须提供permission_callback——它检查当前用户是否允许执行该能力核心不允许可选、没有隐式默认值。关键参数是否必填说明label/description✅ 必填人类可读名称与用途描述category✅ 必填所属分类须先注册分类execute_callback✅ 必填能力被调用时执行的业务逻辑permission_callback✅ 必填权限检查返回bool或WP_Errorinput_schema可选JSON Schema用于输入校验meta.show_in_rest可选默认关是否暴露到wp-abilities/v1REST 命名空间meta.mcp.public可选默认关是否暴露给 WordPress MCP 适配器 权限与 UI 必须走同一条代码路径ability 镜像了某个后台界面操作就应该复用界面的权限、校验与业务规则。推荐做法是把业务逻辑抽成共享 Serviceability、REST 控制器、界面三方都调用它避免长期漂移——详见 references/shared-core-service.md。2.2 三个注解标记readonly / destructive / idempotent每个 ability 都应显式声明三个「安全注解」Agent 在不实际调用能力之前就能据此判断安全性注解含义示例readonly: true只读不修改环境查询站点信息destructive: false不会执行删除、退款等破坏性操作标记已读idempotent: true重复调用同一输入无额外副作用拉取列表⚠️ 注意注解缺省值被视为「行为未知」比false更糟。声明了readonly: true的 ability 若实际会写库对 AI Agent 来说就是「安全谎言」——这正是wp-abilities-verify技能要重点拦截的问题。2.3 命名与分组语义意图优先ability ID 建议按插件名/动词-名词命名如my-plugin/get-infoID 一经发布即为稳定 API改动即破坏性变更不要为每个 HTTP 方法注册一个 abilityREST 原子化而是按用户会问的问题分组把筛选条件放进input_schema。一个工单插件 8 种状态只需 1 个带status枚举的 ability完整分组规则见 references/grouping-heuristic.md。3. REST 暴露实战wp-abilities/v13.1 注册与暴露的钩子顺序注册代码必须挂在正确的初始化钩子上顺序不能颠倒wp_abilities_api_categories_init—— 先注册分类wp_abilities_api_init—— 再注册能力分类必须先存在。在错误的钩子上注册会触发_doing_it_wrong()并直接失败。参数与钩子的完整说明见 references/php-registration.md。3.2show_in_rest与mcp.public两个互不暗示的开关这是新手最容易混淆的一点两者针对不同的暴露面meta.show_in_rest true→ 能力出现在核心 REST 命名空间wp-abilities/v1供直接对接该命名空间的工具读取meta.mcp.public true→ 能力被随包附带的 WordPress MCP 适配器投影为工具供 MCP 客户端AI Agent发现与调用。一个插件可以两个都开、只开其一、或都不开——能力注册本身是「传输中立」的暴露是每个消费者独立决定的。3.3 暴露后的调试清单能力注册了但客户端「看不见」按 references/rest-api.md 的清单逐项排查路由是否存在—— 确认wp-json/wp-abilities/v1/abilities与/categories两个端点可访问能力是否返回—— 在 REST 响应中查找你的 ability 与 category开关是否打开—— 检查meta.show_in_rest是否为trueJS 端仍不可见—— 检查 REST 命名空间是否写错、wordpress/abilities依赖是否已打包、对象/页面缓存是否掩盖了变更。4. 实战避坑输入校验的四个陷阱input_schema看起来很保险但实际使用中藏着几个高频陷阱详见 references/input-schema-gotchas.md属性级default不会被注入schema 里声明的默认值不会自动填进执行回调回调内需自行兜底补齐分页键漂移ability 对外统一暴露per_page但底层控制器可能读pagesize不转换则分页参数被静默忽略别用empty()校验 IDempty(0)为true会误拒合法的0这类 ID直接调用 vs 间接调用严格度不同走wp_get_ability(...)-execute()才会执行 schema 校验单测「直接调静态方法」通过不代表 MCP 路径通过。配套的标准化错误码词汇表plugin_not_initialized、plugin_missing_field、plugin_resource_data_unavailable等让 Agent 能按错误码而非错误文案决定「重试还是升级」规则见 references/error-code-vocabulary.md。5. 用三个技能组合落地实际项目中建议按「审计 → 注册 → 校验」的流程推进wp-abilities-audit—— 枚举插件全部 REST 控制器追踪每个接口的current_user_can()权限门按语义意图产出一份标准化审计文档规划要注册哪些 abilitywp-abilities-api—— 按审计文档完成 PHP 注册、权限回调与 REST/MCP 暴露wp-abilities-verify—— 静态/运行时两种模式复核重点做「readonly 却会写库」的对抗性检查、权限回环匿名/订阅者被拒、管理员放行与 schema 卫生检查。三个技能的入口文档分别是注册与暴露skills/wp-abilities-api/SKILL.md审计规划skills/wp-abilities-audit/SKILL.md注册校验skills/wp-abilities-verify/SKILL.md6. 常见问题 FAQQWordPress 版本有什么要求AAbilities API 面向 WordPress 7.0PHP 7.4.0。目标版本较低时可能需要借助 Abilities API 插件/包而非依赖核心。Qability 必须暴露到 REST 或 MCP 吗A不是。注册是核心能力暴露是每个消费者「选择性加入」的——可以只给命令面板用也可以只给 MCP 用。QMCP 客户端同时看到 REST 端点和 ability用哪个A只暴露 ability不要两者都暴露给同一个 MCP 客户端——ability 才是给 Agent 的契约带 schema 类型、有权限闸门、语义化命名。Q如何判断哪些接口该注册为 abilityA用「用例契约」测试如果一个真人会在受支持的界面或工作流中有意识地执行它它就是 ability 候选纯内部管道缓存失效、定时调度、调试快照应留在 REST/钩子层。掌握Abilities API 权限模型与REST 暴露这两个关键机制再配合 agent-skills 中 wp-abilities-api / audit / verify 三个技能你就能让插件功能以安全、可被 AI 消费的方式发布出去 【免费下载链接】agent-skillsExpert-level WordPress knowledge for AI coding assistants - blocks, themes, plugins, and best practices项目地址: https://gitcode.com/gh_mirrors/agents/agent-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考