尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Tool、Skill、Sub-Agent 散成一地?PluginDescriptor 一次打成业务插件

Tool、Skill、Sub-Agent 散成一地?PluginDescriptor 一次打成业务插件
📅 发布时间:2026/7/12 3:45:46

「Regnexe Python 实战系列」第 3 篇(共 10 篇),对应仓库examples/readme/03_plugin_packaging.py。上一篇:02. Skill 和 Sub-Agent 到底差在哪?一个借工具,一个有私有工具。

痛点:能力一多,就散成一地变量

前两篇里,我们已经有了 Tool、Skill、Sub-Agent。问题也随之出现:

get_weather estimate_trip_cost travel_advisor expense_estimator

这些能力如果一直散落在构建代码里,很快就会变成“看得见能跑,但没人敢改”的状态。

regnexe-py 的底层抽象是PluginDescriptor:一个插件里可以装多个 CapabilityDescriptor,每个能力都有稳定 id。

实战代码:一个插件打包三种能力

示例里的核心代码是这段:

trip_plugin=(PluginDescriptor.builder().plugin_id("trip-plugin").version("1.0").name("Trip Plugin").description("Bundles a tool, a skill, and a sub-agent for trip planning").tool(get_weather)# -> trip-plugin.get_weather.skill_config(travel_advisor)# -> trip-plugin.travel_advisor.sub_agent_config(expense_estimator)# -> trip-plugin.expense_estimator.build())

这段代码做了两件事:

  • 把三种不同能力统一包装成 CapabilityDescriptor
  • 自动生成完整能力 id:plugin_id.name

所以get_weather不再只是一个裸函数,而是trip-plugin.get_weather这个业务插件里的能力。

踩坑提醒:Skill 要写完整能力 id

示例里travel_advisor的工具列表是这样写的:

travel_advisor={"name":"travel_advisor","tools":["trip-plugin.get_weather"],}

这里必须是trip-plugin.get_weather,不是get_weather。

原因很简单:Skill 借的是完整能力 id。插件化以后,同名工具可能来自不同插件,只写裸名称会失去边界。

怎么接进 Agent

手动构造好的PluginDescriptor可以直接交给with_plugin(...):

agent=(RegnexeAgentBuilder().with_default_model(Vendor.DEEPSEEK,"deepseek-v4-flash").with_plugin(trip_plugin).with_event_listener(ConsoleEventListener()).build())

这样第 3 篇只需要关心“怎么把能力打成一个插件”,不用提前理解 Marketplace。至于能力市场怎么替换、怎么接数据库,后面第 6 篇再单独展开。

小结

PluginDescriptor.builder()适合这些场景:

  • 能力定义来自数据库或配置中心,需要运行时拼装
  • 一个业务插件里混合 Tool、Skill、Sub-Agent
  • 你想手动控制插件 id、版本、名称和描述
  • 需要把能力从“代码变量”升级成“可管理资产”

一句话:PluginDescriptor 是 regnexe-py 能力体系的底层真相。


📌 上一篇:02. Skill 和 Sub-Agent 到底差在哪?一个借工具,一个有私有工具 | 下一篇:04. 一个 Python 类,一次注册,搞定 2 个工具 + 1 个 Skill + 1 个 Sub-Agent
📌 项目地址:https://github.com/flower-trees/regnexe-py

相关新闻

  • 执行一条 select 语句,期间发生了什么?
  • TEKLauncher:ARK生存进化MOD管理与服务器连接终极解决方案
  • 为什么选择openeuler/yocto-meta-virtualization?虚拟化层构建的核心优势解析

最新新闻

  • 10个趣味编程游戏网站:用游戏化方式高效学习Python
  • 《深度拆解一院两区架构改造难点:如何为大型医疗机构智慧化、信创化改造提供可复用的工程实践方案》
  • 工业负载控制方案:TPD2015FN与MKV58F1M0VLQ24的高效组合
  • OMV 6 安装后网络配置实战:DHCP获取IP与3种静态IP设置方法对比
  • 2026杭州漏水检测维修口碑榜TOP5权威推荐:正规防水补漏公司甄选-卫生间/厨房/阳台/屋顶/地下室渗漏水精准查漏:房屋防水补漏避坑指南 - 安佳防水
  • PWM死区互补原理初识

日新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号