尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
第03篇·DeepSeek Harness 本地 Coding Agent 实战:用标准模式从零开发一个带界面的小游戏
1. 从零跑通 DeepSeek Harness 本地 Coding Agent 的真实场景很多人第一次听到 DeepSeek Harness 本地 Coding Agent会以为它只是又一个命令行补全工具。其实它更像一个能自己建目录、写文件、跑命令、看输出的“结对程序员”。你给它一段结构化任务它会在你指定的工作区里把代码写出来甚至顺手把测试也补上。适合谁适合已经会一点 Python、想验证“让 Agent 从零写一个带界面小游戏”到底靠不靠谱的人。我这次选的目标很具体用标准模式驱动本地 Coding Agent从零开发一个带 tkinter 界面的五子棋。为什么是五子棋因为它够小界面能用标准库画出来核心胜负判定又能拆成纯函数方便用 pytest 兜底。整条链路走完你能拿到三样东西一份可复制的 Agent 配置片段、一套逐步验证动作、以及一个能跑起来的小游戏项目。这里的关键词是“标准模式”。DeepSeek Harness 的 Minimal 模式把工具和上下文砍到最少适合做受控评测而标准模式带文件系统工具和工作区上下文才是日常写代码的形态。你要做的是把需求写清楚然后让 Agent 在隔离目录里干活最后用测试验收。下面我把这条链路拆成可跟做的步骤。2. TaoToken 前置准备给 Coding Agent 配好模型入口在让 Agent 写代码之前得先解决模型调用的问题。DeepSeek Harness 本身是框架真正干活的模型需要通过 API 接入。我这次用的是 TaoToken 提供的模型入口官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。它的作用是给你一个统一的 Base URL 和 Key让 Harness 能稳定调到 DeepSeek 系列模型。前置准备分三步。第一步去控制台创建一个 API Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。创建完先复制保存后面配置要用。第二步确认你要用的模型 ID。这次实战里我用的是 DeepSeek-V41-Flash推理等级设成 High写代码时逻辑更稳。第三步把 Base URL、Key、Model ID 这三件套记下来因为不管你是用 Claude Code、Cline MCP 还是 Codex 的 auth.json配置逻辑都是围绕这三样展开的。如果你只是想先验证模型通不通可以打开模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 发一句“用 Python 写一个判断五子棋胜负的函数”看它返回是否正常。这一步能帮你排除 Key 或网络问题避免后面把配置错误误判成 Agent 的问题。长期做编码和 Agent 任务的话可以关注 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合高频调用场景。配置的时候有个细节要注意Base URL 末尾不要多加斜杠Key 不要带空格Model ID 要和文档里写的一致。我试过把模型名写错一个字符结果请求一直报模型不存在排查了半天。所以建议你把这三件套先写在一个临时文件里配置时直接复制减少手打出错。3. 可复制配置DeepSeek Harness 标准模式接入片段这一节是整篇的核心给你可以直接复制的配置。DeepSeek Harness 标准模式的入口是 CLI 默认的 dshPython SDK 里用 profilesdk。下面这份 JSON 片段是给 Harness 用的模型配置路径放在你的项目配置目录下比如~/.dsh/config.json。注意 Base URL 和 Key 要换成你自己的。{ profile: sdk, model: { provider: taotoken, base_url: https://taotoken.net/api, api_key: sk-你的Key, model_id: DeepSeek-V41-Flash, reasoning_effort: high }, workspace: { root: /workspace/gomoku, sandbox: workspace-write }, tools: { filesystem: true, shell: true } }如果你用的是 Claude Code 这类工具配置逻辑一样把 Base URL 填https://taotoken.net/apiKey 填你的 KeyModel ID 填DeepSeek-V41-Flash。Cline MCP 也是同样三件套。Codex 的 auth.json 里则对应填 base_url、api_key、model 三个字段。不管哪个工具只要这三样对齐模型就能通。环境变量方式也可以适合不想写配置文件的人export DSH_PROFILEsdk export DSH_MODEL_PROVIDERtaotoken export DSH_BASE_URLhttps://taotoken.net/api export DSH_API_KEYsk-你的Key export DSH_MODEL_IDDeepSeek-V41-Flash export DSH_WORKSPACE/workspace/gomoku export DSH_SANDBOXworkspace-write配好之后先别急着下开发任务。跑一条最小验证命令确认 Harness 能读到配置dsh --version dsh config showdsh config show会打印当前生效的 profile、model、workspace 和 sandbox。如果这里显示的还是默认值说明配置文件路径不对或者环境变量没生效。确认无误后再进入下一步。标准模式默认 sandbox 是 workspace-write操作限制在当前工作目录内比 Minimal 的 danger-full-access 安全得多。但做实验仍建议用隔离目录万一你手动切到 danger-full-access也不会影响其他项目。4. 逐步验证从下任务到 pytest 通过配置通了接下来就是让 Agent 干活。第一步准备隔离目录mkdir -p /workspace/gomoku cd /workspace/gomoku第二步把任务写成结构化提示词。这一步很关键规格写得越清楚模型越不容易跑偏。我用的提示词是这样的在 /workspace/gomoku 目录下从零写一个 Python 五子棋 gomoku.py 15×15 棋盘两人轮流在交叉点落子先连成 5 子横/纵/两斜者胜 自动判定胜负/平局可重新开始用标准库 tkinter 的 Canvas 做界面。 要求只用标准库把胜负/平局判定拆成纯函数如 check_winner / is_full / make_move 与 UI 分离可被 pytest 直接 import单文件。 写完后补一个 test_gomoku.pypytest覆盖横/纵/两斜五连判胜、无胜、 满盘判平局、占用格再点抛异常或忽略、越界落子抛异常。第三步把提示词交给 Agent 执行。标准模式下它会自己建文件、写代码、跑命令。我这次实跑下来Agent 产出了 gomoku.py 和 test_gomoku.py 两个文件然后自动跑了 pytest输出 36 passed。整个过程 12 步耗时 2 分 22 秒。你可以用下面的命令手动复跑测试cd /workspace/gomoku python -m pytest test_gomoku.py -v如果测试全绿再运行游戏看界面python gomoku.py窗口会弹出一个 15×15 的棋盘格 36px留边 20px黑白子交替落子。我实测时黑方在第 7 行 (7,3)–(7,7) 连成五子判胜界面正常显示胜负提示。逻辑部分靠 pytest 兜底UI 部分靠肉眼把关这两条线分开验收才清晰。这里有个对照基线我附带的 demo-gomoku/reference/ 基准实现实跑是 13 passed而这次 Agent 产出的测试更密36 passed方向一致。说明模型不仅能写出来还能把边界 case 覆盖得比基准更细。但你要记住写完和做对是两件事只有过验收用例、覆盖边界、没引意外依赖才算真正做对。5. 常见错排查401、local proxy failed、reading choices、OAuth跑这条链路时最容易卡在配置和调用环节。下面这几类报错我都遇到过对照处理能省不少时间。第一类401 Unauthorized。这通常是 Key 不对或没生效。检查dsh config show里的 api_key 是否和你复制的一致注意有没有多余空格。如果用的是环境变量确认echo $DSH_API_KEY能打印出正确值。还有一种情况是 Key 被禁用或额度用完去控制台 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 看一眼状态。第二类local proxy failed。这个报错一般出现在网络层说明请求没发到 Base URL。先确认https://taotoken.net/api能通再检查有没有本地代理配置干扰。如果你在配置文件里写了 proxy 字段先删掉试试。标准模式下 Harness 会走系统网络配置里不要额外加代理项。第三类reading choices 相关报错。这通常是模型返回结构不符合预期常见原因是 Model ID 写错或者请求参数里 reasoning_effort 值不合法。确认 model_id 是DeepSeek-V41-Flashreasoning_effort 用high或medium。如果还报错把请求体打印出来看对比文档里的字段名。第四类OAuth 相关报错。如果你用的是 Claude Code 或 Codex 这类带 OAuth 的工具报 OAuth 失败时先确认你走的是 API Key 模式而不是账号登录模式。在 auth.json 里把 base_url 指向https://taotoken.net/apiapi_key 填你的 Keymodel 填DeepSeek-V41-Flash三件套对齐后 OAuth 报错一般会消失。排查顺序建议先dsh config show看配置再单独用 curl 测 API 通不通最后才怀疑 Agent 逻辑。这样能快速定位是配置问题还是模型问题。curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d {model:DeepSeek-V41-Flash,messages:[{role:user,content:ping}]}如果这条 curl 返回正常说明 Key 和网络都没问题报错就在 Harness 配置层。6. 把标准模式用成日常开发配置走完这一整条链路我的感受是标准模式才是把 DeepSeek Harness 当 Coding Agent 用的日常配置。工具齐、上下文足、沙箱默认收在目录内开发体验最自然。Minimal 不是简陋版而是评测口径的最小切面它该待在基准实验里而不是开发现场。带界面的小游戏更直观但“把逻辑拆纯函数、用测试兜底”这条纪律不能丢。开发比修 bug 更考验你把需求写清楚的能力这一步省不下。你第一次让 Agent 从零写带界面的东西时最怕它哪样界面跑不起来、逻辑有 bug、还是写得太能发挥我的建议是任务里把约束写成硬条件验收时先跑 pytest 再看界面两条线分开把关。如果你想把这条链路跑得更顺可以先去接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 把配置细节对一遍再回到 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 看长期编码场景的用法。配置三件套对齐剩下的就是写清楚需求、跑测试验收。
RELATED

相关推荐

C++/CPP岗位面经分享:用TaoToken统一Key复盘面试高频考点

C++/CPP岗位面经分享:用TaoToken统一Key复盘面试高频考点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/17 9:34:28
Eigen常用函数详解:矩阵运算、线性求解与最小二乘拟合实战

Eigen常用函数详解:矩阵运算、线性求解与最小二乘拟合实战

写 C 的人只要和矩阵、向量打过交道,大概率绕不开 Eigen。它是一个纯头文件的高效线性代数库,把矩阵运算、线性方程求解、特征分解、奇异值分解这类数学操作封装成了非常直观的 API。我最早接触 Eigen 是在做一个点云配准相关的项目,当时要反…

📅 2026/10/17 9:29:27
2025算力产业风向标:智能算力增长与液冷部署实战指南

2025算力产业风向标:智能算力增长与液冷部署实战指南

简介:《2025年中国人工智能计算力发展评估报告》是一份面向AI产业研究者、算力基础设施规划者及企业技术决策者的行业评估资料,系统梳理了全球及中国人工智能算力发展格局、市场规模与落地路径。报告聚焦代理式AI兴起、多模态融合、AI芯片创新及开源生态…

📅 2026/10/17 9:29:27
MORE NEWS

更多资讯

📰

并行编程实战——TBB的安装与TaoToken环境配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

OpCore-Simplify:导入硬件报告,把 OpenCore EFI 构建压缩到几分钟

OpCore-Simplify:导入硬件报告,把 OpenCore EFI 构建压缩到几分钟 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 核心关键词&…

📰

C++ list源码模拟:从双向带头循环链表到迭代器实现

平时写代码,顺序容器里用得最多的就是 vector,但一旦碰上中间频繁插入删除、迭代器容易失效的场景,我基本都会直接换成 list。C 的 list 类在标准模板库里的存在感不算强,但它的底层结构——双向带头循环链表,以及围绕…

📰

本地完成 DeepSeek + vLLM + One API 的完整部署:TaoToken 统一 Key 通道接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

DeepX-Code 终端 AI 编程助手:把 deepseek 缓存命中率做到 99% 的配置思路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

RAG企业级落地全解:原理、实战与避坑指南

一聊到大模型落地,很多人的第一反应是"接个API、开始对话"。可一旦真放到业务场景里,问题就立刻暴露了:模型背的知识永远停留在训练截止日期,你问它自己公司的报销流程、产品参数、内部SOP,它要么一本正经地…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