1. 从命令行工具到桌面版:DeepSeek Harness 到底有什么变化
如果你最近刷过 AI 编程工具圈,大概率看到过 "DeepSeek Harness" 这个名字。这个原本以命令行为主的多智能体编排工具,突然放出了桌面版,说实话我第一反应是:这不是把 Codex 桌面版和 Claude Code 的套路又走了一遍吗?但真上手跑了两天后,我发现事情没那么简单——桌面版不是简单的套壳,而是重新设计了一套交互逻辑。
先给还没入门的朋友说清楚:DeepSeek Harness 是一款面向开发者的多智能体编排框架,不是简单的对话机器人。它允许你同时调度多个独立 Agent 协同完成任务,例如一个 Agent 负责代码分析、另一个负责测试用例生成、第三个负责执行结果校验,彼此通过结构化消息传递进度。以前的纯命令行版本做得很好,但门槛不低——你得熟悉参数、懂 JSON 配置、还得接受没有可视化反馈的"盲操"。桌面版把这些短板一次性补齐了。
桌面版具体解决的是三类人的痛点。对于日常使用 Claude Code、Codex 这类工具的开发者,它提供了一条更轻量的替代路径,至少不用忍受终端里密密麻麻的日志输出;对于刚接触多智能体编排的新手,它把调度关系、任务状态、上下文窗口占用全部图形化,学习成本直接下降一个级别;对于需要把 AI 工具嵌入现有研发流程的团队,桌面版自带的会话管理与技能导入导出能力,明显比命令行更适合做交接和复盘。
我实测下来的整体印象是:这个版本不像是赶工出来的"快捷方式",更像是一次架构层面的重新表达。它的窗口布局分为三块——左侧是智能体列表与会话树,中间是主对话区,底部是任务调度台。你在命令行里最头疼的"这个子任务到底跑到哪一步了"的问题,在这里变成了几个直观的进度条。如果过去你一直在命令行里被各种标志位折磨,这个版本会让你觉得"这才是给人用的工具"。
不过也要泼一盆冷水:桌面版毕竟是新版本,功能覆盖度还不算 100%。我翻了一圈设置项,发现部分高级参数(比如自定义推理服务地址、细粒度上下文控制)在 GUI 里还没有完全暴露,必须手动改配置文件才能用。也就是说,它并没有彻底取代命令行,而是给你多了一个选择。下面我会从安装开始,一步步拆解这个桌面版到底怎么玩,以及我把玩过程中踩到的那些坑。
2. 安装之前必须理解的三件事:它是谁、靠什么跑、装到哪
2.1 为什么它和 Codex、Claude Code 长得这么像,但又不完全一样
桌面版刚发布时,很多人第一反应是"这个东西是不是就是 Codex 桌面版换了个皮"。确实,用过 Codex 桌面版的人看到 DeepSeek Harness 的界面会觉得很亲切,左侧会话列表、中间聊天窗口、底部输入框,这个布局几乎是行业标配了。但核心逻辑完全不同:Codex 本质上是"一个模型 + 一个会话",而 DeepSeek Harness 从诞生起就是"多个模型/多个智能体 + 多路会话编排"。
用生活类比来解释。你让一个全能管家去办三件事——订机票、查天气、买咖啡,他做事的顺序是串行的,中间还可能记岔。而 DeepSeek Harness 的做法是:派三个分工明确的专员并行处理,每个专员只盯着自己的目标,做完以后把结果汇总到主控 Agent 那里。桌面版把这种"多专员并行"的过程可视化之后,你就不需要靠想象猜测"现在谁在干活、谁在等待、谁已经把结果交上来了"。
同样的区别还体现在技能(Skill)机制上。Codex 支持通过配置 instruct 文件来约束行为,本质上还是单线程规范。而 DeepSeek Harness 把 Skill 做成了可以挂在单个智能体上的插件系统:你可以给 Agent A 挂代码审查技能,给 Agent B 挂正则测试技能,不同 Agent 在编排时各干各的活,互不污染。这在桌面版里操作更直观——直接右键某个 Agent 节点就能挂载 Skill,不用记住那串路径。
所以在安装之前,你得先扭转一个认知:这不是又一个聊天客户端,它是一个"可以同时开多个角色干活"的调度中心。理解了这一点,后面配置多智能体协作的时候才会顺手。
2.2 运行环境到底要准备什么,Windows 和 Mac 的差异在哪
依据我在 Windows 和 Mac 双平台的实测,DeepSeek Harness 桌面版的安装包主要面向 win-x64 和 mac-arm64 两类架构。Windows 用户需要注意:桌面版依赖 WebView2 运行时,Win10 1703 之前的版本大概率装不上,系统版本太旧会直接报 Dll 初始化失败。Mac 用户则要确保 Apple Silicon 芯片——早期 Intel 芯片虽然也能跑,但界面渲染明显卡顿,官方商店里的下载源也是优先提供 arm64 包。
内存方面,我之前用命令行版跑 3 个智能体做代码评审,大约占 1.2 GB 内存。桌面版因为多了 Electron 壳子和渲染进程,起步占用差不多 700 MB,叠加智能体调用后会到 2 GB 以上。如果你电脑只有 8 GB 内存,建议一次最多跑 2 个智能体,否则轻则卡顿、重则黑屏。磁盘空间倒不是问题,安装包大约 180 MB,装完约 400 MB,留出 1 GB 就够了。
需要特别提醒的是 GPU 加速。安装过程中弹出一个窗口询问"是否启用硬件加速",很多人直接点是,然后启动时立刻报错:GPU / 加速器不受支持(可用:CUDA,要求:g)。这个报错其实不影响核心功能,是国内网络环境下加载远端遥测模块失败引起的误报,解决办法是启动时加上参数禁用 GPU 渲染(--disable-gpu),或者在设置里手动关闭硬件加速。
存储路径也是容易忽视的点。Windows 上默认数据目录在 %APPDATA%\DeepSeek-Harness,所有的会话记录、Skill 配置、Agent 定义都存这里。如果你之前用过命令行版,目录下的 skills 文件夹可以无缝迁移复制过来。Mac 对应在 ~/Library/Application Support/DeepSeek-Harness。我建议安装完第一件事就是把这个目录备份一下,因为很多所谓"配置丢失"问题,其实都是因为这个目录被清理软件误删了。
2.3 拿到安装包之后的三种安装方式,每一步做什么
官方下载页目前提供三类安装包:Windows 的 exe 安装程序、Mac 的 dmg 镜像、以及面向 Linux 系的 tar.gz。我分别试过之后,给你一个安装顺序建议:如果你的系统是 Windows 11 或 macOS 14 以上的新版系统,直接用它自带的图形安装器一路下一步即可;如果你想将来方便回退版本,建议别急着覆盖安装,先保留旧版本的压缩包。
Windows 安装时有一个隐藏选项值得注意——安装界面虽然默认只让你选安装位置,但点右下角"高级设置"可以勾选"添加至 PATH"。如果你之前用过命令行版并且打算继续用 CLI,这个选项务必打开,否则装完桌面版后终端里找不到 harness 命令,还得手动配环境变量。Mac 这边则相对省心,把 dmg 拖进 Applications 即可,首次启动会要求赋予"允许控制其他 App"权限,这个权限主要用于桌面版读取本地代码目录,不开也能聊天,但无法扫描本地项目。
Linux 用户如果用的是 Ubuntu 桌面版,tar.gz 解压后直接运行可执行文件通常没问题,但可能缺 libwebkit2gtk 依赖。安装命令我在后面问题排查章节会提到。安装完成后第一次启动会进入引导页,它会问你要不要导入历史会话。如果你之前部署过 Command Line 版,选择"从旧目录导入",可以自动继承配置文件,省掉重新设置 API 密钥的步骤。
3. 上手实操:多智能体编排与 Skill 挂载的完整流程
3.1 新建项目空间并配置模型服务,这是所有功能的地基
启动桌面版后,第一步不是急着建对话,而是先创建一个"项目空间"。这个概念对应命令行里的工作目录——每个项目空间拥有独立的配置文件、独立的会话树和独立的 Skill 集合。我在测试时创建了"代码评审"和"自动化测试"两个空间,互相之间完全不干扰,对比过就知道这种隔离设计对多项目并行有多友好。
进入空间后,主界面右上角有一个"模型服务"按钮,点击后会看到默认指向官方 API 地址。如果你之前用过命令行版,这里已经预填了你的 API Key;如果是全新安装,需要手动粘贴 Key。我建议在这里把上下文窗口设置为 32K 起步,否则长会话很容易因为欠上下文导致智能体"失忆"。
这里有一个命令行版没有的细节:桌面版的模型服务配置是支持多配置并列的。你可以同时配置官方服务和本地服务(本地说白了就是 Ollama、LM Studio 这类工具起的接口),然后在创建智能体时按需选择。我实测下来,代码生成类任务用官方服务更稳,简单问答类任务用本地服务省钱。桌面版把这个切换操作简化成了下拉选择框,点一下就能切,非常顺手。
如果你之前在命令行版里已经配置过 API 地址,桌面版并不会自动读取你所有的环境变量,但会尝试读取 ~/.deepseek-harness/config.json 里的 base_url 字段。我一开始以为需要重新填写,后来发现它自动带出来了,这一点做得比较贴心。总之,项目空间 + 模型服务的组合,决定了后续所有智能体的"视力"和"口粮",这里值得多花五分钟认真配置。
3.2 创建多个智能体并设置角色目标,模拟一场真实的协作
配置好模型服务后,就可以进入核心环节——创建多个智能体。桌面版主界面的左下角有一个"+"按钮,点开后可以给智能体起名字、选择模型服务、设定角色描述。我复现了一个典型的"代码评审三人组":
- 智能体 A(评审者):角色描述是"你是资深代码审查专家,擅长发现逻辑缺陷和安全隐患"。
- 智能体 B(测试者):角色描述是"你是测试工程师,负责根据需求生成边界测试用例"。
- 智能体 C(总结者):角色描述是"你是技术文档写手,负责汇总前两者的结论并输出报告"。
这三个智能体创建完成后,可以在视图里看到它们呈现三张不同的卡片。点击其中任意一张,右侧会弹出该智能体的独立会话面板。也就是说,每个智能体都有各自独立的上下文窗口——A 不会看到 B 的完整对话历史,只会收到主控转达的摘要。这种设计和人脑分工有点类似:总控者掌握全局信息,执行者只需要关心自己的任务切片。
真正的协作调度在主对话区完成。我在主对话区输入:"请对项目 src/utils/validator.ts 进行审查,并生成对应的边界测试用例,最后输出一份 Markdown 报告"。系统会先通过主控智能体解析这条请求,然后自动分包给 A、B、C。你可以在底部的调度台上看到三个任务依次被领取,状态从"排队"变"执行中"再到"完成"。需要注意的是,默认情况下它们是并行执行的;如果某项任务有依赖关系,需要在智能体设置里打开"等待上游完成"开关。
如果你用过命令行版,一定体会过这种协作用 JSON 配置写起来的痛苦——每条消息要手动指定 from_agent 和 to_agent,光是维护关联关系就够喝一壶。桌面版把这些全做成了可视化连线,右键从评审者卡片拖出箭头接到测试者卡片上,就能建立一条消息通道。这种交互改进真的是用过就回不去了。
3.3 Skill 插件的安装与挂载,这是桌面版的最大亮点之一
热词里反复出现"deepseek harness 用 skill",可见 Skill 机制在用户心里的地位。桌面版把 Skill 管理做成了一个独立的"技能库"面板,操作路径是:主界面底部"技能库"按钮 -> 点击"导入" -> 选择本地技能目录。官方默认技能仓库里的 skill 是以目录结构组织的,每个技能包含一个 SKILL.md 描述文件和若干辅助脚本。
我强烈建议第一次使用的朋友先导入官方模板技能集,尤其推荐其中的 code-reviewer、unit-test-generator 这两个技能。导入后,技能的启用状态会显示在卡片右上角。挂载到具体智能体的操作是:右键智能体卡片 -> 选择"挂载技能" -> 勾选需要启用的技能。这里有个小技巧:一个智能体可以同时挂多个技能,但技能之间可能产生指令冲突。比如 code-reviewer 和 security-audit 都要求"先进行代码扫描",就容易重复劳动。我在测试中实验得出,单个智能体挂载不超过 2 个技能,任务分配效率最高;超过 2 个,思维链长度会明显增加,响应速度反而下降。
如果你之前用的命令版已经配置过自定义 skill,迁移步骤也很简单:找到旧目录下的 skills 文件夹,把整个目录复制到新数据目录的 skills 文件夹下,重启桌面版后技能库面板里就会自动识别。不过要注意,桌面版对 skill 的版本要求可能更高;我遇到过旧技能在新版本里无法加载的情况,从报错信息看是缺少 front_matter 字段。解决的方法是在 SKILL.md 头部补上 name 和 description 两个字段,格式参考官方模板即可。
3.4 用桌面版复刻命令行操作:从对话到产出的完整路径
纸上谈兵终究不够,我直接跑了一个完整的操作流程给你参考。假设我想让这套系统审查 GitHub 上一个开源项目并生成测试报告,操作路径如下:
第一步,在项目空间里点击"连接代码库"按钮,选择本地已经克隆好的项目目录。桌面版会自动建立索引,右上角能看到文件数统计。这一步对应命令行版的 repo-map 功能,但桌面版的可视化树状文件列表确实比命令行直观得多。
第二步,在主对话区输入目标指令。我当时的输入是"审查 src/core 目录下的所有 TypeScript 文件,重点关注异步错误处理,并生成一份改进建议报告"。指令里最好包含明确范围、关注重点和输出形式,模糊指令会导致智能体发散。命令行版用户对这种感觉应该很熟悉,但在桌面版里,你可以在输入的同时看到三个智能体的状态变化,多了一层确定感。
第三步,在提交任务前,从调度台上检查每个智能体的 Skill 状态。确保"评审者"挂上了 code-reviewer,"测试者"挂上了 unit-test-generator,"总结者"不需要挂技能。一切无误后点击"发送"。
第四步,等待执行。我测的任务有 47 个 TypeScript 文件,三个智能体并行执行,总耗时约 4 分 20 秒。期间你可以切换到任意智能体的独立面板查看它的中间输出——这是我特别喜欢的一点,命令行版只能等最终结果,而桌面版可以看到 A 正在说"发现第 12 行存在未捕获的 Promise rejection"这样的过程信息。
第五步,结果汇总。C 智能体完成报告后,主对话区收到一份完整的 Markdown 报告,里面包含问题清单、严重级别、建议代码示例。点击"保存到项目"按钮,报告会直接写入项目目录下的 reports 文件夹。整个流程我在命令行下也复现过,从准备 JSON 配置到执行完成大约 25 分钟,桌面版把这个时间压缩到了 5 分钟以内,而且省掉了大量的配置排查时间。
4. 常见问题与排查技巧实录:安装、回退、报错的完整速查表
4.1 安装失败和启动报错,先看这十个高频问题
桌面版发布后,社区里反馈最多的就是各类安装问题和启动问题。我把高频问题整理成一张速查表,结合我自己踩过的坑,按优先级排列:
| 问题现象 | 常见原因 | 解决方案 |
|---|---|---|
| 安装包双击无反应 | 系统缺少 WebView2 Runtime(Windows) | 手动安装 WebView2 后重试 |
| GPU / 加速器不受支持报错 | 遥测模块与旧版本图形驱动不兼容 | 启动参数加 --disable-gpu |
| 安装后找不到 harness 命令 | 安装时未将程序加入 PATH | 重新安装勾选"添加至 PATH" |
| Mac 上 dmg 无法打开 | 未授予第三方应用权限 | 系统设置 -> 隐私与安全性 -> 仍要打开 |
| Linux 启动黑屏 | 缺少 webkit 依赖 | 安装 libwebkit2gtk-4.0-dev 后重试 |
| 首次启动卡在引导页 | 网络无法连接远端服务 | 检查网络连通性,确认 API 地址可达 |
| 历史会话无法导入 | 数据目录位置不对 | 手动将旧 versions 目录复制到新数据目录 |
| 智能体创建后无法对话 | 模型服务配置为空的 | 检查 API Key 和 base_url 是否填写正确 |
| 界面显示不全/按钮丢失 | 旧版本缓存冲突 | 清空 %APPDATA%/DeepSeek-Harness/Cache 后重启 |
| 退出后进程仍在后台 | 托盘驻留机制 | 在系统托盘图标右键点击"完全退出" |
这十个问题里,我想单独提一下"GPU / 加速器不受支持"。这个报错在社区里被广泛讨论,很多人的第一反应是显卡驱动问题,其实并不完全是。它往往是桌面版内置的遥测组件尝试调用 CUDA 时,因为驱动版本过新或过旧导致的兼容性异常。禁用 GPU 渲染不影响正常使用,因为多智能体编排主要是 CPU 密集和网络 I/O 密集任务,不像图像生成工具那么依赖 GPU。跑了一个小时后我对比过,禁用后对话响应速度几乎无差异。
4.2 版本回退到 v0.1.5-rc.2 的正确姿势
热词里专门有人问"deepseek harness 怎么退回到 v0.1.5-rc.2",说明新版本在某些环境下的体验不尽如人意。我实测发现 v0.1.5-rc.2 是个相对稳定的版本,尤其在对低配电脑的兼容性上,明显好于后续版本。如果你也想回退,这里给你一个不会破坏现有数据的流程。
首先,回退前必须备份数据目录,这是最重要的一步,特别是 skills 目录和 projects 目录。其次,彻底卸载当前版本。Windows 下要去"设置 -> 应用 -> 安装的应用"里卸载,卸载完还要手动删除 %APPDATA%\DeepSeek-Harness 残留文件夹,否则新版配置残留可能导致旧版本加载异常。Mac 下则把 /Applications 里的程序拖进废纸篓,再进 ~/Library/Application Support 清理残留。
然后,从官方发布页找到 v0.1.5-rc.2 的安装包,正常安装。装好后启动,软件会提示"检测到新版本配置文件"还是"发现更高版本数据",这里选"忽略并继续使用当前版本"。我见过有用户因为点了升级提示,结果又自动下载了新版,导致回退失败。这一点要格外注意,建议在启动后立刻进入设置找到"自动更新",把它关掉。
最后一步是恢复数据。把之前备份的 skills 文件夹复制回数据目录,然后重启程序。会话记录默认存储在 versions 目录下按日期分组的 JSON 文件里,回退后不需要特殊操作即可加载。如果发现部分会话显示为"不可读",通常是版本间 schema 有差异,只能忍痛丢弃,这是回退的代价。
4.3 关于"codex 桌面版"和"claude code 桌面版"的十连问,这里统一回答
由于 DeepSeek Harness 桌面版的外形和操作逻辑和 Codex 桌面版、Claude Code 桌面版确实有相似之处,很多用户会把三者搞混。我在测试时也顺带对比了一下,把常见问题统一回复如下。
三者能共存吗?完全可以。它们的数据目录互不相同,安装互不干扰。我自己的电脑上三个工具都装了,各管各的项目。哪个更省资源?单智能体对话场景下 Claude Code 桌面版更轻,但多智能体编排场景下 DeepSeek Harness 的优势明显,因为后者的调度引擎是原生的。接口通用吗?如果你在 Codex 里用了 OpenAI 的 API 格式,DeepSeek Harness 也能部分兼容,因为两者都支持 OpenAI 兼容协议,但不保证所有参数都生效。是否必须用 DeepSeek 官方模型?不是。桌面版模型服务配置里可以填任何符合协议的服务地址,我就接入了本地 Ollama 跑过简单任务,完全可行。为什么我的 Codex 桌面版不能自动更新?这个和 DeepSeek Harness 无关,通常是网络代理或更新通道权限设置问题。能否在无桌面环境服务器上用?桌面版依赖图形环境,服务器上还是建议用命令行版。是否支持插件市场?目前不支持在线市场,但支持本地导入官方技能集。界面语言只有英文吗?当前版本确实以英文为主,中文对话本身没问题,但菜单没汉化。能否导出对话记录?可以,右键会话节点选择"导出 JSON"。断网能用吗?如果你配置的是本地模型服务,断网依然可以执行多智能体编排,只是无法加载远端 Skill 模板。
这些问题的共性是:用户习惯性把三个工具当作一个品类的替代品,但它们的适用场景其实有明显的错位。如果你需要多角色协同、任务并行,DeepSeek Harness 桌面版值得花时间投入;如果你只是想要一个简单的单模型聊天窗口,那其实选择就多了。
4.4 实测阶段遇到的其他坑,以及相应的解决思路
除了前面提到的安装和回退问题,我还遇到了一些比较隐性的问题,这里一并分享。
第一个是任务执行卡死。我在跑一个包含 20 个文件的重构任务时,三个智能体协作到中途,调度台上的"测试者"节点状态一直是"执行中",持续了五分钟。排查思路是:先检查右下角的运行日志,发现测试者智能体试图访问一个不存在的外部工具路径,原因是 Skill 内引用了绝对路径,换电脑后路径失效。解决方法是把 Skill 脚本里的绝对路径改成相对路径,或者在挂载技能前确认目标脚本存在。
第二个是上下文污染。多个智能体共享同一个项目空间时,如果主对话里聊了太多杂事,后续创建的新智能体会继承一部分聊天历史作为系统上下文,导致新智能体的行为被带偏。我复现了好几次,每次都是因为主对话区里混杂了大量非任务类闲聊。解决办法很简单:在创建新任务之前,先右键主对话区选择"清除上下文",让所有智能体重新开始。习惯这个操作后,任务准确率明显提升。
第三个是Skill 版本兼容性。这个问题我在前面提到过,但再强调一次:新版本桌面版对 SKILL.md 的 front matter 格式更严格。如果你从网上下载了社区 Skill,加载失败时八成是缺少 name 或 description 字段。花两分钟补上这两个字段,重启加载即可。我还见过一个案例,某社区 Skill 的脚本用 Python 3.12 新语法写的,而本机是 3.10,报错信息显示的是语法错误而不是部署错误,容易误导排查方向。遇到这类问题先判断是加载器的问题还是执行环境的问题,不要死磕配置。
第四个是高内存占用导致的整机卡顿。如果你同时开了三个智能体,还开着浏览器看文档,16 GB 内存的机器有概率直接卡死。建议按需要控制并行数,或者把模型服务的上下文窗口从 32K 调到 16K,内存占用能下降约 40%。
5. 桌面版和命令行版怎么选,以及未来可以怎么玩
5.1 我的选择建议:什么场景用 GUI,什么场景回 CLI
测试完之后,我自己现在的用法是混合模式。桌面版作为日常主力,负责大部分需要可视化监控的任务;命令行版则留在自动化脚本和远程服务器场景。这样分工的逻辑很简单:桌面版把复杂度藏起来了,但藏起来不等于消失——对于需要精细控制的任务(比如调整上下文预算、查看原始 token 消耗),命令行版依然是更好的选择。
如果你是个多智能体编排的重度用户,建议把桌面版当观测台、命令行版当执行引擎。可以在命令行里跑完任务后,把生成的结果文件拖进桌面版的项目空间里进行分析。这种组合用法在团队协作里尤其方便——桌面的领导看桌面版的报告面板,执行的同学用命令行跑批处理,两边不冲突。
对于从零开始学习多智能体编排的朋友,我的建议是:先花一小时用桌面版跑通一个最简单的"两智能体协作"任务,理解调度流程后,再去碰命令行版的 JSON 配置就毫无障碍了。桌面版的图形化布局本质上是把配置文件的可视化映射,看懂了界面,也就理解了配置文件里每个字段的作用。
5.2 一个值得马上尝试的进阶玩法:结合代码库自动生成周报
最后分享一个我最近在用的组合玩法。我每周要整理一个开源项目的维护周报,内容包括代码提交统计、近期 issue 趋势、性能回归测试结果。以前这要手动收集数据再汇总,至少两小时。现在我在 DeepSeek Harness 桌面版里建了三个智能体:第一个负责读取 git log 生成提交分类,第二个负责分析 issue 标签分布,第三个负责调用测试脚本汇总回归结果。我只需要在主对话区输入"生成这一周的维护周报",三分钟后就能得到一份结构化报告。
这背后其实就是 Skill 机制加多智能体编排的威力。第一个智能体挂载了 git-log-analyzer 技能,第二个挂载了 issue-tagger 技能,第三个不需要特殊技能,只负责格式化输出。这个流程的全部配置都在桌面版里完成,我甚至不需要看任何文档就能独立搭出来——这就是桌面版给我最大的价值:它让复杂编排工具的入门门槛降到了"看得懂界面就能玩"的级别。
根据我个人经验,这个工具后续最值得期待的方向,一个是可以让 Skill 从本地导入升级到在线共享市场,另一个是支持把整个项目空间打包分享给别人,类似 Docker 镜像一样的"编排模板分发"。如果真的实现这两点,多智能体编排就从"个人玩具"变成了"团队协同一等公民"了。不过这些都是后话,眼下桌面版这个版本已经足够我在日常开发中解决真实问题了。