上一篇把 DeepSeek Harness 装好之后,很多人问得最多的其实不是“怎么让它跑起来”,而是“装完以后到底应该先动哪些设置,才能让这个 Agent 真的听我指挥”。这一篇就把通用设置和 Agent 预设这两块掰开揉碎讲清楚。我自己刚开始用的时候,也觉得这东西就是个强化版聊天框,把问题丢进去等答案就行。直到我把设置面板从头到尾过了一遍,又认真研究明白了预设的作用,才意识到它真正值钱的地方在于:你可以把一整套工作方式“投喂”给 Agent,让它按照你的习惯去干活,而不是每次都在对话里反复交代上下文。
先说清楚这一篇适合谁。如果你只是装了个桌面版,日常拿它写点周报、改改文案,那通用设置里有一半内容你暂时用不上,但另一半会直接影响你的使用体验。如果你是想把 DeepSeek Harness 当成真正的 Agent 开发工具,用它来跑多步骤任务、接外部工具、做半自动化的脚本执行,那 Agent 预设这一块你绕不开,而且值得花一个下午认真研究。我尽量用实际配置过程中的例子来讲,不堆术语,能少走很多弯路。
1. 通用设置到底在设置什么?
1.1 从“装完就跑”到“先调三处”
我记得第一次打开 DeepSeek Harness 的设置面板时,眼前是一长串选项,什么上下文窗口、温度参数、最大 Token、工具调用开关、历史记录保留策略,第一反应是头晕。后来用久了才明白,这里面真正决定“这个工具好不好用”的,其实就三处:模型接入、上下文管理、工具权限。
模型接入决定了你用的是官方服务还是自己的本地模型。通用设置里通常有一个默认模型选择,你可以填 API Key,也可以配置本地模型的地址。我自己的习惯是先用官方默认配置跑通流程,再切换到本地模型做敏感数据的处理,这样两者互补。需要注意,很多人在这一步就把 Key 填错了地方,或者选了模型但没点“设为默认”,导致每次新建会话都要重新选模型,非常烦人。
第二处是上下文管理。DeepSeek Harness 的对话上下文是有窗口限制的,通用设置里一般会让你选“自动压缩”“截断”或者“手动管理”。我强烈建议选自动压缩,尤其是做长任务的时候。工具虽然能自动帮你做摘要,但如果你把窗口设得太小,它压缩的频率会非常高,高到 Agent 自己都忘了前面在干什么。这个平衡点稍后细说。
第三处是工具权限。Agent 能不能读写本地文件、能不能执行终端命令、能不能调用外部 API,这些都在通用设置里控制。我见过不少人装完就急着用 Agent 去改项目代码,结果它根本没权限写文件,报了一堆错,其实是权限没开。反过来,权限全开也很危险,一个错误的指令可能让 Agent 把不该删的文件删了。这里的原则是:按需最小化,用完就关。
1.2 那些值得逐项检查的通用设置项
我整理了一份我日常会逐个检查的设置项清单,按重要程度排列,你在自己的设置面板里可以对照着找:
| 设置项 | 推荐值(我常用的) | 为什么这么设 |
|---|---|---|
| 默认模型 | 官方最新稳定版 | 稳定优先,新模型等社区跑几天再切 |
| 上下文窗口 | 尽量选最大 | 大窗口能减少自动压缩次数,但要注意成本 |
| 上下文压缩策略 | 自动压缩+摘要 | 长任务不会断片,副作用是偶尔漏细节 |
| 温度(Temperature) | 写代码/执行任务:0.2 左右;写文案:0.7 左右 | 温度低,输出更确定;温度高,发挥更多但容易跑偏 |
| 最大回复 Token | 4096 或按需 | 太小会被截断,太大单次生成慢 |
| 工具调用开关 | 按需开启,默认全关 | 不用的工具不开,降低误触发概率 |
| 终端命令执行 | 每次询问 | 不要选“自动允许”,这是防手滑的底线 |
| 文件读写路径 | 限定到工作目录 | 防止 Agent 到处乱翻文件 |
| 会话历史保留 | 保留最近 20 条 | 太长了上下文噪音大,太短了 Agent 没记忆 |
| 插件市场 | 只装用得上的 | 插件越多,互相干扰的可能越大 |
这里要特别说一下温度和工具调用。温度这个参数,很多人不理解它到底是干嘛的。简单说,温度越低,模型越“保守”,倾向于选择概率最高的下一个词,输出更稳定,适合写代码、执行任务;温度越高,输出越有“创造性”,但代价是可能胡说八道。我在做任务型 Agent 的时候会把温度压到 0.2 以下,写文案的时候再调高,这个切换在预设里可以分别绑定,非常方便。
工具调用开关则是 Agent 能不能“动手”的关键。你给 Agent 的权限越多,它越能干,但出事的概率也越大。我的经验是,能用“每次询问”就别用“自动允许”,尤其是终端命令。执行命令前多弹一次确认,看起来多了一步操作,实际上能拦住 90% 的误操作。
1.3 通用设置里的两个“隐形大坑”
第一个坑是“最大回复 Token”设得太小。默认值往往比较保守,如果你让它写一篇长文章或者重构一段代码,它会写到一半就停住,然后告诉你“已达最大 Token 限制,是否继续”。这个“继续”的机制倒是没问题,但很多新手会以为这是报错,其实只是截断。把最大回复 Token 调到 4096 以上,大多数日常任务就不会触发这个问题。
第二个坑是“会话历史保留”和“上下文窗口”混为一谈。很多人以为把上下文窗口开到最大就万事大吉,结果历史保留策略设置得太长,Agent 每次都要把几十轮对话全部重新读一遍,浪费大量 Token,响应也变慢。其实这两个参数是配合着用的:窗口决定“单次能看到多少”,保留策略决定“哪些对话值得被看到”。我一般会把历史保留调成“最近 N 条 + 摘要”,而不是无限保留。
2. Agent 预设到底是个什么东西?
2.1 预设不是配置文件,是“岗位说明书”
刚开始接触 Agent 预设的时候,我一直以为它就是一组参数的集合,比如温度设多少、模型选哪个、工具开哪些。后来才发现,这只是预设最基础的一层。预设真正的核心,是“角色设定 + 工作流程 + 行为边界”的组合。
打个比方。你招了一个新员工,光给他电脑和软件,他是不知道该怎么干活的。你得告诉他:你的岗位是什么、你的职责范围是什么、遇到问题该找谁、什么情况下可以自己做决定、什么情况下必须请示。Agent 预设就是这份“岗位说明书”。
一份完整的预设,里面会写清楚:这个 Agent 是谁(角色定义),它要完成什么目标(任务描述),它偏好用什么方式工作(流程规范),它绝对不能做什么(边界限制),以及它在什么情况下需要停下来问用户(升级策略)。这些内容写得好不好,直接决定了这个 Agent 是靠谱的执行者,还是给你添乱的“自动生成器”。
有人可能会问,这些内容我每次在对话里说一遍不就行了?理论上是行得通的,但实际用起来会发现两个问题:一是每次都要重复交代,很烦;二是对话一长,前面交代的内容就被上下文冲掉了,Agent 会“忘记”自己的角色。预设相当于把这份说明书固化下来,每次会话开始时就自动注入,不需要你重复,也不会被后续内容淹没。
2.2 预设和我们常说的 Agent 框架有什么关系
聊到这儿,必须澄清一个概念:DeepSeek Harness 里的“预设”,不等于 Agent 框架。现在网上讲 Agent 开发的内容很多,什么 Agent 框架、Agent 编排、Agent 记忆,听着很玄乎。其实你可以把框架理解为 Agent 的“身体”,它负责接收输入、调用工具、管理记忆、生成输出;而预设是“灵魂”,它决定这个身体以什么身份、按什么规则去行动。
所以你在 DeepSeek Harness 里创建一个预设,并不是在“开发一个 Agent”,而是在给已有的 Agent 基础设施定义一套行为规范。这有点像用现成的引擎造车——引擎是框架,你调的悬挂、方向盘手感、油门响应,就是预设。这也是为什么 DeepSeek Harness 入门门槛低:你不需要从零搭一套 Agent 系统,只需要学会怎么写好预设,就能做出各种专用的智能体。
我见过很多从其他 Agent 项目转过来的人,习惯性地一上来就找“编排配置文件”,结果发现 DeepSeek Harness 的预设比想象中简单很多。它不需要你写复杂的图编排,用自然语言把流程描述清楚,再配上几个关键参数,就足够跑起来。这也提醒我,别被概念吓住,先动手做,遇到了边界再看要不要上更重的手段。
2.3 预设解决的核心问题
预设解决的核心问题,其实就一句话:让 Agent 在不同场景下有稳定的、可预期的表现。
如果没有预设,你每次跟 Agent 对话,它的表现都取决于你这一次怎么描述问题。同一个 Agent,今天你让它“帮我写个脚本”,它能写得不错;明天你换了一种说法,“写个命令行的批处理”,它可能就把工具用错了,甚至停下来问你“你到底想干嘛”。这种不确定性,在玩票场景下无所谓,但在正经干活的时候很致命。
有了预设,相当于给 Agent 装上了“情境记忆”。它一启动就知道自己是个代码审查助手,还是在写营销文案的编辑,还是做数据分析的助手,行为模式从一开始就定好了。遇到模棱两可的指令,它会按照预设里的规则去理解,而不是自由发挥。
另外,预设还有个好处,就是可迁移。你在自己电脑上调试好的预设,可以导出给团队其他人用,也可以放到插件市场里分享。把个人经验变成团队资产,这是预设最值得投入时间研究的原因。
3. 手把手搭一套可用的 Agent 预设
3.1 创建一个预设的基本流程
打开 DeepSeek Harness 的“Agent 预设”或“预设管理”入口,一般会看到一个“新建预设”按钮。点进去之后,通常会有几个板块要填:基本信息、角色定义、任务目标、工作流程、工具绑定、边界规则。不同版本叫法可能略有差异,但逻辑是通的。
我自己创建预设的顺序是:先写角色和任务,再配工具,最后定边界。角色和任务是骨架,工具是手脚,边界是刹车。先想清楚这个 Agent 要服务什么场景,再去想它需要哪些工具,最后划定什么不能碰。
我拿一个真实的例子来说:我经常要处理一批 CSV 格式的业务报表,清洗、汇总、生成图表。传统的做法是写 Python 脚本,或者手搓 Excel 公式。用预设,我可以做一个“报表分析助手”。
角色定义我会写:“你是一名资深数据分析师,精通 Python 和 Excel,擅长处理 CSV 格式的业务报表,输出简洁的汇总结论和可视化图表。”
任务目标写:“根据用户上传的 CSV 文件,自动完成数据清洗、字段检查、关键指标汇总,并生成一份包含数据概览和结论建议的报告。”
工作流程写具体一点,比如:“先检查数据完整性,包括缺失值、重复值、异常值;然后按用户指定的维度做汇总统计;最后输出结论时,先说关键发现,再说潜在问题。”
工具绑定这步,我会勾选 Python 执行、文件读写,还有图表生成相关的插件,不勾选终端命令。边界规则写:“不修改原始文件,所有清洗和计算结果输出到新文件;不确定的业务逻辑必须询问用户确认。”
这么一通操作下来,这个预设就具备了一个“半个数据分析师”的能力。你以后扔一个 CSV 文件给它,它就知道该干什么,不用你多解释。
3.2 一个可参考的预设配置示例
如果你用的是支持配置文件导入的版本,我一般会用 YAML 格式来维护预设,方便版本管理。下面这份是我在用的“报表分析助手”的简化版,字段名在你们那边可能略有变化,但思路可以完全照搬:
name: report-analyst description: 处理 CSV 业务报表,输出汇总结论和可视化图表 model: default # 跟随全局默认模型 role: > 你是一名资深数据分析师,精通 Python 和 Excel, 擅长处理 CSV 格式的业务报表,输出简洁的汇总结论和可视化图表。 objective: > 根据用户上传的 CSV 文件,自动完成数据清洗、字段检查、 关键指标汇总,并生成一份包含数据概览和结论建议的报告。 workflow: - 检查数据完整性:缺失值、重复值、异常值 - 按用户指定维度做汇总统计 - 生成图表(柱状图、折线图、饼图,按需) - 输出报告:先写关键发现,再写潜在问题 tools: enabled: - python_execute - file_read_write - chart_generation disabled: - terminal_command - network_request boundaries: - 不修改原始文件,所有结果输出到新文件 - 不确定的业务逻辑必须询问用户确认 - 不输出未经核实的结论这里我特别想提醒一点:workflow不要写得太长。我见过有人把工作流程写成十几条,事无巨细,结果 Agent 反而不知道该先干哪一步。流程的本质是“关键节点控制”,不是“每一步都要规定死”。我给的建议是,流程控制在 4 到 6 步之间,抓大放小,剩下的让 Agent 自己发挥。
另外,boundaries这一块千万别省。你写得越清楚,Agent 跑偏的概率越低。尤其是“不修改原始文件”“不确定就停下来问”这类边界,在正经业务场景里非常重要。
3.3 从通用预设到专用预设的迭代路径
很多人的误区是一上来就奔着做一个“全能助手”去,什么都会,结果什么都不精。我自己折腾过一圈之后的体会是,最靠谱的路径是从通用预设开始,用一段时间,再拆成多个专用预设。
什么意思?你刚开始用 DeepSeek Harness 的时候,可以先用它内置的“通用助手”预设,日常聊天、写东西、查资料都靠它。用着用着你会发现,某些类型的任务它做得特别好,某些类型的任务它总是差一点意思。这时候就可以把这些“差一点”的任务单独拎出来,做一个专用预设,把你在实践中摸索出来的要求、格式、偏好写进去。
比如我发现光是让通用助手写周报,它总是写得过于正式,不符合我们团队的风格。后来我专门做了一个“周报助手”预设,在角色定义里写上“先跟用户确认本周的三个核心成果,再动手写;语言风格要求简洁直接,不要空话套话;结构按‘工作内容—关键成果—下周计划—风险问题’来”。从那以后,周报效率提升了不止一倍。
专用预设做多了之后,你就可以考虑把它们放到一个统一的目录里管理,按业务域命名,比如“数据分析”“内容写作”“代码审查”“项目复盘”。每次要用哪个场景,就切换到对应的预设,不用反复调整参数和提示词。这个习惯一旦养成,你会觉得 DeepSeek Harness 从一个“对话工具”真正变成了“效率系统”。
4. 预设管理和团队协作的实操心得
4.1 多预设管理:按任务域拆分,而不是按人拆分
当你的预设数量超过五个,管理就成了一个新问题。我见过有的人给每个同事都建一个预设,叫“张三的助手”“李四的助手”,这种搞法我特别不推荐。预设应该按任务域来分,而不是按人来分。
为什么?因为预设的核心是“这套工作方式适合什么任务”,而不是“这个用户喜欢什么风格”。同一个数据分析任务,不管是谁来执行,需要的能力和数据逻辑都是相似的,区别只是报告格式的偏好。如果你按人来拆预设,张三的助手和李四的助手有 80% 的内容是重复的,改动一个公共逻辑,你得同步改好几份预设,非常痛苦。
我的做法是,基础预设尽量保持“通用且稳定”,个性化需求放到运行时再说。比如“数据分析助手”只定义分析流程和数据输出的通用规范,至于用户是喜欢 Markdown 还是 PDF 报告,可以直接在对话里说一句“这次报告输出成 PDF”,不需要专门开一个预设。这样预设的复用率最高,维护成本也最低。
4.2 预设版本管理与共享
预设做多了,一定会遇到改坏了的情况。我大概改了十几次之后才长记性,开始用版本管理。DeepSeek Harness 的预设本质上就是一份文本配置,所以完全可以纳入 Git 管理,或者用它自带的导入/导出功能做备份。
我现在的习惯是,每一次比较大的改动,都会导出一份预设文件,文件名带上日期和版本号,比如report-analyst-20251215-v3.yaml。等过两天觉得新版本不好用,还能随时回退。这个习惯听起来很笨,但实际帮了我大忙,尤其是改 workflow 或者是 boundaries 的时候,经常改完才发现原来的逻辑更合理。
团队协作方面,预设的分享和复用价值极大。我们团队现在有一个公共的预设仓库,谁做了好用的预设就往里放一份,其他人直接导入就行。导入之后也不是完全照搬,每个人都会根据自己的项目稍微调一下,但基础框架是一致的。这样既避免了每个人从零开始写提示词,又能保证大家的工作输出风格基本统一。
4.3 避坑清单:预设越写越长怎么办
一个非常常见的现象是,预设写着写着就越加越多,最后变成一篇几千字的“小论文”。你以为写得越详细,Agent 越听话,其实恰恰相反。预设太长,Agent 的注意力会被稀释,关键的约束反而容易被忽略。
我自己的经验是,预设总长度控制在 500 字以内,效果最好。超过这个量,我就开始做减法。怎么减?分三步:先删掉“描述性”的内容,只保留“指令性”的内容;再把重复的约束合并成一条;最后把那些“偶尔才需要”的规则从预设里移除,改成在对话里临时交代。
这里有一个很典型的例子。我最早写的预设里有一条“如果数据量过大,优先使用分块处理”,又有一条“执行时间超过 30 秒的任务,先评估是否分块”,还有一条“遇到内存溢出的错误时,尝试降低数据量”。这三条本质上是同一件事,后来合并成一条“大数据量任务默认分块处理,遇到性能问题先降低数据规模再重试”。预设一下子瘦身不少,Agent 反而执行得更干脆。
还有一点,边界规则不要写太多。边界规则的意义是防止“致命错误”,不是规定“什么都能做”。你把所有潜在风险都列上去,很容易让 Agent 变得畏手畏脚,做什么都要先问。我的做法是只列“绝对不能做”的底线,给 Agent 留出足够的自主发挥空间。
5. 常见问题与排查技巧实录
5.1 Agent 不听话、乱执行?先查这四件事
我用了这么久,遇到最多的一个场景就是:Agent 明明配了预设,结果它不按预设来。这时候先别急着抱怨工具不好用,按下面这个顺序排查,基本都能找到问题。
第一,确认当前会话加载的是哪个预设。很多人开了好几个会话,或者新建会话时忘了切换预设,结果 Agent 用的是上一个预设的规则,自然不“听话”。这个检查最简单,也最容易被人忽略。
第二,看预设的边界规则是不是被对话内容覆盖了。有些情况下,你在对话里给了一个更强的指令,比如“这次不用管格式,直接给我完整代码”,Agent 就会优先执行最新指令,暂时忽略预设里的格式要求。这不是 Bug,这是正常的指令优先级逻辑。如果不想让它被覆盖,预设里最好写明“无论用户如何要求,本预设的边界规则始终生效”。
第三,检查工具权限有没有真的生效。有时候预设里绑定了工具,但全局设置里对应的权限是关闭的,Agent 就会出现“想用工具但用不了”的情况,表现为它一直在嘴上说“我分析一下”,实际却没有动作。我遇到这种情况,一般是去全局设置里把对应工具权限打开,再回到会话试一次。
第四,看上下文是不是已经“污染”了。如果你的会话已经聊了很长时间,前面的内容可能把预设里的工作流程挤掉了,Agent 的行为模式会慢慢漂移。这时候最简单的解决办法就是新建一个会话,重新加载预设,通常就好了。
5.2 常见异常场景速查表
| 现象 | 可能原因 | 快速处理方式 |
|---|---|---|
| Agent 不按预设流程走 | 会话加载了错误的预设,或上下文被覆盖 | 新建会话,确认加载正确的预设 |
| 工具调用了但没效果 | 全局工具权限未开启 | 检查通用设置里的工具权限 |
| 输出内容过于笼统 | 预设任务目标写得太空 | 补充分步流程,删掉描述性废话 |
| Agent 频繁停下来问 | 边界规则太严,或流程不清晰 | 精简边界,明确哪些该自己决定 |
| 输出格式不稳定 | 预设里没有规定输出格式 | 在 workflow 里加上格式要求 |
| 上下文太长导致变慢 | 历史保留策略太长 | 调短历史保留,启用自动摘要 |
| 插件互相冲突 | 装了太多功能重叠的插件 | 只保留必要的,关掉多余的 |
这张表基本涵盖了我日常踩过的坑。每次遇到问题,我都是先查表定位,再动手改配置,效率高很多。
5.3 排查预设问题的“小手术”式方法
最后分享一个我私藏的排查方法。当你觉得预设的行为不符合预期,又说不清具体是哪里出了问题的时候,不要凭感觉改来改去,用下面这套“小手术”流程。
第一步,把预设里的所有内容复制出来,单独放在一个文档里,逐条读一遍,标注哪些是“角色描述”、哪些是“流程指令”、哪些是“边界规则”。这样你能清楚地看到这个预设的结构。
第二步,把最可疑的那一条暂时删掉,或者注释掉,新建一个会话跑一次,看行为是否恢复正常。如果恢复了,说明就是这一条出了问题,再针对性修改。如果没恢复,把它加回去,换一条测试。
第三步,记住一句话:一次只改一个变量。我见过太多人同时改了温度、工具绑定、流程顺序,结果有问题都不知道是谁引起的。每次只改一处,跑一次,记录结果,再改下一处。虽然慢,但每一步都可控,最终得到的预设质量是最高的。
这套方法不仅适用于 DeepSeek Harness,你以后用任何 Agent 工具,遇到行为异常,都可以用同样的思路来排查。本质上,调预设就跟调代码一样,控制变量,定位问题,再解决问题,不要瞎猜。
我自己做了十几个预设之后,最大的感受是:预设的价值不在于“一次写对”,而在于“持续迭代”。没有哪个预设是一次成型就完美的,都是跑一阵子,发现问题,改一版,再跑,再改。你现在把这篇看完,按里面的流程去建自己的第一个预设,可能并不完美,但只要跑起来,你就已经超过大多数只会用默认设置的人了。