三插件协同破局前端故障排查困局

设想一次前端故障排查:Agent 读完组件代码,判断按钮应该正常显示;测试同事发来截图,按钮却被弹窗遮住。继续追问,Agent 又根据代码描述了一张架构图,可实际请求已经绕过旧网关。三个人讨论的是同一个系统,手里拿的却是三个版本的事实。

问题不全在模型推理。代码描述设计,浏览器呈现运行状态,截图保存某个瞬间,架构图则帮助人理解关系。缺少其中一环,Agent 容易把"按道理应该如此"当成"刚才确实如此"。让它多想一分钟,未必比补一张正确的截图更有效。

Archify、BrowserSkill 和 ModLens,分别补上架构表达、浏览器操作和图片理解能力。它们不是三个同类看图插件,也不是一套安装后自动串起来的流水线。理解各自的输入、输出和依赖,才知道该把哪一个接进 DeepSeek Harness,简称 DSH。

三种缺口,三种接入方式

遇到"线上页面不对",首先需要复现操作和观察页面,BrowserSkill 更合适;只有同事发来的截图,需要提取报错文字和界面布局,ModLens 才对题;已经弄清系统关系,希望交付能讨论、能点开的架构说明,则轮到 Archify。

共同点是增强 Agent 的工作能力,区别在于能力落在哪里。Archify 主要交付工作方法,BrowserSkill 提供原生浏览器工具,ModLens 提供视觉转换工具及模型接入方式。把它们统称为插件没有问题,但不能据此推断它们具有相同的后台服务或权限边界。

架构需要回答三个问题:插件提供什么,执行依赖在哪里,结果由谁保存或使用。Archify 把表达规则交给宿主;BrowserSkill 连接宿主与本地浏览器环境;ModLens 在宿主入口与视觉后端之间提供转换能力。图中按职责归类,具体依赖关系由各自的模块图表达。

Archify:把系统关系变成可讨论的架构产物

它解决的是表达成本

仓库里有接口、队列、数据库和外部服务,不代表团队已经拥有一张好用的架构图。让 Agent 罗列目录通常很快,让它区分主链路、外围依赖、运行边界和不确定关系,则需要明确的表达规则。

Archify 将这种规则组织成 Skill,帮助 Agent 把结构化架构规格转换为可交互的独立 HTML。适合接手旧项目、准备技术评审、解释一次复杂改造,也适合把"白板上大家都懂"的关系保存成可重复打开的文件。

它并不因为装进 DSH,就自动拥有一台持续扫描仓库的架构分析服务器。DSH 适配器当前发布版的关键职责,是让 Agent 发现并使用随包提供的 Skill。理解材料、调用普通工具、形成规格及交付文件,仍发生在 Agent 的工作流程里。

总体架构:插件提供规则,宿主负责执行

从模块职责看,Archify 的 DSH 适配器属于Skill 提供型插件。它把架构表达方法交给宿主使用,任务执行仍依靠 DSH 的 Agent 和常规工具。图中是逻辑职责划分,不是源码目录或内部类的复刻。

组成部分 所属位置 主要职责
DSH 适配器 Archify 插件包 提供宿主发现 Skill 的接入机制
Skill 资源 Archify 插件包 保存架构表达规则与配套资源;自身不承担常驻服务职责
Agent 与常规工具 DSH 宿主 分析材料,按规则使用 shell 和文件系统完成生成与校验
项目材料、JSON 与 HTML 工作区的数据和产物 分别承担分析依据、结构规格和展示结果的角色,不是三个运行服务

这里有两个容易混淆的边界。Skill 是任务规则,不是常驻服务;插件包不等于一个独立扫描、渲染和托管平台。产物也不属于插件运行时:JSON 与 HTML 写出后是文件,打开 HTML 阅读架构,并不意味着它会持续同步仓库变化。

插件包是能力的交付单位,宿主是执行这些规则的环境,工作区是材料和产物所在的位置。更新 Skill 不会自动重画已有 HTML;重新生成也需要重新核对材料。图中的读写关系表示宿主工具访问文件,不代表浏览器中的展示文件拥有任意项目访问权限。

这个设计的好处是结果容易携带,不必为了讨论一张架构图再部署展示服务。代价是文件交付需要说清楚:该适配器没有额外提供原生渲染工具,也不会保证普通 shell 写出的文件自动出现在 Web 界面的 Produced Files 区域。要求 Agent 返回实际路径,比一直刷新附件栏更直接。

