建议WPS 浏览器助手借鉴开源项目Tactus

快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

Castor6/tactus是一款在Github开源的浏览器扩展(Chrome / Firefox),将 Agent Skills 规范与MCP引入浏览器环境,让 AI Agent 在浏览器中通过可扩展的技能系统执行复杂任务,替代重复的自动化操作,以降低 token 消耗并提升执行效率。项目采用 TypeScript 编写,基于 WXT 浏览器扩展框架与 Vue 3 构建。

Tactus 核心功能解析

一、Agent Skills 系统

Tactus 是首个在浏览器扩展中实现 Agent Skills 规范的产品。其实现包含以下环节:

  • 技能导入:用户通过设置页面导入符合规范的 Skill 文件夹(包含 SKILL.md 及可选的脚本、参考文档和资源文件),数据存储于本地 IndexedDB

  • SKILL.md 解析:内置轻量级 YAML 解析器(utils/skills.ts),对 frontmatter 中的 name、description 等字段进行格式校验(name 的正则规则、字符长度限制等),与规范要求严格一致

  • 技能激活机制:系统将所有已导入技能的 name 和 description 生成 XML 格式的提示词注入系统上下文,AI 模型通过 <skill_activation> 标签发起激活请求,扩展侧解析该标签并加载对应技能的完整指令

  • 脚本执行:通过 Background Script 使用 chrome.userScripts API 在页面主世界(Main World)中执行 JavaScript 脚本,绕过内容安全策略(CSP)限制

信任机制

首次执行任意 Skill 脚本时,系统向用户展示脚本完整内容并要求确认。用户可选择"永久信任"该脚本,后续执行免确认。已信任的脚本状态通过 WXT Storage 持久化。此外,脚本执行前会进行静态安全扫描(validateScript),检测 eval()Function 构造器、document.cookielocalStorage、浏览器扩展 API 等潜在风险模式并发出警告。

二、MCP(Model Context Protocol)集成

Tactus 通过 @modelcontextprotocol/sdk 实现了 MCP 客户端,支持 HTTP(Streamable HTTP)传输方式连接外部 MCP Server。

连接管理

utils/mcp.ts 中的 McpClientManager 类维护一个 Map<string, McpClientInstance> 的客户端实例池,支持同时连接多个 MCP Server。连接建立后,客户端自动调用 listTools() 获取目标 Server 暴露的工具列表,并将其转换为 OpenAI Function Calling 格式统一接入对话系统。

认证体系

支持三种认证方式:无认证(公开服务)、Bearer Token 认证(通过 Authorization 请求头传递)、OAuth 2.1 认证(通过 createExtensionOAuthProvider 实现授权码流程,支持自动刷新)。OAuth 配置存储于独立的 mcpStorage.ts 模块。

工具名称空间

为避免多 Server 之间的工具名冲突,Tactus 对 MCP 工具名称进行命名空间转换,生成格式为 mcp__{serverId}__{toolName} 的唯一工具标识。调用时通过 parseMcpToolName 反向解析出原始 serverId 和 toolName,再路由到对应的 MCP Client 实例执行 callTool

三、页面内容理解

Tactus 采用 Mozilla 的 Readability 算法配合 Turndown 库实现页面内容提取与格式转换(utils/pageExtractor.ts):

  • 智能提取模式(默认):Readability 算法解析页面 DOM,提取核心文章内容(标题、正文、作者、摘要等),再由 Turndown 将 HTML 转换为 Markdown

  • 原始提取模式:针对特定网站可配置跳过 Readability 算法,直接提取 <body> 的纯文本内容(移除 script、style、noscript 等无关元素)

  • 上下文感知:AI 模型自主判断是否需要调用页面提取工具。若 Skill 脚本已提供所需内容,则跳过提取以避免重复消耗 token

  • 内容长度控制:用户可配置提取内容的最大字符数限制,超出部分进行截断处理

四、浏览器自动化能力

在最新版本中,Tactus 引入了基于 Chrome DevTools Protocol(CDP)的浏览器自动化工具集(utils/browserAutomation.ts,约 60000 行),提供以下能力:

  • 标签页管理:创建 AI 工作标签页、认领用户标签页、列示和切换标签页、任务完成后整理标签页(关闭中间标签页、保留结果标签页)

  • DOM 快照:读取当前页面的可见可交互 DOM 节点,为每个节点分配唯一 node_id,供后续点击和填写操作使用

  • 页面交互:基于 node_id 的元素点击、文本填写、键盘操作、页面滚动、导航和刷新

  • 截图与导出:全页面截图、元素级别截图、原始页面内容导出(MHTML 格式优先,降级为完整 HTML)

  • 风险分级:交互操作按风险等级分为 none(普通)、sensitive(敏感)、destructive(破坏性)三级,敏感和破坏性操作需用户二次确认

