尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

让 Agent 调试可视化:DSH 与 dsh-web 本地工作台实践指南

发布时间:2026/9/20 5:17:06

资讯中心
01
ARTICLE

让 Agent 调试可视化:DSH 与 dsh-web 本地工作台实践指南

让 Agent 调试可视化:DSH 与 dsh-web 本地工作台实践指南
最近我把自己的 Agent 项目从纯命令行工作流迁移到了 DSH 加 dsh-web 的组合这个决定直接改变了我日常调试 Agent 的方式。如果你也在折腾 AI Agent 开发大概率已经听过 DSH 这个名字它是一个把模型编排、插件系统、记忆管理全部收到终端里的本地 Agent 工作台而 dsh-web 则是它最出圈的插件给原本只有 CLI 的 DSH 套上一层浏览器界面让 Agent 的执行过程从黑盒变成透明。这篇内容适合三类人已经在用 DSH 但总觉得差点意思的人正要入坑 Agent 开发、想找一个顺手的本地工具的人以及做 Agent 项目交付、经常要给非技术同事展示运行过程的人。我会从安装开始把 dsh-web 的启动、认证、界面、插件生态和常见坑一次讲清楚全程只说实操不讲虚的。1. DSH 是什么以及我为什么盯上 dsh-web1.1 一个终端里的 Agent 工作台DSH 不是那种装完就扔的脚手架工具它更像一个常驻在本地的 Agent 运行环境。官方定位是面向 Agent 开发的本地工作台也就是说你可以在里面完成模型配置、工具调用、技能编排、记忆管理这一整套流程。我最早用 DSH 的时候唯一的入口就是终端。启动之后是一行行对话流模型输出、工具返回、上下文切换全挤在同一个界面里。写简单 demo 没问题可一旦 Agent 开始连续调用多个工具、读写本地文件、处理长上下文终端就变得很难看了。你想确认刚才那个工具到底返回了什么得往上翻很久或者打开日志文件慢慢找。更麻烦的是文件类操作。Agent 读了一个 PDF、生成了一张图片你在终端里根本看不到内容只能看到一行文件已写入 /xxx/xxx.pdf。这种体验就是标题里说的能用功能都有但每一步都需要自己脑补。而我之所以盯上 dsh-web就是因为它把脑补变成了眼见为实。1.2 dsh-web 解决的三个痛点第一个痛点是执行过程不可见。纯 CLI 模式下Agent 内部一轮思考、一次工具调用、一次结果整合在终端里都只是流水日志。dsh-web 把整个过程抽象成了时间线每一步做了什么、耗时多少、输入输出是什么都能展开查看。第二个痛点是中间产物不可预览。Agent 读 PDF、读 Word、读图片的时候dsh-web 可以在浏览器里直接渲染这些文件不需要你手动打开。对于经常处理文档类任务的 Agent这个功能利用率极高。第三个痛点是多会话管理不方便。终端里跑多个 Agent 会话很容易乱dsh-web 左侧是会话列表每个会话独立保存可以在不同任务之间来回切换上下文不互相污染。对比项纯 CLI 模式dsh-web 模式执行过程滚动日志可视化时间线文件预览手动打开页面内直接渲染多会话管理手动维护左侧栏列表切换插件状态命令查询页面可视化查看适合场景快速验证日常开发与交付演示一句话总结CLI 是发动机dsh-web 是仪表盘。发动机没换但你看得见转速和油量了自然就敢踩油门。2. 环境准备先把 DSH 装到能跑起来2.1 不同平台的安装体验先说 Windows。DSH 在 Windows 上支持全局安装但很多人在这一步就踩坑了网上吐槽本机 Windows 上全局安装出现各种问题的帖子不在少数。就我的实测经验来看Windows 上最容易出的问题是 PATH 不生效和插件权限不足。前者好解决重新打开终端或者手动刷新环境变量就行后者比较烦因为 dsh 插件市场在写入本地配置时可能被系统拦截。如果你用的是 Windows我更推荐走 WSL 这条路。热词里出现dsh使用wsl是有道理的DSH 在 Linux 环境的兼容性明显更好安装过程也干净。在 WSL 里装好 DSH 之后Windows 这边的浏览器直接通过 localhost 访问 dsh-web 服务两个系统配合得比较自然。macOS 和 Linux 的安装相对简单基本就是下载单文件放到 PATH 里或者用包管理工具装。装完先跑一下dsh --version确认版本号出来了再配置一个最小可用的模型随便跑一句话验证整体链路通没通。我见过很多人第一步没验证就直接装插件最后出了问题都不知道是该查基础配置还是查插件。2.2 装完先理解 profile 和插件市场DSH 有一个profile概念一开始容易忽略但后面用插件的时候很关键。你可以把它理解成一套独立的配置环境不同的 profile 可以装不同的插件、指向不同的模型配置。dsh plugin --profile web add dshmarket这条命令里的--profile web意思就是把插件装到名为 web 的这个 profile 下而不是全局。为什么要这样做因为实际开发中你可能有调试环境和生产环境或者有文档处理环境和代码生成环境。如果所有插件都堆在默认环境里插件之间的依赖冲突会很头疼。分 profile 管理之后每个环境都保持干净出问题也能快速定位。dshmarket 则是 DSH 的插件市场类似 npm registry 或者 VS Code 的插件商店。装插件之前可以先在市场上搜一下看看有没有官方维护的版本。搜索命令一般是dsh plugin search 关键词比如你想搜文档解析插件就dsh plugin search doc搜完再决定装哪个。先理解清楚 profile 和市场这两个概念后面所有插件操作都会顺很多。3. 安装 dsh-web一条命令让工作台上线3.1 安装、启动与认证安装 dsh-web 的入口一般是从 dshmarket 市场拉取最直接的方式是执行dsh plugin --profile web add dshmarket。这条命令的意思是指定在 web 这个 profile 下安装 dshmarket 插件市场装完后就可以通过这个入口继续安装 dsh-web 本体。有的版本也支持直接dsh plugin add dsh-web具体看你的 DSH 版本但底层逻辑都是走插件市场解析依赖。装完之后就是启动。你在终端里输入dsh web第一次启动大概率会看到一行提示dsh web: opening the default browser; pass --no-open to disable这行提示翻译过来就是正在打开默认浏览器如果想禁用这个行为请加--no-open参数。默认自动打开浏览器是为了省事因为绝大多数人用 dsh-web 就是要跳到浏览器里操作。但如果你是在服务器上跑 dsh-web或者当前终端环境没有可用的默认浏览器那就加--no-open启动然后自己复制终端打印的地址去访问。这里有一个很多新手都会卡住的地方。启动之后终端会打印一个带 token 的完整 URL类似http://127.0.0.1:某个端口/一串随机字符。如果你直接访问http://127.0.0.1:某个端口网页会出现这么一行英文dsh web authentication required; reopen the url printed by dsh web.遇到这个提示不要慌它不是报错是安全机制在起作用。DSH 为了让本地服务不至于被局域网里的其他人随便访问把认证 token 做进了 URL 里。正确做法是回到终端复制 dsh-web 启动时打印的完整 URL粘贴到浏览器重新打开页面就能正常加载了。如果你在网页上停留太久token 过期了同样会看到 authentication required 的提示。这时候不需要重启服务重新打开一次终端里打印的 URL 就能刷新认证原理上就是重新携带一个有效 token 访问服务。3.2 浏览器里的工作台长什么样成功进入 dsh-web 之后你应该会看到一个类似会话管理加执行监控的界面。左侧是会话列表中间是对话区右侧是 Agent 执行面板底部是输入框。如果你用过 OpenCode Web、Langflow 这类工具上手基本没有成本。会话列表是日常使用频率最高的区域。每开一个任务就是一个独立会话会话之间上下文互不影响。我在做多个项目对比测试的时候经常同时开三四个会话分别跑不同模型的 Agent然后左右切换看效果。对话区最大的改进是工具调用结果不再是一行文字。Agent 调用搜索、读取文件、执行代码之后结果会以折叠卡片的形式展示在对话流里点开就能看到完整内容。这比终端里刷日志舒服太多了尤其当工具返回的是 JSON 或者大段文本时折叠起来不会干扰你阅读主线对话。右侧执行面板是给开发者准备的。它会显示当前 Agent 的执行状态比如正在调用文档解析工具正在读取 /xxx/xxx.pdf正在等待模型响应每一步的耗时都有记录。页面底部还有一个插件管理入口可以查看当前 profile 下装了哪些插件、各自是什么版本、最近有没有报错。这些信息在 CLI 里都能查到但在 Web 界面里直观得多也适合给团队里不熟悉终端的同事看。4. DSH 插件生态推荐除了 Web 界面还能装什么4.1 六个高频插件的安装与用法dsh-web 解决的是好不好用的问题但真正让 DSH 变成个人专属工作台的是它背后的插件生态。我整理了自己日常用得最多、也最值得推荐的六个插件方向每一个都对应具体场景。文档读取插件。这是很多人第一个问的插件热词里就有dsh配置读取doc pdf的插件。Agent 要处理合同、简历、论文这类文档时不能直接把 PDF 二进制丢给模型需要插件先解析文本和表格再喂给模型。装了文档读取插件之后你可以在对话里直接写读取 /data/xxx.pdf 并总结Agent 会自动完成解析再回答。注意一点扫描版 PDF 和文字版 PDF 的解析方式不一样前者需要 OCR 能力选择插件的时候要看清是否支持扫描件。记忆插件。Agent 的跨会话记忆很重要。默认情况下每次新开会话都是失忆状态之前聊过的偏好、项目背景、模型选择全都不记得。记忆插件会在本地维护一个记忆库Agent 启动时自动加载相关记忆。我个人的使用心得是记忆插件要限制作用范围别让它什么都记。我给记忆插件配了一个白名单目录只记录用户明确说记住这个的内容避免记忆库越来越杂、反而干扰模型判断。图片输入插件。很多 Agent 场景需要看图但图片输入能不能用取决于模型本身支不支持视觉模态而不只是插件层面的事。热词里那条dsh 图片输入显示模型不支持 newapi就是这个原因你对接的模型网关或者模型通道本身不支持图片字段插件功能再全也没用。解决办法是把默认模型换成支持视觉的版本或者在配置里单独指定一个视觉模型来处理图片类请求。画图插件。让 Agent 直接出图的需求一直很旺盛。画图插件做的事情是打通 DSH 和绘图模型接口Agent 生成图片后直接渲染在 dsh-web 界面里不用再保存到本地手动打开。对于做方案汇报、快速出概念图这类场景效率提升非常明显。代码仓库接入插件。热词里提到dsh接入command code本质上是让 DSH 能读你本地的代码仓库结构、搜索代码、甚至跨文件修改。装了这类插件后Agent 就能做帮我找一下所有调用 XX 接口的地方然后统一改成新参数这种跨文件任务。用之前最好先让插件建立一次仓库索引索引完之后的搜索和修改会快很多。离线部署相关能力。如果你要在内网环境用 DSH外网的插件市场可能会连不上。这时候可以把插件打包成离线包再通过本地安装的方式塞进 DSH。离线部署时不光要准备插件本体还要把插件依赖的模型渠道、内置模型文件一起准备好不然后续运行还是会有问题。4.2 插件管理命令速查表插件装多了之后管理命令要顺手才行。以下是我常用的几个命令整理成速查表方便直接抄操作命令示例说明搜索插件dsh plugin search doc在插件市场里按关键词搜索查看插件信息dsh plugin info dsh-web看插件描述、版本、依赖安装插件dsh plugin add dsh-web安装到当前默认 profile指定 profile 安装dsh plugin --profile web add dshmarket装到指定 profile 下查看已装插件dsh plugin list列出当前环境的所有插件移除插件dsh plugin remove dsh-web卸载不要的插件更新插件dsh plugin update批量更新所有插件装插件的时候有个小建议一次装一个装完立刻跑一下对应功能确认正常再装下一个。如果一口气装五六个插件出问题的时候你根本不知道是谁和谁冲突了。5. 做 Agent 开发时dsh-web 的高频玩法5.1 用时间线观察 Agent 执行过程我自己大量使用 dsh-web 的场景是写 Agent 的时候做行为分析。在 CLI 里Agent 的执行过程是一串快速刷新的日志很难捕捉细节。dsh-web 的时间线视图把每次工具调用单独拆出来模型先做了思考然后调用搜索然后读取文件最后整合答案整个过程一目了然。有一次我的 Agent 在回答问题时总是漏掉一部分信息在 CLI 模式下怎么看日志都看不出问题。换到 dsh-web 的时间线里才发现Agent 在调用完搜索工具之后紧接着又调用了一次文档读取工具两次工具返回的内容非常长最终模型整合答案时上下文超过了预设长度后半段内容被截断了。这个问题如果在终端里排查得靠猜在时间线里一眼就能看到上下文长度爆掉的那个节点。对于做 Agent 评估的场景dsh-web 同样有用。你可以跑一批测试用例然后在页面里逐个打开执行轨迹对比不同模型、不同 prompt 在同一个任务上的行为差异。热词里提到的agent evals我理解就是这类评估流程的简称。以前做评估要自己写脚本记录日志、解析日志现在直接在 Web 界面里就能完成大半。5.2 在 Web 工作台里理解 skill、agent 和 harness很多刚开始接触 Agent 开发的人会问 skill 和 agent 有什么区别这里顺便说一下。skill 有点像一个能力组件比如读取 PDF调用计算器搜索网页这种单一能力agent 则是一整套执行实体它由模型、工具集合、记忆系统和安全控制规则组合而成。而 harness 是承载 agent 的执行环境负责调度模型和工具之间的交互。DSH 的插件体系里你装的很多插件本质上就是在给 agent 添加 skill。dsh-web 的优势在于它会把 agent 在执行过程中加载了哪些 skill、每个 skill 的耗时和调用次数展示在界面里。这对排查问题很有帮助如果你的 Agent 回答得慢打开执行面板看看是不是某个 skill 调用了太多次或者某个文档解析插件耗时异常。我在实际项目中还会用 dsh-web 做交付演示。给非技术同事演示 Agent 效果的时候只给他看终端日志他大概率一脸懵但把浏览器里的执行时间线和文件预览打开对方马上就能理解 Agent 做了什么、做到哪一步了。这也是我觉得 dsh-web 最有价值的地方它不仅服务开发者也降低了 Agent 能力的理解门槛。6. 常见问题与排查笔记6.1 认证失败怎么都进不去这是 dsh-web 新手最常见的问题。打开提示dsh web authentication required; reopen the url printed by dsh web.基本可以确定访问的地址不对。要知道启动 dsh-web 时终端打印出来的是一个带 token 的完整 URL而你往浏览器里手动输入的可能只是http://127.0.0.1:端口。把终端里的完整 URL 复制过去一般就能解决。如果你用的是服务器 浏览器访问的模式还要检查一下是否监听了正确的网络接口。默认监听 127.0.0.1 的话从另一台电脑访问是进不去的需要在启动参数里改成监听局域网地址并配合认证机制保证安全。6.2 图片输入报错模型不支持 newapi热词里有一条dsh 图片输入显示模型不支持 newapi意思是图片输入这块当前配置不支持。这个问题的核心在模型侧而不是 DSH 或 dsh-web 本身。newapi 这类网关服务只是一个统一接口层它支不支持图片取决于你配置的底层模型是否是多模态模型。排查思路分三步先确认当前 Agent 使用的模型名称是不是支持视觉的版本再检查模型网关配置里是否启用了图片上传字段最后看 dsh-web 发送的请求体里是否真的包含了图片内容。大多数情况下换一个支持视觉的模型就能解决。如果换不了变通方案是先用 OCR 工具把图片内容转成文字再把文字交给 Agent 处理效果会打折扣但能跑通流程。6.3 插件树加载失败的处理热词里有一条很长的报错error: dsh: plugin tree failed to load: failed to apply loader entry include。我第一次遇到的时候也懵了一下排查之后发现基本是三种情况。第一种是插件清单格式不对比如某个插件目录下的 manifest 文件写了语法错误导致插件树解析失败。第二种是插件之间的依赖不满足你装了一个插件 A但 A 依赖的 B 插件没有安装或版本不匹配。第三种是配置文件里的 include 字段指向了一个不存在的文件路径。排查时先执行dsh plugin list看看插件加载到哪一步开始报错的。如果能看到具体是哪个插件优先检查插件目录下的清单文件格式。确定不了就先把配置里可疑的 include 项注释掉逐个排除。如果你用的是稳定版本这种问题一般不会出现多发生在开发版本或手动改过配置文件之后。6.4 更多问题速查表问题常见原因解决动作浏览器没自动弹出环境缺少默认浏览器、SSH 远程连接启动时加--no-open手动打开终端打印的 URL端口被占用上次 dsh-web 未正常退出关掉旧进程或指定新端口启动页面加载很慢本地服务首次建立索引等待索引完成或检查插件日志插件装了但功能不生效装到了其他 profile用dsh plugin list确认当前 profileWSL 下访问不到端口未转发检查 WSL 网络模式与端口映射如果遇到速查表里没有的问题我的建议是先把上次启动 dsh-web 的终端日志完整看一遍。它不像很多软件那样故意隐藏错误信息大部分问题在日志里都有直接线索关键是你愿不愿意一行一行往下看。最后分享一个我自己的使用习惯dsh-web 装好之后我会把常用插件固定到一个独立的 profile 里日常开发全部在这个 profile 下进行避免和实验性插件混在一起。单独分出来的 profile 启动更干净出问题也好回滚。另外如果你习惯在服务器上跑 DSH建议用--no-open启动然后配一个本地导航页统一管理几个服务入口这样每次找地址不用回翻终端记录。别嫌这些小习惯麻烦它们能在关键时刻帮你省下很多排查时间。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。