图的可信度取决于材料和判断。代码里存在一个支付客户端,只能证明有相关实现,不能证明线上每笔交易都走这条调用链。对于无法确认的边,应该标注"待核实",而不是让漂亮的箭头替推断签字。

一个实用的分析范围是"订单创建到支付结果回写"。入口、订单服务、支付适配层、消息队列和数据库,可以成为核心组件;日志格式、工具函数和每个字段的转换,则放进卡片细节。这样读者先看到业务路径,需要确认实现时再展开,不会在第一眼就被几十个方框拦住。

如果产物用于变更评审,还可以要求区分现状与方案:哪些边来自已有实现,哪些是计划增加的调用,哪些只是候选设计。将三者混画,比少画一个组件更危险,因为评审者很可能把愿望读成事实。Archify 降低的是表达与交付成本,材料真实性和方案责任仍需要团队承担。

安装与第一次使用

GitHub:Archify 的 DeepSeek Harness 集成。

已发布的适配器版本为 0.1.0,捆绑 Archify Skill 2.14.0,官方标注实验性兼容 DSH 0.1.0-rc.6。Node 要求为 ^22.19.0 || >=24.0.0。仓库还描述了待发布版本的目标,不能据此承诺旧包支持所有新版 DSH。

在已有 DSH 环境中执行:

复制代码
dsh plugin --profile web add @tt-a1i/archify-dsh@0.1.0dsh --profile web

不要把仓库根目录当成可直接安装的 DSH bundle。仓库里有多种集成,发布包才是这里使用的入口。进入对应 profile 后,可以这样提出任务:

使用 archify skill 展示当前仓库的运行时架构。保留 8 至 12 个核心组件、一条主要请求链路、外部依赖和信任边界。把实现细节放入组件卡片;无法从材料确认的调用关系标为待核实。生成并校验规格 JSON 和独立 HTML,返回两个文件的实际路径。

验收时先看图回答了什么问题:请求从哪里进入,数据最终写到哪里,哪个外部系统失败会影响主流程。随后核对少量关键组件和连线,最后才评价配色。把全部目录塞进一张图,通常只会得到一份需要放大很多倍的文件清单。

如果找不到 Skill,先确认启动的是安装插件的 profile;如果图已生成但界面没有附件,检查 Agent 返回的文件路径;如果结构不对,收紧目标和证据范围。重复安装并不能修复错误的分析前提。

BrowserSkill:让 Agent 在真实浏览器里观察和操作

从"给步骤"到"看到操作结果"

浏览器问题常常藏在状态里:用户是否登录、弹窗是否出现、页面是否加载完、某个按钮是否真的可点击。只读 HTML 或让用户不断截图,都会丢掉一部分上下文。

BrowserSkill 通过浏览器扩展连接 Chrome 或 Edge,让 Agent 在可见的 Agent Window 中工作。它能导航、检查页面、截图、点击和填写,也能管理标签页。适合前端问题复现、网页资料整理,以及需要观察真实交互结果的任务。

"能操作"不等于"总能继续"。登录、验证码和需要用户判断的环节,可以请求人工协助。把这些节点留在任务说明里,比让 Agent 在同一个登录框前反复点击更省时间。

总体架构:宿主适配、本地通信与浏览器执行

BrowserSkill 更接近一个分布在本机不同运行环境中的控制系统。DSH 插件、CLI、daemon 与浏览器扩展各有职责,不能把 npm 包等同于整个浏览器执行环境。图中的区域表示部署与职责边界,同一区域不代表所有组件处于同一进程。

架构区域 核心组成 主要职责
DSH 侧 原生工具与会话归属约束 向 Agent 暴露能力;会话归属是插件的约束职责,不代表独立权限服务
Web 展示侧 会话观察入口 呈现浏览器会话,帮助用户查看当前状态
本地进程侧 bsk CLI、daemon CLI 适配调用,经进程间通信 IPC 联系 daemon;daemon 通过 WebSocket 连接扩展
浏览器侧 扩展、Agent Window 与标签页 扩展连接浏览器能力,窗口承载页面与登录状态

