十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ReMe plugin.yaml清单文件Schema详解: 5分钟学会编写插件元数据

ReMe plugin.yaml清单文件Schema详解: 5分钟学会编写插件元数据 ReMe plugin.yaml清单文件Schema详解: 5分钟学会编写插件元数据【免费下载链接】ReMeReMe: Memory Management Kit for Agents - Remember Me, Refine Me.项目地址: https://gitcode.com/GitHub_Trending/me/ReMeReMe 是面向 Agent 的记忆管理工具包Memory Management Kit for Agents其插件系统全部依赖一个名为plugin.yaml的清单文件。本文将用真实仓库中的示例完整讲解ReMe plugin.yaml 清单文件 Schema两大顶层字段backends与application_defaults、module:Class后端引用语法、环境变量展开与配置合并规则帮助你快速写出合法且可运行的ReMe 插件元数据。什么是 ReMe 插件清单文件ReMe 插件就是一个普通的 Python 包通过reme.pluginsentry-point 暴露包内的plugin.yaml。它在安装后承担三件事职责对应字段说明注册后端backends把插件内的 Step/Component 类注册为可被配置引用的 backend 名提供默认配置application_defaults声明默认的 jobs、components 等 Application 配置声明式校验整体结构由 plugin_manifest.py 解析非法字段直接报错解析逻辑非常严格根节点必须是映射且只允许backends和application_defaults两个顶层键出现其他键会立即抛出unknown keys错误见 plugin_manifest.py。清单文件的存放位置与最小模板plugin.yaml必须放在插件的包目录内与__init__.py同级加载时按包名定位见 plugin.pymy-plugin/ ├── pyproject.toml └── src/my_plugin/ ├── __init__.py ├── plugin.yaml # 清单文件就在包内 └── steps.pypyproject.toml中只需一行 entry-point 声明[project.entry-points.reme.plugins] my-plugin my_plugin一个能通过 Schema 校验的最小plugin.yaml如下backends: my_step: my_plugin.steps:MyStep application_defaults: jobs: my_action: backend: base description: Run my plugin action parameters: type: object properties: text: { type: string } required: [text] steps: - backend: my_step两个字段均可省略缺省为空映射但至少要注册一个 backend 或提供一份默认配置插件才有实际意义。顶层字段一backends 后端注册表backends是一个「名称 → 目标类」的映射值必须遵循模块路径:类名格式backends: beam_auto_memory_step: reme_beam.auto_memory:BeamAutoMemoryStep beam_search_v2_step: reme_beam.search_v2:SearchV2Step这是 beam 插件 的真实片段。加载时的校验规则见 plugin.py冒号左侧是可导入的模块路径右侧是属性路径支持a.b.C形式目标必须是一个ComponentMixin子类否则抛TypeErrorbackend 名称如beam_search_v2_step就是后续配置中steps: [{ backend: beam_search_v2_step }]引用的名字。 命名建议用「插件名 用途 _step」的格式例如daily_paper_rank_step多个插件共存时不会互相覆盖。顶层字段二application_defaults 默认配置application_defaults是一份不完整的 ApplicationConfig插件通过它为 ReMe 提供开箱即用的任务与组件默认值。它支持 YAML 锚点、环境变量展开${VAR:-默认值}等全部配置语法。用 daily_paper 插件看 jobs 声明daily_paper 插件 是最佳参考它声明了 5 个后端backends: daily_paper_collect_step: reme_daily_paper.collect:DailyPaperCollectStep daily_paper_rank_step: reme_daily_paper.rank:DailyPaperRankStep daily_paper_select_step: reme_daily_paper.select:DailyPaperSelectStep daily_paper_analyze_step: reme_daily_paper.analyze:DailyPaperAnalyzeStep daily_paper_digest_step: reme_daily_paper.digest:DailyPaperDigestStep并注册了daily_paper任务backend: base表示同步任务parameters使用类 JSON Schema 结构type/properties/required/default描述调用参数。它还声明了一个定时任务与同步任务共享同一组 steps借助 YAML 锚点daily_paper_steps/*daily_paper_stepsapplication_defaults: jobs: daily_paper_cron: backend: cron cron: 0 8 * * * # 每天早上 8 点执行 topics: 大模型长期记忆 steps: *daily_paper_steps几个值得注意的写法环境变量展开${DINGTALK_APP_KEY:-}表示读取环境变量、缺省为空插件因此可以零配置安装见 daily_paper 清单YAML 锚点复用candidate_limit: candidate_limit 20定义锚点*candidate_limit在 cron 任务中复用避免重复维护components 默认值beam-judge 插件 还演示了如何默认注入一个 LLM 组件与 agent_wrappercomponents: as_llm: judge: backend: ${LLM_BACKEND:-openai} model: ${JUDGE_MODEL_NAME:-qwen3.7-max} credential: api_key: ${LLM_API_KEY:-} agent_wrapper: judge: backend: agentscope as_llm: judge permission_mode: bypass配置合并优先级插件默认值永远位于最低优先级合并顺序为插件 application_defaults 选中的 Application 配置文件 CLI 参数覆盖实现见 plugin.py 的deep_merge_config先合并所有插件默认值再让用户配置覆盖。因此插件不应自动修改用户的配置文件——用户只需在配置的plugins列表中显式启用插件名其 backend 才会加入该 Application 的局部注册表。常见错误与校验规则速查错误写法报错信息修复方法顶层出现name:、version:等键manifest has unknown keys只保留backends与application_defaultsbackend 值写成my_plugin:steps:MyStepinvalid backend target冒号只能有一个写my_plugin.steps:MyStepbackend 目标不是组件类is not a ComponentMixin class指向 Step/Component 子类而非普通函数backends写成列表backends must be a mapping改为「名称: 目标」映射结构这些校验全部集中在 parse_plugin_manifest它不导入插件模块即可完成结构校验保证reme plugins list/show等命令秒级响应。⚠️ 注意integrations/hermes_agent/plugin.yaml是Hermes Agent 平台的插件清单含name、kind、tags等字段与 ReMe 自身的清单 Schema 不同不要混淆。本地验证与常用命令写完清单后用reme plugins命令组做闭环验证实现见 plugin_cli.pyreme plugins validate ./path/to/my-plugin # 校验本地项目导入后端 合并配置 Schema 校验 reme plugins install ./path/to/my-plugin --editable reme plugins list --config your-config.yaml # 查看已安装插件与启用状态 reme plugins show my-plugin # 查看某插件注册的 backends 与默认 jobsvalidate会真实导入插件代码并构造ApplicationConfig因此只应对可信源码执行。完整流程可参考官方文档 插件开发。完整示例参考仓库内置了 4 个可直接对照学习的插件复杂度递增judge_beam 插件—— 单 backend LLM 组件默认值最简洁auto_fin 插件—— 同步任务 cron 定时任务共享 steps 锚点daily_paper 插件—— 多步骤流水线、环境变量注入、参数 Schema 全家桶beam 插件—— 多任务search / agentic_answer / auto_memory 组件默认参数覆盖。总结编写 ReMe 插件元数据只需记住三条✅ 清单放在包目录内命名固定为plugin.yaml✅ 顶层只允许backends与application_defaults两个键backend 值遵循模块:类名格式✅ 插件默认值可被用户配置无感覆盖敏感信息一律用${ENV_VAR:-默认值}注入。照搬 plugin_development.md 的最小模板再对照plugins/目录下的真实实现微调你就能在 5 分钟内交付一个合法、可验证的 ReMe 插件。【免费下载链接】ReMeReMe: Memory Management Kit for Agents - Remember Me, Refine Me.项目地址: https://gitcode.com/GitHub_Trending/me/ReMe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表