插件 API
OpenVort 插件开发 API 参考。
BasePlugin
所有插件必须继承 BasePlugin 基类。
属性
| 属性 | 类型 | 说明 |
|---|---|---|
name | str | 插件唯一标识 |
description | str | 插件描述 |
version | str | 插件版本 |
方法
get_tools()
返回插件提供的工具列表。
def get_tools(self) -> list[BaseTool]:
return [MyTool(), AnotherTool()]
get_prompts()
返回插件提供的 System Prompt 片段。
def get_prompts(self) -> list[str]:
return ["You have access to ..."]
BaseTool
所有工具必须继承 BaseTool 基类。
属性
| 属性 | 类型 | 说明 |
|---|---|---|
name | str | 工具名称(Claude 调用时使用) |
description | str | 工具描述(影响 AI 调用决策) |
parameters | dict | JSON Schema 格式的参数定义 |
方法
execute(**kwargs)
工具的执行逻辑,异步方法。
async def execute(self, **kwargs) -> str:
result = await do_something(**kwargs)
return json.dumps(result)
返回值
- 返回
str类型,建议使用 JSON 格式 - 返回内容会作为 Tool Result 传回 Claude
- Claude 基于返回内容生成最终回复
配置
插件可以通过环境变量或配置文件获取配置:
from openvort.config import settings
class MyPlugin(BasePlugin):
def __init__(self):
self.api_key = settings.get("MY_PLUGIN_API_KEY")
生命周期
- 发现 — 引擎启动时通过 entry_points 发现插件
- 加载 — 实例化插件,调用
__init__ - 注册 — 将 Tools 和 Prompts 注册到 Agent Runtime
- 运行 — Agent 在对话中按需调用 Tools
扩展市场 API
MarketplaceClient
核心引擎中用于与扩展市场交互的 HTTP 客户端。
| 方法 | 说明 |
|---|---|
search(query, type, category) | 搜索扩展市场 |
get_skill(slug, author) | 获取 Skill 详情(含 content + bundle 信息) |
get_plugin(slug, author) | 获取 Plugin 详情(含 packageName + bundle 信息) |
download_bundle(url, dest) | 下载 Bundle zip 到本地 |
upload_bundle(slug, type, zip_path) | 上传 Bundle zip 到市场 |
publish_extension(body) | 发布/更新扩展元数据 |
MarketplaceInstaller
处理扩展的安装和卸载。
| 方法 | 说明 |
|---|---|
install_skill(slug, author) | 安装 Skill(写入 DB + 注册 Prompt + 下载 Bundle) |
install_plugin(slug, author) | 安装 Plugin(Bundle 解压或 pip install) |
uninstall_skill(slug) | 卸载 Skill |
uninstall_plugin(slug) | 卸载 Plugin Bundle |
list_installed() | 列出已安装的市场扩展 |
check_updates() | 检查更新(比较版本号 + 内容 Hash) |
管理面板 API
所有市场管理 API 在 /api/admin/marketplace/ 下,需要管理员认证:
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /search | 搜索市场 |
| POST | /install/skill | 安装 Skill |
| POST | /install/plugin | 安装 Plugin |
| GET | /installed | 列出已安装 |
| POST | /uninstall | 卸载扩展(支持 type 参数) |
| GET | /updates | 检查更新(版本 + Hash) |