Skip to content

插件服务

介绍

我们通过浏览器扩展技术,使OPENUGC能够无缝对接各类网页。该方案基于JavaScript执行机制,可在目标页面直接获取数据并实现动态接口调用、表单提交模拟及自动化数据分析等功能。

你可以将OPENUGC的插件服务,理解为Agent+MCP,每个插件都是一个MCP服务,服务提供各类功能的工具,并能让大模型理解工具的作用,以及如何调用。

创建服务

表单说明示例
服务名称插件服务的名称,一般是目标网站的名称百度一下
版本信息x.x.x格式,我习惯用日期,比如今天2025/06/26,版本号为:0.6.260.6.26
介绍信息让使用者知道这个插件服务是干嘛的,能提供什么提供百度搜索相关服务
目标URL地址在启动插件服务的时候,打开的URL地址,后续的工具代码将会注入在这个页面执行https://www.baidu.com/
Favicon地址插件服务的图标https://www.baidu.com/favicon.ico
自定义提示词默认不需要填写。填写可以让大模型能够更理解当前插件服务,比如一些使用注意说明等你可以使用本服务进行百度的相关功能操作

注入脚本

针对一些特殊的网页,我们可能需要在加载之前就执行我们的JS代码,以达到HOOK某个函数,获取内部API等功能方便后续调用。 注入脚本为非必填项目,属于高级用法,普通开发者请忽略。

创建工具

表单说明示例
工具名称工具的名称,要求简短、明确,让AI能够更理解获取百度搜索列表
工具说明明确该工具的用途、使用事项等,让AI理解需要根据用户的关键词,进行百度搜索,并获取搜索的结果
参数比如要搜索的关键词、搜索的条数,这些就是参数keyword、count

工具执行代码

工具执行代码,是一个异步JS函数,由async (args) => {开头,由}结尾,中间是用户的自定义代码,在目标网页上执行,请严格遵守代码规范。 你可以在这个函数里,使用await操作,也可以直接返回一个数据(默认字符串、object)。 如果是需要异步执行的操作,比如请求一个接口,那么,返回promise更合适。

示例:

async (args) => {
const { keyword, count } = args;
return new Promise(async (RES) => {
const data = await fetch(`/data?keyword=${keyword}&count=${count}`);
return RES(data);
})
}

使用插件服务

保存插件服务后,即可在对话中,按下@选择启动插件服务(如果已经启动了,更新后需要手动关闭并重新启动) 就可以让大模型理解当前的插件服务和可使用的工具,并根据你的需求进行工具调用了。