第2讲 · Web UI 完全指南

《DeepSeek Harness 从上手到精通》系列 · 第一阶 快速上手篇

🎯 目标:吃透 Web UI 全部交互,理解每次"同意/拒绝" 难度 ★☆☆ ⏱ 约 20 分钟 前置:第 1 讲已跑起 dsh

本讲沿用第 1 讲启动的 http://127.0.0.1:3080。系列基于 deepseek-ai/deepseek-harness0.1.0-rc.5,MIT)。preview 阶段界面随版本微调,认准「功能」而非「按钮位置」。


一、工具调用卡片:模型"动手"的直播窗口

dsh 不是只会说话的聊天机器人——它每一次"伸手干活",都会在消息流里弹出一张工具调用卡片,实时展示它在调什么工具、传了什么参数、得到了什么结果。看懂这张卡片,是驾驭 dsh 的第一把钥匙。

内置工具按用途大致分四类,混个脸熟:

内置工具四大家族
图 1 四类工具。卡片上会显示:工具名 + 参数 + 执行结果,全程透明可审计。

每张工具卡片都能点开看细节——参数是什么、返回了什么、花了多久。别只盯着最终答案,卡片里的每一步才是理解 agent 行为的关键。

二、会话管理:新建 / 恢复 / 分支

dsh 的会话(session)是可持久、可复制、可分叉的。三个动作对应三种玩法:

动作含义什么时候用
新建开一个空白会话开始全新的、互不干扰的任务
恢复 resume从历史节点继续接着上次没干完的活
分支 fork从某节点复制一份,各自发展做"平行实验",互不污染

其中 fork(分支) 是最实用的玩法。想象你要验证两种不同的实现方案,又不想让实验互相干扰、也不想污染主会话——从一个节点 fork 出两个分支,各走各的,最后挑结果好的那个。

fork 分支实验
图 2 fork 让"平行实验"成为可能——从同一节点分叉,主会话与各分支互不影响。

三、审批系统:把危险关进笼子

当模型要执行敏感操作(写文件、跑命令、联网发请求等)时,dsh 会停下来弹出一个 审批请求(ApprovalRequest),等你点头。这是它的安全底线,不是 bug。

审批闭环与三档策略
图 3 审批闭环:敏感操作 → 弹窗 → 同意/拒绝 → 结果回填。策略可按会话设三档预设。

别把审批当负担。 它是你"看着 agent 干活"的仪表盘。熟手会先在「全审批」模式下建立信任,再逐步放开到「只审写操作」。

四、从 UI 看见"三级事件"的影子

dsh 内部有一套「三级事件」体系(第 6 讲详解),在 UI 上你其实已经能瞥见它们的影子:

  • 持久会话事件:消息流里的每一轮对话、每一次工具调用——它们会落盘,fork / resume 都是从这里重建的;
  • 实时 Agent 事件:模型"正在思考 / 正在调用工具"的进度提示,是飞行中工作的实时投影;
  • 能力事件:文件读写、工具调用背后的记录,UI 上以工具卡片的结果形式呈现。

五、动手练习:一次多步骤任务

全程不脱离 UI,让 agent 完成一个多步骤任务。在消息框输入:

帮我分析一下当前目录的 package.json,总结它的依赖和脚本,然后写一份 README 摘要存到 SUMMARY.md。

你会依次看到:模型读文件(read)→ 分析 → 写文件(write,触发审批)→ 你点「同意」→ 结果回填。做完后,试试从「写文件」那一步 fork 一个分支,让它在分支里改用另一种总结风格,对比两份 SUMMARY.md 的差异。

六、常见坑

  • 没看到工具卡片:模型可能没选择调用工具,试着把需求说得更具体("用 read 工具读取...");
  • 审批弹窗太频繁:到配置面板把策略从「全审批」调到「只审写操作」;
  • fork 后找不到分支:分支仍在会话列表里,注意区分「主会话」和「分支」标签;
  • 误点了「拒绝」:模型会换个思路重试,或直接问你想怎么办,顺着它即可;
  • 界面和我截图不一样:preview 阶段会变,认准「工具卡片 / 会话 / 审批」三件事。

七、官方文档对应章节

  • README 的 UI 与使用说明
  • docs/ 中 tool-catalog、approval、session 相关章节

本讲内容基于 DeepSeek Harness 官方文档与项目源码整理,仅供学习参考,具体命令与配置请以官方最新版本为准。系列文章配合源码仓库食用效果更佳:https://github.com/deepseek-ai/deepseek-harness

咨询 DeepSeek Harness 相关问题,请加微信:A0qingfengyuan_01

个人观点,仅供参考,如有不对之处,请多包涵,欢迎指出。本文由 AI 协助完成!