改个 Skill 文案也要重新发版?with_directory 让插件目录直接生效
「Regnexe Python 实战系列」第 5 篇(共 10 篇),对应仓库
examples/readme/05_file_directory_loading.py。上一篇:04. 一个 Python 类,一次注册,搞定 2 个工具 + 1 个 Skill + 1 个 Sub-Agent。
一个真实的团队矛盾
开发同学通常喜欢把能力写进代码:类型明确、能测试、能 Review。
但运营或运维同学经常有另一个诉求:
“我只是想改一个 Skill 的提示词,或者加一个插件目录,能不能别重新发版?”
这两个诉求并不冲突。regnexe-py 用with_directory()支持文件系统目录加载,让一部分能力可以脱离 Python 类和发版流程。
目录长什么样
示例里临时创建了一个插件目录,大概结构是这样:
weather-plugin/ plugin.yaml SKILL.mdplugin.yaml负责声明工具能力:
plugin_id:weather-plugincapabilities:-capability_id:weather-plugin.get_weathertype:mcp_toolname:get_weatherdescription:"Get today's weather for a city"tags:[weather]SKILL.md负责声明 Skill:
--- name: advisor plugin_id: weather-plugin capability_id: weather-plugin.advisor description: "Outdoor activity advisor..." tags: [weather] allowed_tools: [get_weather] --- You are an outdoor activity advisor. 1. Call get_weather for the city the user mentions. 2. Based on the result, give a short go/no-go recommendation.实战代码
接入目录只需要一行:
agent=(RegnexeAgentBuilder().with_default_model(Vendor.DEEPSEEK,"deepseek-v4-flash").with_tool(get_weather).with_directory(str(plugin_dir)).with_event_listener(ConsoleEventListener()).build())这里get_weather仍然由代码提供,目录里的plugin.yaml和SKILL.md提供能力元数据和 Skill 内容。
Agent 构建时会扫描目录,把这些文件注册成 Marketplace 里的能力。对后续调用来说,它们和代码注册的能力没有区别。
适用场景
with_directory()特别适合:
- Skill 提示词经常调整
- 插件由运维目录管理
- 不同部署环境启用不同能力
- 不希望每次改 Markdown 都重新发版
但它不适合所有东西。核心业务工具仍然建议写在 Python 代码里,方便测试和类型检查;目录加载更适合描述型、配置型、提示词型能力。
小结
regnexe-py 没有强迫你在“代码插件”和“文件插件”之间二选一。一个应用里完全可以核心能力走@plugin,运营能力走with_directory()。
关键是:不管来源是代码还是目录,最后都进入同一个 Marketplace。
📌 上一篇:04. 一个 Python 类,一次注册,搞定 2 个工具 + 1 个 Skill + 1 个 Sub-Agent | 下一篇:06. 能力市场换成数据库要改多少代码?regnexe-py 一个 Marketplace 搞定
📌 项目地址:https://github.com/flower-trees/regnexe-py
