BotHarness is a plugin layer on top of DeepSeek Harness (DSH) that gives LLM agents a persistent identity: the PersonaBot.
Existing harnesses work one session at a time — across sessions there is at most a “cloud memory”, with no Bot entity that has a persona and can work across conversations. That is the layer BotHarness fills:
- PersonaBot: a first-class entity — persona, cross-session memory, state, channel bindings, and several Sessions handled at once
- Memory: file-first (front-matter, directory-tree injection, tool-driven writes, visibility, git versioning)
- How work happens: delegation (@PersonaBot hands work off, executes it in the background, and reports back), with tiered approvals
- No DSH fork: delivered as an SDK + bundle; capabilities like IM come from bases such as dsh-im
Two products
| Name | What it is |
|---|---|
| BotHarness | The platform layer (this repository): PersonaBot entities, memory, state, and how work happens |
| DeepSeekBot | The first app: brings PersonaBots into the DSH sidebar (create, @-delegate, keep working) and connects Feishu / Lark |
Where to start
- Quickstart: run it locally, directory layout, common commands
- Architecture & data flow: system context, modules, data flow, boundaries (kept current)
- Platform spec: PersonaBot, memory rules, state, and how work happens
- App PRD: DeepSeekBot user stories and acceptance criteria
- Domain glossary: canonical usage of terms (PersonaBot / Agent / Session / Workspace)
- Decision records: why things are the way they are
- Changelog: what changed in each version