Files
deepseek-harness/examples/python-sdk-agent/minimal.patch.yml
T
Tianyi Cui c2ad69344f fix(python-sdk): make the minimal profile an explicit allowlist
Give the SDK JSON-RPC server a per-root tool filter and let deployments mark the configured persona as the complete system prompt. The checked-in minimal overlay now names only bash and str_replace_editor, so later global tools and unrelated guidance from dsh-base cannot appear implicitly.

Keep the shared SDK host services and packaged Web capability intact. Only workspace instructions, compaction, and the conflicting one-shot Bash row remain disabled. Unit coverage pins the configuration paths, and a real dsh profile smoke proves the assembled prompt and exact two-tool request.
2026-08-24 17:28:28 +08:00

48 lines
1.4 KiB
YAML

# Minimal Python SDK overlay for `dsh --profile sdk`. The SDK server applies
# the model-facing allowlist to every root session, so later base-bundle tools
# cannot appear implicitly. The profile still owns JSON-RPC and persistence.
- id: system-prompt
config:
includeHarnessIdentity: false
includeRuntimeContext: false
persona: !!js process.env.DSH_SYSTEM_PROMPT ?? 'You are a helpful software engineer assistant.'
personaComplete: true
- id: sdk-jsonrpc-server
config:
maxTokensAsSuccess: !!js "process.env.DSH_MAX_TOKENS_AS_SUCCESS === undefined ? true : JSON.parse(process.env.DSH_MAX_TOKENS_AS_SUCCESS)"
toolFilter:
allow:
- bash
- str_replace_editor
# Remove non-tool model inputs and turn rewriting, plus the one-shot Bash row
# that would conflict with the persistent Bash tool inserted below.
- id: agent-instructions
disabled: true
- id: tool-bash
disabled: true
- id: compaction-basic
disabled: true
- id: command-compact
disabled: true
- id: tool-result-pruner
disabled: true
- id: tool-str-replace-editor
config:
maxOutputChars: 16000
- insert:
- id: pty
name: '@deepseek-ai/dsh-terminal'
- id: terminal-bash
name: '@deepseek-ai/dsh-terminal-bash'
config:
timeoutMs: 300000
- id: persistent-bash
name: '@deepseek-ai/dsh-tool-bash-persistent'
config:
timeoutMs: 300000