# Complete unattended minimal-agent composition for the Python SDK. The model # sees one fixed system prompt and only the owner-scoped persistent Bash and # string-replace editor tools. - id: jsonrpc name: '@deepseek-ai/dsh-jsonrpc' config: maxTokensAsSuccess: false - id: llm-deepseek name: '@deepseek-ai/dsh-llm-deepseek' - id: sandbox name: '@deepseek-ai/dsh-sandbox-local' - id: sandbox-policy name: '@deepseek-ai/dsh-sandbox-policy' config: mode: danger-full-access workspaceRoot: !!js process.env.DSH_CWD ?? process.cwd() - id: subprocess name: '@deepseek-ai/dsh-subprocess-local' - id: pty name: '@deepseek-ai/dsh-pty' - id: pty-local name: '@deepseek-ai/dsh-pty-local' config: timeoutMs: 300000 # The sandbox-aware filesystem backend applies the same per-session policy as # Bash. danger-full-access permits unrestricted workspace behavior while # keeping one policy boundary for both tools. - id: fs-sandbox name: '@deepseek-ai/dsh-fs-sandbox' config: cwd: !!js process.env.DSH_CWD ?? process.cwd() - id: fs-policy name: '@deepseek-ai/dsh-fs-policy' - id: agent-spine name: '@deepseek-ai/dsh-agent-spine-demo' config: includeHarnessIdentity: false persona: You are a helpful software engineer assistant. workspaceContext: false skills: enabled: false toolBash: false toolTasks: false - id: persistent-bash name: '@deepseek-ai/dsh-tool-bash-persistent' config: timeoutMs: 300000 description: |- Run commands in a bash shell * When invoking this tool, the contents of the "command" parameter does NOT need to be XML-escaped. * You don't have access to the internet via this tool. * You do have access to a mirror of common linux and python packages via apt and pip. * State is persistent across command calls and discussions with the user. * To inspect a particular line range of a file, e.g. lines 10-25, try 'sed -n 10,25p /path/to/the/file'. * Please avoid commands that may produce a very large amount of output. * Please run long lived commands in the background, e.g. 'sleep 10 &' or start a server in the background. - id: str-replace-editor name: '@deepseek-ai/dsh-tool-str-replace-editor' config: maxOutputChars: 16000 - id: sessions name: '@deepseek-ai/dsh-session-persistence-jsonl' config: root: !!js process.env.DSH_SESSION_ROOT ?? './.sessions' compression: none - id: token-meter name: '@deepseek-ai/dsh-token-meter' - id: compact-basic name: '@deepseek-ai/dsh-compact-basic' config: thresholdRatio: 0.8 retainTokens: 20480 summarizationProvider: '' summarizationModel: '' maxTokens: 8192 compactionRetries: 1