该模块采用标签页分组机制("Tactus Task" 工作组和 "Tactus Results" 结果组),将 AI 操作的标签页与用户正常浏览隔离。

五、AI 服务商集成

Tactus 同时原生支持三套 API 协议:

  • Anthropic Claude APIutils/anthropic.ts):原生调用,完整支持 Tool Use 和 Vision

  • Google Gemini APIutils/gemini.ts):原生调用,支持 Function Calling 和多模态输入

  • OpenAI 兼容 APIutils/api.ts):通过 OpenAI SDK 统一接入,兼容所有 OpenAI 协议的服务商

对话系统内置 ReAct(Reasoning + Acting)范式循环:模型自主决策何时调用工具,工具执行结果回注上下文后继续推理,直至生成最终回复。

技术栈总览

层面

技术选型

扩展框架

WXT(现代浏览器扩展开发框架)

前端

Vue 3 + TypeScript

AI 集成

原生 Anthropic API、原生 Gemini API、OpenAI SDK

MCP 客户端

@modelcontextprotocol/sdk(Streamable HTTP Transport)

内容提取

@mozilla/readability + turndown

本地存储

IndexedDB(idb)+ WXT Storage

认证

OAuth 2.1(MCP Server 认证)

对 WPS 浏览器助手的借鉴建议

基于对 Tactus 的技术分析,以下建议可供 WPS 浏览器助手的迭代参考:

建议一:引入 Skill 技能系统

WPS 灵犀桌面端已建立成熟的 Skill 机制(SKILL.md 规范 + 本地技能目录),具备丰富的技能生态。建议将该机制向浏览器端延伸,允许用户在浏览器助手配置中导入 SKILL.md 格式的技能文件夹。浏览器的 Skill 可侧重于以下场景:

  • 网页内容处理:对特定网站的页面结构解析、数据提取模板

  • 在线服务集成:将常用的表单填写、数据提交流程封装为可复用技能

  • 内容创作辅助:针对不同平台(社区论坛、知识库等)的内容格式规范封装为技能

实现上需注意渐进式加载策略——浏览器环境的上下文窗口更为受限,应严格遵循 Agent Skills 规范的"元数据 → 指令 → 资源"三级加载模型。

建议二:集成 MCP 协议支持

Tactus 的 MCP 集成实践表明,通过 HTTP Streamable Transport 连接外部 MCP Server 是浏览器环境下的可行路径。建议 WPS 浏览器助手增加 MCP 客户端能力,使浏览器端 AI 能够调用后端工具服务,例如:

  • 通过 MCP 调用 WPS 云文档 API,实现浏览器端直接读取和编辑云端文档

  • 通过 MCP 连接企业内部工具 Server(知识库检索、数据分析、CRM 等),扩展浏览器助手的业务能力边界

  • 利用 MCP 的动态工具发现机制,实现工具能力的即插即用

工具命名空间的处理值得借鉴——Tactus 采用 mcp__{serverId}__{toolName} 前缀方案,有效解决了多 Server 工具名冲突问题。

建议三:增强页面理解与自动化能力

当前 WPS 浏览器助手已具备基础的页面内容提取功能。参考 Tactus 的实现,可考虑以下增强方向:

  • 双模式内容提取:默认使用 Readability 算法提取核心内容,针对特定网站支持配置原始提取模式

  • 结构化 DOM 快照:提供页面可交互节点的结构化快照(而非纯文本),为后续自动化操作提供精确的元素定位

  • 操作录制与回放:Tactus 路线图中规划的"操作录制一键生成可复用 Skills"功能值得参考,用户在浏览器中的操作流程可自动录制成 Skill 脚本

建议四:脚本安全沙箱

Tactus 的脚本信任机制(首次确认 + 永久信任 + 静态安全扫描)为浏览器环境下的脚本执行提供了基本的安全保障。WPS 浏览器助手若引入 Skill 脚本执行能力,建议在此基础上进一步强化:

  • 采用更严格的 CSP 策略和权限隔离

  • 引入脚本执行的超时机制和资源配额限制

  • 对脚本的网络请求、DOM 操作进行细粒度权限控制

目前国内AI大模型应用的官方浏览器拓展,比如豆包、通义、元宝、文心一言、讯飞星火、智谱清言、心流、KIMI等,均尚未支持SKILL和MCP功能。WPS 浏览器助手若能将 WPS 灵犀桌面端已积累的 Skill 生态向浏览器端延伸,并同步集成 MCP 协议的开放工具生态,有望构建起跨桌面与浏览器的统一 AI 能力平台,进一步扩展 WPS AI 的应用场景与服务边界。

浏览 60
收藏
5
分享
5 +1
1
+1
全部评论 1
 
快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

GITHUB仓库地址:https://github.com/Castor6/tactus
· 广东省
1
回复