You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
DeepSeek-Harness-Sharp (DSH-Sharp) 发布说明
如何安装
curl -fsSL https://raw.githubusercontent.com/forestbat/DeepSeek-Harness-Sharp/master/scripts/install.sh | bashcurl -fsSL https://raw.githubusercontent.com/forestbat/DeepSeek-Harness-Sharp/master/scripts/install.sh | DSHSH_VERSION=v0.1.0-aot bash可选择安装AOT版本(默认为JIT)。irm https://raw.githubusercontent.com/forestbat/DeepSeek-Harness-Sharp/master/scripts/install.ps1 | iex$env:DSHSH_VERSION='v0.1.0-aot'; irm https://raw.githubusercontent.com/forestbat/DeepSeek-Harness-Sharp/master/scripts/install.ps1 | iex可选择安装AOT版本(默认为JIT)。dshsh命令,运行该命令即可启动TUI。DSHSH_HOME(安装目录)、DSHSH_BASE_URL(Release 基址/镜像)、DSHSH_PROXY(下载代理)、DSHSH_LOCAL_ARCHIVE(本地归档,离线安装)覆盖默认行为。使用方法
本项目目前支持Headless(无头)、TUI(终端交互)和Avalonia GUI三个入口,后两个均支持GPU渲染加速。
dshsh (tui):启动TUI,其中tui参数可选,除非带二级命令。dshsh (tui) --gpu:以GPU渲染方式启动TUI,目前只支持OpenGL,尚未支持Vulkan。dshsh headless "<任务>":以无头方式完成一个任务。dsh tui list:列出所有Pty,用户可以选择其中一个attach进去。dsh tui attach <id>接管特定的Pty。注意:目前Pty不能被直接访问,attach pty会自动选择其中第一个被创建的session。list/read/send),这样LLM就可以看到不同分屏内进程的状态。@deepseek-ai/dsh-gui负责逻辑,双击dsh-gui.exe即可打开。~/.dsh/settings.yaml(Windows 为%USERPROFILE%\.dsh\settings.yaml),首次运行生成带注释模板;--home/DSH_HOME可指定独立配置根。src/下的模块是作者预置的插件包,与用户自己编写的插件在标准上完全同级,只有依赖关系,没有地位差别。模块的职责
注意:src/下的模块中,带Plugin.cs的就是插件,不带的不是,所以下文不会继续强调谁是插件。
运行时与内核
Dsh.Runtime:DI 容器、服务/效应/事件与日志等基础设施(用以取代Cordis,不作为插件存在)。Dsh.Core:Agent 循环与注册表、会话与回合模型。Dsh.Boot:启动装配、配置读取(settings.yaml)、插件入口与 CLI 路由(启动入口,不作为插件存在)。Dsh.Persistence:JSONL 会话持久化与分块读写。Dsh.SessionQuery:会话全文检索,TUI中命令为/session-query。Dsh.Telemetry:事件级遥测与埋点。Dsh.Sdk:对外 SDK 线格式与记录类型(AOT 下由源生成上下文提供元数据)。Dsh.Toon:支持 TOON 编解码以代替 JSON,默认关闭,启用后LLM可以使用 TOON 格式生成工具调用/接受 TOON 格式输入,节省token。Dsh.Account:GUI负责从这里登录DeepSeek账号,默认走官方地址,私有部署只通过插件参数覆盖。模型与提供者
Dsh.Llm:提供各种LLM的支持(500+模型),目前通过models.dev开源项目接入市面已知的LLM供应商,不作为插件存在。工具与执行环境
Dsh.Interaction:顾名思义,负责和用户交互的部分,含有命令与菜单模型、diff 卡片等交互效果。Dsh.Tools:Bash/Pwsh/Edit/文件系统等基础工具(envs过滤DSH_*、workdir校验、空参数归一)。Dsh.Jobs:本地后台任务与可持久化的长时命令。Dsh.E2b:E2B 沙箱运行时与工具(目前用沙箱的场合不多,未着重开发)。Dsh.Mcp:MCP 服务器接入,若会话过期(例如 MCP 服务器重启)会自动换句柄重握手。Dsh.Lsp:LSP 服务接入(目前用LSP的场合不多,未着重开发)。Dsh.Acp:ACP 客户端/服务端与 socket 服务(只有基础通信能力,未针对具体的Agent进行适配)。Dsh.A2A:A2A协议(Agent2Agent)的服务端+客户端实现,可从其他Agent接受消息,也可给其他Agent派发任务。Dsh.Web:网页抓取与搜索工具。Dsh.Checkpoints:基于 shadow git 的检查点与回滚机制,因为占空间比较大,默认处于禁用状态,未经进一步开发和测试。Dsh.IdeHistory:若项目文件夹是VSCode / JetBrains IDE的工程,则可利用它们的历史记录,以节省CheckPoints的大空间消耗。Dsh.Ptc:对应DSH的PTC模式,生成程序化工具调用。Dsh.Workflow:工作流与 Ralph 循环工具。Dsh.Ptc的PtcProgramCompiler编译(Roslyn)后执行。Dsh.Skills:技能发现与/skill命令(文件系统技能提供者)。Dsh.Inspection/Dsh.Presets:对应DSH的创造模式。会话与协作
Dsh.Subagent:子代理编排,目前分为Headless和Interaction两档,后一档具有完整的Session功能(用户直接开设的主会话即为Interaction),前一档则是为multi-agent系统节约配置的轻量档位,相当于一个保留用户控制的async/await任务。Dsh.Board:子代理共享的看板,提高协作效率,减少token浪费。Dsh.Goal:目标(goal)状态机、权威判定与折叠。Dsh.PlanMode:计划模式控制器与相关命令。Dsh.Compaction:上下文压缩(/compact命令)与会话自动命名(会根据首条用户消息或首条LLM消息为会话重命名,也可能在回合结束触发,先到者先得)。Dsh.Memory:项目记忆功能,会自动(用户也可以直接要求)保存当前工作区的记忆,留待后续工作;默认是个md文件,可选支持MongoDB。Dsh.AgentInstructions:AGENTS.md 等指令文本的装载,按不同的会话工作区解析。终端与界面
Dsh.Pty:负责PTY(伪终端)会话与守护进程、attach 隧道、终端鼠标解析与注入等流程,是DSH-Sharp终端实现的基础。Dsh.PtyTerminal:PTY 终端后端与滚动缓冲渲染。Dsh.Tui:与其说是TUI,不如说是终端模拟器。Dsh.Gui:Avalonia 桌面界面,作为内置插件与 TUI 共用内核。Dsh.Plugins.*:插件管理能力的实现,不作为插件存在。多做了什么
准备做什么(或者说,不足之处)
暂时不打算做什么
Office 支持:OfficeCLI 工具已经可以满足一般 Office 处理的要求,没必要单独做个插件。
WebUI:我一直觉得 DSH 自带的 WebUI 属于一个吃浏览器的赶工产物(新出的官方 GUI 也是个套壳浏览器),在已有 Avalonia GUI 的前提下,暂时没有做 WebUI 的想法。
鸣谢
希望这个项目的未来越来越好!
All reactions