Files
deepseek-harness/examples/README.md
T
Tianyi Cui 2faeabb05a refactor(examples): rename coding-agent leaf to repl-agent
Name the runnable leaf for the line-oriented front door it owns, matching the existing tui-agent and acp-agent organization. Move the complete config, Code Mode overlay, tests, metadata, and generated composition graph together, then update every loader path and repository reference.

Keep the shared model identity independent of its terminal front door by phrasing the persona as a coding-agent role rather than retaining the retired leaf name. Regenerate graph and tool catalogs and re-record each affected bilingual pair so derived documentation cannot point at the removed path.
2026-07-19 13:13:14 +08:00

4.2 KiB

Examples

Runnable demos (not workspaces) that showcase how the harness is wired. Each example is a thin leaf: a cordis.yml that picks the swappable backends (an LLM adapter, a bash executor), loads one app package, and may add optional product tools or demo-only mocks. The composition — the spine, the front-door cluster, and the boot glue — lives in the app packages (@deepseek-ai/dsh-stdio-demo, @deepseek-ai/dsh-acp-demo) and the @deepseek-ai/dsh-agent-spine-demo bundle they share. There is no start.ts; the demo:* scripts invoke each app package's bin.

echo-agent

A mock model + echo tool on the stdio chat app — the all-mock skeleton. The leaf swaps dsh-stdio-demo's LLM backend to a local mock-echo adapter and adds a local echo tool. Demonstrates:

  • A thin leaf cordis.yml loading the @deepseek-ai/dsh-stdio-demo app
  • Registering a mock LlmAdapter (streaming scripted responses)
  • Registering a tool via ctx.tools.register()
  • "Swap the backend, keep the app" — the only difference from repl-agent is the adapter

Run with: pnpm run demo:echo. When prompted, type "echo " to trigger a tool call round-trip.

repl-agent

A coding agent with DeepSeek V4, the read/write/edit filesystem tools, the bash tool suite, subagent delegation, and the todo_write task tracker on the @deepseek-ai/dsh-stdio-demo app's readline front door.

Run with: pnpm run demo:repl (needs DEEPSEEK_API_KEY in the environment or a gitignored repo-root .env). See repl-agent/README.md for details.

Run the Code Mode overlay with pnpm run demo:code-mode, or pass acp for the ACP example. See the Code Mode example for its composition and a sample task.

tui-agent

The full-screen terminal sibling of repl-agent: it reuses the same coding backends and tools while forcing the shared terminal app to dsh-tui. It is the home of TUI PTY and snapshot scenarios.

Run with: pnpm run demo:tui (needs DEEPSEEK_API_KEY). See tui-agent/README.md for controls and composition.

cordis-agent

The self-referential demo: the coding spine plus @deepseek-ai/dsh-tool-cordis, whose three tools (cordis_inspect / cordis_mount / cordis_unmount) let the agent inspect the live cordis runtime it runs inside, mount model-written plugins into it (an event listener, a brand-new tool for itself, or a service another mount injects), and dispose them again — all dynamic mounts grouped under one cordis-dynamic fiber subtree. The ctx.fs/ctx.web services ride along provider-only, as the capabilities those plugins build on.

Run with: pnpm run demo:cordis (needs DEEPSEEK_API_KEY). See cordis-agent/README.md for the staged demo script and the toolset RFC for the design and sandbox caveats.

acp-agent

An agent demo exposed as an Agent Client Protocol (ACP) server over JSON-RPC stdio, via the @deepseek-ai/dsh-acp-demo app — drive it from Zed or any other ACP client. Also the home of the keyless snapshot tests.

Run with: pnpm run demo:acp (needs DEEPSEEK_API_KEY); pnpm run demo:code-mode acp boots the same server in Code Mode via the code-mode.cordis.yml overlay. See acp-agent/README.md for the Zed setup and the snapshot-test design.

The default cordis.yml composes @deepseek-ai/dsh-sandbox-local, @deepseek-ai/dsh-bash-sandbox, @deepseek-ai/dsh-user-approval, and @deepseek-ai/dsh-permission. A capable client gets one Permissions select: workspace-write confines bash to the configured workspace and asks before a wider retry, while danger-full-access removes file confinement and disables approval prompts. A denied command can therefore surface a one-shot session/request_permission prompt in the editor; "Allow once" runs exactly that retry under the requested wider mode.