操作入口与观察入口承担不同职责。browser_* 工具用于发出操作或读取状态,Web 侧栏用于观察会话。图中实线突出主要调用关系,实际通信还包括结果返回;虚线只表达观察关系,不指定其内部传输协议。窗口、会话归属约束与通信进程属于不同类型的架构元素。

这套拆分也决定了故障归属:工具不可发现查 DSH 插件,CLI 无法启动查本地环境,扩展断连查通信链路,页面状态不符则回到浏览器侧。浏览器登录态位于实际浏览器环境,会话归属约束不等于账号隔离;这些组件分别升级,也就可能出现版本不配套的问题。

工具分为六组:会话、页面导航、页面检查、交互、标签页和辅助操作。检查能力包括快照、HTML、截图以及控制台和网络信息;交互能力覆盖点击、悬停、填写、选择和按键。分组能减少工具描述混杂,但不意味着开放了任意页面脚本执行或完整的交互录制能力。

插件默认可以按需加载工具,并提供浏览器会话的实时观察入口。Web 界面优先使用原生侧栏,也有浮层回退,不要求额外安装 Better Sidebar。观察端点对本地访问有约束,不能默认认为局域网反向代理也受支持。

安装:先接通浏览器,再加插件

GitHub:BrowserSkill;DSH 插件目录。

准备可工作的 DSH、pnpm 和 Chrome 或 Edge。浏览器链路还需要 bsk CLI 与对应扩展。官方提供以下 CLI 安装方式;这些命令会执行远程安装脚本,应在确认来源后运行。

macOS 或 Linux:

复制代码
curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | shexport PATH="${BSK_INSTALL_DIR:-$HOME/.local/bin}:$PATH"

Windows PowerShell:

复制代码
irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex

通过项目 README 中的 Chrome Web Store 或 Edge Add-ons 链接安装扩展,打开扩展面板,确认连接状态。然后在 DSH 将使用的终端环境里检查:

复制代码
bsk --version   bsk doctor    dsh plugin --profile web add @wxg-prc-cpg/browser-skill-dsh-plugin@0.3.0dsh --profile web  

DSH 插件已包含 browser-skill,无需再为 DSH 单独运行 bsk install-skill。如果插件找不到 CLI,检查 DSH 进程的 PATH;刚安装后,原有进程可能仍保留旧环境。也可以通过插件配置指定 bskPath。

先用公开页面做最小验收:

复制代码
/browser-skill open example.com and summarize the page.      

再将任务改为真实场景:"打开测试站点,进入商品详情,记录加入购物车之前和之后的页面状态;遇到登录请求人工协助,不提交订单。"验收重点是导航、观察、交互及结果能否对应起来,而非只看 Agent 是否回复了"完成"。

会话边界与常见故障

插件实例只能操作自己拥有的会话,默认会话上限为 5,卸载实例时会停止所属会话。这能约束会话使用范围,但不是账号凭据隔离承诺;浏览器里实际登录了谁、可访问哪些数据,仍要单独考虑。

网页观察也需要节奏。点击后立即读取页面,拿到的可能仍是加载中的旧状态;按钮文字正确,也不代表业务请求已经成功。可以要求 Agent 在关键操作后等待明确的页面变化,再检查提示、网络结果或相关元素。等待条件应对应任务结果,不能把固定等待几秒当成所有网站通用的完成标准。

复现失败时,值得保存失败的那一次观察,而不是只保留最后成功的截图。例如,同一页面在窄窗口出现遮挡、宽窗口没有问题,窗口尺寸就是证据的一部分;相同按钮在不同登录状态下跳转不同,账号状态也是必要上下文。这些记录并不要求插件具备录制功能,Agent 可以按任务把观察结果整理出来。

如果只能调工具却看不到浏览器,先查扩展和 daemon 的连接;如果人工终端可用、DSH 不可用,优先查 PATH 或 bskPath;如果新能力表现不一致,比较 CLI、daemon、扩展和插件版本。它们分别升级,更新 npm 插件不会自动替你更新整条链路。

ModLens:为文本模型补一座视觉信息桥

图片到达了,不代表模型看到了

把截图贴进聊天框,界面出现缩略图,很容易让人误以为底层模型已经理解图片。对于纯文本模型,传入一段图片路径或者文件名,并不会凭空产生视觉能力。真正缺的是把像素内容转成模型能消费的信息。

