DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Go Game — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
G

dsh-go-game

Go Game

DeepSeek Harness 的围棋(围棋/weiqi):完整规则引擎、三级 AI 对手、死子估算器、LLM 复盘、SGF 保存/加载、DSH 面板和独立页面

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:raymondkm2025/dsh-go-game#6e7eea1077065c0225ae1f6e7253856dccf5adf6
README兼容性版本

兼容性与来源证明

Go Game 以 dsh-go-game 发布,当前版本为 1.0.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/8

版本

1.0.0stable
2026/10/8
最新版
1.0.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/15
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-go-game

圍棋 for the DeepSeek Harness. A full rules engine, a three-level AI partner, a playout dead-stone estimator, optional LLM review, SGF save/load — surfaced both as a DSH panel (shell.overlay) and as a standalone page at /dsh-go-game/.

What it does

Rules (host half, pure JS). 19×19 / 13×13 / 9×9, Chinese area scoring (stones + surrounded empty points), configurable komi and handicap, capture by liberty exhaustion, no suicide, simple ko (immediate recapture forbidden), pass / two-pass end, resignation, unlimited undo, SGF import and export. Dead-stone adjudication is explicit: both sides pass, dead stones are marked (manually or by the estimator), then the area is counted.

The AI. Three levels, all run in the host process:

levelhow it plays
easy 入門random legal moves that avoid filling its own eyes
medium 中級greedy tactics: capture, rescue from atari, atari the opponent, shape/line preference
hard 進階the medium candidate list, each scored by light random playouts inside a wall-clock budget

Honest limit: this is a practice partner, not an engine. On 19×19 even hard is far below a human amateur; on 9×9 it plays a recognisable game.

Dead-stone estimator. 形勢判斷 runs random playouts (avoiding own-eye fills) from the current position and reports which stones rarely survive, plus a per-point ownership map the board renders as a translucent overlay. It is an estimate, not an adjudication — correct anything it gets wrong with 標記死子.

LLM review (optional). 覆盤 asks the harness llm service (no API keys in this plugin) for a short Cantonese commentary plus a suggested move, which the panel offers as a one-click play. Without a configured model it degrades to the local scoring summary.

Layout

filefacerole
lib/engine.jssharedrules: board, capture, ko, score, SGF — no DOM, no DSH imports
lib/ai.jshostheuristics, playout opponent, dead-stone estimator
lib/gtp.jshostGTP bridge to an external neural-network engine (KataGo)
lib/index.jshostsessions + every /dsh-go-game/* route, LLM review, SGF files
lib/client.jswebthe React panel registered in shell.overlay
lib/page.html, lib/page.jswebthe standalone page (a thin view over the same routes)
cordis.patch.yml—inserts the plugin row into the web profile roster
test/*.test.mjs—98 cases: 26 engine, 11 AI, 22 host routes, 26 GTP, 13 engine fallback
check-plugin.ps1 / .cmd—read-only install check

No rules live in the browser: both views post intent and re-render the state the host returns.

Tests

node test/engine.test.mjs
node test/ai.test.mjs
node test/host.test.mjs
node test/gtp.test.mjs             # GTP bridge, driven by an injected fake engine
node test/engine-fallback.test.mjs # engine selected but absent -> built-in AI
node test/katago-live.mjs --root=<katago dir>   # real engine, skipped without --root

Run each file directly; node --test fails on this machine (the runner spawns a piped child process and the sandbox rejects it). The host suite drives the real routes through a mock webserver, mock req/res and a mock llm, so the whole non-UI chain is covered offline.

KataGo (optional neural-network opponent)

lib/ai.js is a heuristic/playout practice partner. For real strength, lib/gtp.js drives an external KataGo process over GTP, side by side with the built-in AI: the panel's 引擎 selector picks one per game, and a missing or broken engine falls back to the built-in opponent automatically (the reason is shown in the panel, not swallowed).

Layout it looks for (relative to the workspace, i.e. one level above the plugin):

katago/engine/katago.exe        Eigen (CPU) build, or any other backend
katago/engine/default_gtp.cfg   optional, ships with the release
katago/weights/*.bin.gz         one or more networks

Environment overrides:

variabledefaultmeaning
DSH_GO_GAME_KATAGO_ROOT<plugin>/../../katagoengine + weights root
DSH_GO_GAME_KATAGO_THREADS4search threads (stay below the core count)
DSH_GO_GAME_KATAGO_VISITS250hard visit ceiling per move
DSH_GO_GAME_KATAGO_TIME8seconds per move — bounds CPU latency
DSH_GO_GAME_KATAGO_TIMEOUT90000GTP command timeout (ms)

GET /dsh-go-game/engine reports availability, the network list and live status; POST /dsh-go-game/engine {model:"<file>"} switches network, restarting the process (KataGo loads exactly one network at startup).

Measured on this machine — i5-8250U, 4 threads, no GPU, b18c384 on the AVX2 Eigen build: first move ≈ 11 s (it loads the 93 MB network), later moves ≈ 8 s with maxTime=8. Because the search is time-bounded, slower hardware loses strength rather than latency. Every query replays the game onto a clean engine board after an explicit clear_board: KataGo does not wipe the stones on a same-size boardsize, which otherwise surfaces as a spurious "illegal move".

Install (three steps, outside DSH)

The agent sandbox cannot write outside the workspace, so profile registration is a manual step — run these in a normal terminal:

  1. In the active profile package.json (%APPDATA%\dsh-desktop\harness\profiles\web): add "dsh-go-game": "link:C:/AppDev/DSH_WORKSPACE/dsh-go-game" to dependencies, and append "dsh-go-game" to dsh.profile.bundles.

  2. Point node_modules at the source directory (DSH does not run pnpm install on boot, and a missing link fails silently):

    mklink /J "%APPDATA%\dsh-desktop\harness\profiles\web\node_modules\dsh-go-game" "C:\AppDev\DSH_WORKSPACE\dsh-go-game"
    
  3. Restart DSH.

check-plugin.cmd verifies all four links of the chain (package → registration → node_modules → live route) at any point.

Routes are unauthenticated on loopback, matching the other local plugins: GET /dsh-go-game/status answering JSON is the fastest proof of life.

Notes and unverified parts

  • Sessions live in host memory (12-hour idle sweep) and are keyed by a client id the panel/page generates; restarting DSH clears them. SGF files persist under <workspace>/.dsh-go-game/games/.
  • The playout estimator is CPU-bound by design and budget-limited (default 1500 ms, 40 playouts). It runs on the host so the panel never blocks.
  • Not yet verified on a live GUI: the panel's rendering inside shell.overlay, its pointer-event behaviour, and the LLM review path against a real provider. The engine, AI and every route are covered by the offline suites.