跳转至

插件系统架构

插件架构设计

插件系统采用注册制,核心组件:

Plugin
    ├── PluginManifest      # 插件元信息
    └── PluginBuildContext  # 构建上下文

AgentConfig
    ├── agent_id           # Agent 标识
    ├── tools              # 工具注册
    ├── prompts            # 提示词模板
    └── skills             # 技能定义

插件生命周期

Worker 启动
Plugin.__init__()
注册到 PluginRegistry
Worker 运行时
    ├── on_worker_startup
    ├── on_task_start
    ├── 业务处理
    ├── on_task_complete / on_task_error
Worker 关闭
on_worker_shutdown

PluginRegistry

class PluginRegistry:
    def register_bundle(self, plugin: Plugin) -> None:
        """注册插件"""

    def get_plugin(self, plugin_id: str) -> Optional[Plugin]:
        """获取插件"""

    def list_plugins(self) -> List[Plugin]:
        """列出所有插件"""

    def build_agent_configs(self) -> Dict[str, AgentConfig]:
        """构建所有 Agent 配置"""

工具注册

class MyPlugin(Plugin):
    async def register_agent_configs(
        self, build_context: PluginBuildContext
    ) -> list[AgentConfig]:
        return [
            AgentConfig(
                agent_id="my_agent",
                tools={
                    "my_tool": self.my_tool,
                },
            )
        ]

    async def my_tool(self, arg1: str, arg2: int) -> dict:
        return {"result": f"{arg1} - {arg2}"}