ModLens 为这个问题提供视觉桥接。它调用可用的视觉引擎,将图片里的文字、布局、实体及关系转成结构化证据,再交给文本模型继续推理。报错截图、界面布局和图表说明是典型场景。

它不负责点击浏览器,也不是分析代码模块依赖的工具。截图从哪里来,可以是用户粘贴,也可以是其他工具产生;识别结果如何参与排查,则由 Agent 根据任务决定。这个职责边界直接决定了安装后应该测试什么。

总体架构:宿主入口、视觉桥接与模型后端

ModLens 的架构重点是把宿主接入与视觉服务选择分开。原生工具和 vision 模型入口面向 DSH;包内 CLI 与引擎配置负责接入可用的视觉能力;视觉后端和最终进行推理的文本后端则承担不同任务。下列模块是职责视图,不表示它们都是独立进程。

组成部分 所属边界 主要职责
原生工具与 vision 模型入口 DSH 集成侧 为符合条件的会话提供图片读取或模型调用前的视觉转换入口
包内 CLI ModLens 本地侧 承接图像读取工具的视觉调用;不据此假设所有接入入口都以同一方式启动 CLI
共享引擎配置 ModLens 的配置数据 保存后端选择及必要凭据,可跨宿主共享;配置文件不是执行模块
视觉后端 所配置的 API 或 CLI 后端 识别图片内容,提供文字、布局与语义等信息;使用本地 CLI 不自动等于离线推理
结构化结果 交付宿主的数据 作为工具 JSON 或模型调用前的证据,描述识别内容
文本后端 后续推理侧 消费证据并结合任务推理;不承担原始图片的视觉识别

两个接入入口解决的是不同的集成问题。原生 modlens_read_image 工具显式读取图片并返回结果;带有 (modlens vision) 标记的入口把转换放在文本模型调用之前。图片粘贴在符合条件的会话中可以经私有临时路径进入工具,但这不是对所有模型通用的接管机制。

配置边界与数据边界需要分别看。共享引擎配置不会因为切换 DSH profile 自动隔离;图片则可能越过本地边界发送到视觉服务,提取后的文字也可能进入文本服务。图中把两种后端分开,是为了区分识别与推理职责,不意味着两者一定由不同服务商部署。

图中的无箭头连线表示模块协作,不规定请求顺序。集成侧提交读取任务,本地桥接组织视觉调用,再把识别内容交回宿主使用。自动发现和包装受模型模态元数据等条件控制,不能由界面出现缩略图推断任意模型已经获得视觉能力。

结构化输出的价值,在于把 OCR、布局和语义拆开,使后续推理更容易定位依据。它也有边界:JSON 格式正确,只能证明结果能被解析,不能证明文字识别、元素关系和图表解释一定正确。

例如,截图里一个红色提示位于提交按钮上方,可靠输出应先记录可辨认文字和位置关系;"接口权限不足"则需要文字或日志支持,不能仅凭红色就下判断。对于坐标图,还应核对单位、坐标轴和图例。图形趋势看起来向上,不代表数值一定增长,反向坐标和双轴图都可能改变含义。

图片质量同样决定结果上限。压缩后的长截图可能让小字难以辨认,裁剪过窄又可能丢失标题、单位或上下文。必要时提供一张全景图加关键区域清晰图,既保留关系,也让细节可读。应让模型明确指出不能确认的区域,而不是要求它"尽可能给出完整答案",迫使缺失信息被猜测补齐。

安装与后端配置

GitHub:ModLens;Harness 配置文档。

已核实的包版本为 3.26.1,Node 要求不低于 22.19.0。在目标 profile 中安装并启动:

复制代码
dsh plugin --profile web add @liustack/modlens@3.26.1    dsh --pro、file web

随后进入 Settings → Plugins → Plugin configuration → ModLens,配置可用的视觉引擎、接口地址、模型和必要凭据。也可按官方文档复用支持的本地 CLI。应明确究竟由哪个后端读取图片;所谓便捷接入,不代表图片识别必然离线、免费或无需凭据。

引擎设置保存在 ~/.modlens/config.json,可在不同宿主间共享,不是简单写进当前 profile 的 cordis.patch.yml。因此,更换 DSH profile 不等于得到完全独立的一套视觉服务配置,排障时也不要只盯着 DSH 插件列表。

