DeepSeek Harness 进程面板插件介绍

前言

在使用 DeepSeek Harness(DSH)开发智能体时,智能体经常会启动后台服务(如数据库、API 服务)。这些进程通常通过 shell 命令或 Start-Process 启动,开发者难以在 Web GUI 中直观地看到“哪个对话启动了哪些服务”,也无法快速查看日志或进行启停操作。

dsh-process-board 插件解决了这个问题。它是一个 DSH 服务面板插件,可以在 Web GUI 侧边栏查看服务归属、进行启停管理、实时查看日志,并支持启动参数的重放。

核心能力

该插件提供以下功能:

  • 会话归属:通过 DSH 宿主注入的 DSH_SESSION_ID 环境变量,结合进程树血缘,将每个服务归属到启动它的对话。面板会按会话的中文标题分组显示。
  • 服务视图:内置三道过滤逻辑(端口/日志标记闸门、剔除 npm/cross-env 启动器壳、合并 nginx master-worker),只展示真正的服务进程,避免刷屏。
  • 三态探测:提供三种状态展示。
    • running:端口处于监听状态。
    • pid-alive:进程存在但端口未监听(如 Java 冷启动阶段)。
    • stopped:进程已结束。
    • 支持通过 HTTP 探测检查服务的响应码。
  • 启停管理:停止服务时采用礼貌终止(SIGTERM/taskkill),给予宽限期后对进程树进行强杀。当服务状态为 stopped 时,行内会出现「启动」按钮,可重放登记的启动参数。
  • 日志查看:启动时注入 DSH_PB_LOG 环境标记。面板采用分栏设计,实时 tail 日志流。支持 ERROR 红色高亮和 WARN 黄色高亮,每 4 秒自动刷新,且支持滚动吸底。
  • 全屏模式:面板 ⛶ 铺满视口;日志 ⛶ 覆盖整个面板。支持按 Esc 逐级退出(日志全屏 → 面板全屏 → 关闭)。

安装与启用

前置条件是已安装 DSH(dsh 命令可用)。

使用以下命令安装插件:

dsh plugin --profile web add dsh-process-board

安装完成后,必须重启 DSH 宿主(重新执行 dsh web),并在浏览器刷新页面。此时侧边栏会出现「进程面板」入口。

典型用法

要让面板正确显示服务和日志,需要正确启动服务。

1. 带日志标记启动(Shell/Bash)
启动服务时,通过环境变量 DSH_PB_LOG 指定日志文件,并将标准输出重定向到该文件。

export DSH_PB_LOG=/tmp/my-service.log
java -jar app.jar >> /tmp/my-service.log 2>&1 &

2. 显式登记并启动(API)
如果需要更精细的控制,可以通过 API 显式登记服务信息(名称、启动参数、工作目录、端口、日志文件),之后面板可直接点击「启动」按钮重放。

curl -X POST http://127.0.0.1:3080/api/plugins/process-board/start \
  -H 'content-type: application/json' \
  -d '{"name":"my-svc","argv":["java","-jar","app.jar"],"cwd":"/path/to/app","port":8080,"logFile":"/tmp/my-svc.log"}'

3. PowerShell 启动
在 Windows PowerShell 中,可以使用 Start-Process 并配合重定向。

$env:DSH_PB_LOG = "$env:TEMP\my-service.log"
Start-Process java -ArgumentList '-jar','app.jar' -RedirectStandardOutput $env:DSH_PB_LOG -WindowStyle Hidden

注意事项

  • Mac 平台限制:当前版本在 Mac 上安装后插件可加载,但扫描器返回空。原因是 scanner.js 中存在 process.platform !== 'win32' 的提前返回逻辑。探测和停止层已跨平台就绪,但进程扫描功能暂未在 Mac 上生效。
  • 安装路径限制:使用 link: 方式安装时,只接受本地目录路径。例如 dsh plugin --profile web add link:~/dsh-process-board 是有效的,而 link:https://... 会被解析失败。
  • 运行时依赖:插件客户端为纯 DOM 实现,零运行时依赖。

结语

dsh-process-board 是一个面向 DSH 开发者的实用工具,通过环境变量和进程树分析,实现了服务归属的可视化与标准化管理。对于需要频繁管理后台服务的智能体开发场景,它能够显著提升调试和运维效率。

GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