Zum Hauptinhalt springen
C

dsh-reckoner

curtainsmall/dsh-reckoner

A deterministic calculation engine for DeepSeek Harness, including a preset that guides the LLM to calculate through the engine rather than by text generation.

Installation

dsh plugin --profile web add github:curtainsmall/dsh-reckoner

README

DeepSeek Harness Reckoner

A calculation engine for the DeepSeek Harness, to force LLM to use deterministic program for evaluations rather than text generations.

简体中文

Contents

Install

dsh plugin --profile <profile> add dsh-reckoner

Reckoner Preset

The package ships two agent presets:

presetidtoolsexternal sources
Reckonerreckonerrecord tools and evaluation toolsall knowledge comes from LLM
Reckoner with searchreckoner-with-searchsame tools as 'Reckoner' preset, plus web search toolsincludes web search results

The session gets the plugin tools and nothing else: no shell, no file system, no network, no subagents. Every number in an evaluation is therefore either a value the LLM sets with set or a result produced from eval. When conditions given are not enough for solving, the LLM shall stop and point out.

For Reckoner with search preset, search tools are given for the LLM to search on the web for external knowledge.

The engine

Basics

One engine runs per host process, and every session's calls act on it. It is a calculator with no domain knowledge. The LLM sets quantities given in conditions to engine, comes up with ideas and writes formulas to evaluation, and gets the results for output.

tooleffect
setwrites one slot; value: null deletes it
getreads one slot back; the only way to read a value
evalwrites one formula's result into the target slot
record_start / record_endopen and close a record
record_messagewrite down messages into records
search(Reckoner with search preset only)search on web

A value is a number, a complex, an array of values or an object of named values. In the engine, the units are represented in the combinations of SI base units, A formula is one expression over the slots, with + - * / ^ and a set of $ symbols and constants. No comparison, no logic and no assignment. Calls answer {ok: true, ...} or {ok: false, code, error}, and a refusal changes nothing.

Records

A record is the process of one calculation: its title, conditions, explanations, evaluation steps and optional closing text.

A closed record lives in <home>/records/<id>.jsonl, and the one still open lives in <home>/open-record.jsonl until closing renames it into the first path, so a record that is closed is always complete.

For the whole reference, see engine manual (简体中文).

Article generation

Every closed record can be written up as a standalone article. A host-side LLM call receives the record's facts as plain text with numbers cut to at most four decimal places.

formatoutput
Markdowna flat .md file
LaTeXa .tex source in a folder named after the file, compiled to PDF when requested

For LaTex, PDF compilation is delegated to latexmk or MiKTeX's texify and needs the xelatex engine; with compilation requested and no usable driver or engine, Generate is disabled and the dialog names what is missing.

Configuration

settingmeaning
DSH_RECKONER_HOMEthe plugin home, ~/.dsh-reckoner by default
DSH_RECKONER_LOG_LEVELdebug, info, warn, error or off; the default is info

The home holds the unclosed record (open-record.jsonl), the closed records (records/<id>.jsonl), the plugin state and the logs (logs/<YYYY-MM-DD_HH-mm-ss.SSS>.log, one per plugin mount). The state file, state.json, is a tree with one subtree per module that remembers settings, plus the flat restartRequired marker.

Documentation

documentcontent
Engine manual (简体中文)the long-form engine reference
reckoner-interface, reckoner-templatethe manual the agent reads in Reckoner Mode
Contributing (简体中文)setup, commit conventions, release process

License

MIT. Copyright (c) 2026 curtainsmall

Ähnliche Plugins