第一次使用,选择符合条件的文本模型或相应的 vision 包装入口,粘贴一张不含敏感信息的界面截图,再提出有限任务:

读取截图,分别列出可辨认文字、主要区域及相对位置、明确可见的异常。看不清的字段标为不确定,不根据界面样式猜测后端错误;保留事实与推测的区别。

用原图逐项核对输出。只有基础识别可靠后,再让 Agent 结合日志和代码分析原因。若后端失败,应检查凭据、配额、网络和所选引擎;发生回退时,可结合结果中的 meta.attempts 判断实际调用过程,而不是仅凭最终出现一段文字就认定首选模型工作正常。

敏感图片可能被发送给视觉服务商。支付信息、客户资料和生产后台截图应按团队的数据规则处理。结构化文字也可能继续进入模型上下文,所以仅删除原图,并不意味着识别出的敏感字段已经消失。

把三种能力用在同一个排障任务里

假设商品详情页的按钮偶尔被遮挡。先用 BrowserSkill 在测试环境复现,记录页面地址、操作顺序和截图;需要文本模型分析图片时,再通过 ModLens 提取界面证据,并回看原图确认遮挡关系;确认组件、接口与状态变化后,才让 Archify 画出相关链路,解释修复为什么影响这个页面。

这是可以人工组织的工作方式,不是三个仓库承诺的自动联动功能。尤其要明确交接材料:浏览器里的页面状态不会自动成为永久证据,一张截图不能证明整个请求过程,架构图也不能反向证明线上行为。保存什么、传给谁、何时需要重新观察,都应该由任务来决定。

不必一次装满三个插件。经常卡在网页操作,优先打通 BrowserSkill;大量工作来自别人发来的截图,优先评估 ModLens;信息已经掌握,困难在评审和解释,则先试 Archify。每次验收一个明确结果,更容易判断收益来自哪里。

安装前,先检查当前 DSH 和 Node 版本,再确认目标 profile。包能下载、插件能加载、任务能完成,是三个不同阶段;只有第三阶段通过,才说明这套组合满足当前需求。升级时记录原版本和一项可重复的小任务,重新验收同样的输入输出,比依赖一次复杂对话的主观感受更稳妥。

成本也应按路径核算。Archify 的主要开销来自 Agent 分析与生成过程,BrowserSkill 增加本地组件的维护工作,ModLens 则可能增加视觉服务调用和图片处理开销。仓库热度不会替团队支付这些成本;能否减少一次人工交接、一次重复复现或一次架构误解,才是更贴近工作现场的判断标准。

团队采用时,还应把验收材料一起保存:BrowserSkill 记录复现动作与当时状态,ModLens 保留原图与不确定字段,Archify 保留规格和可阅读产物。记录版本及失败原因,能避免升级之后把兼容变化误判成模型退化。真正可复用的不是一句"这个插件很好用",而是一条能重复得到结果的工作路径。

三种能力最终服务于同一件事:让结论有来处。浏览器把动作连接到状态,视觉桥接把图片连接到可用证据,架构表达把证据和系统关系连接到人的理解。Agent 的回答可以更流畅,但工程判断最需要的,仍然是能回头核对的事实。

相关推荐
要吃这碗饭1 小时前
AI 智能体如何通过 auth.md 注册 Bright Data 账号
数据库·人工智能·php
天远Date Lab1 小时前
零信任架构实战:基于天远学籍核验三要素构建自动化竞赛资格审查网关
运维·人工智能·架构·自动化
海盗12341 小时前
AI 新闻日报 2026-10-09:企业代理独立身份、便利店机器人上岗、世界模型接棒
人工智能·机器人·人工智能aigc
核数聚1 小时前
低端标注拼的是单价,高端标注拼的是能力
人工智能·核数聚
东离与糖宝1 小时前
RAG调参的承重项:Agentic AutoRAG背后藏着反转
人工智能
FL16238631291 小时前
外来入侵植物检测数据集VOC+YOLO格式1111张5类别
人工智能·yolo·机器学习
oioihoii2 小时前
三步改掉 AI 味,附可直接复制的去 AI 味提示词
人工智能
阿乔外贸日记2 小时前
全球电子产业高度集中:中、韩、日和中国台湾地区占全球数字硬件产能八成
大数据·服务器·人工智能·物联网·云计算
曹牧2 小时前
AI Skill
人工智能