interrupt_agent(agent_id) passes the calling agent as the ancestor authority for ctx.subagents.interrupt(); the service verifies live registry identity and recorded lineage, so a direct child or deeper descendant stops with the same generic parameter while send_message keeps its exact-direct-parent authority. Discovery: list_agents gains an optional scope. descendants walks the new SubagentService.listDescendants() — one lineage trace flattened in stable pre-order across ordinary and one-shot intermediates, each entry carrying its verified parentId and depth — and every status now comes from the live Agent registry (running/idle/complete). Refs #1535
Examples
English | 中文
Runnable demonstrations of the main DeepSeek Harness interfaces and extension points. Each child directory owns its configuration, prerequisites, commands, and detailed behavior.
mcp-memory
Optional overlays that connect supported third-party memory servers through the generic MCP client. See the memory example reference.
headless-agent
A non-interactive agent that accepts one task, runs it, and emits a selected machine-readable or human-readable output format. See the headless example reference.
jsonrpc-agent
An unattended coding agent driven through the Python SDK and JSON-RPC. See the JSON-RPC example reference.
web-cordis
A self-referential agent that can inspect and change its in-memory Cordis plugin tree. See the web-cordis example reference.
acp-agent
An Agent Client Protocol automation server for programmatic clients, with session, permission, and cancellation support. See the ACP example reference.