cordis.yml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. # One-shot coding agent with format-pure stdout. The app bin loads the
  2. # gitignored root `.env` into the process environment; entry configs here are
  3. # the composition base, while user-plane values resolve per request through
  4. # the two providers below.
  5. # User-settings document (`$DSH_HOME/settings.yaml`, hot-reloaded): a
  6. # `llm-deepseek:` section there overrides the adapter entry below without a
  7. # restart.
  8. - id: settings
  9. name: '@deepseek-ai/dsh-settings-local'
  10. # Credential store: the live process environment over `$DSH_HOME/.credentials.yaml`
  11. # (owner-only file, hot-reloaded). The adapter resolves `DEEPSEEK_API_KEY`
  12. # through it at each request, so no key is inlined in this file.
  13. - id: credentials
  14. name: '@deepseek-ai/dsh-credentials-local'
  15. # The DeepSeek adapter. Swap to '@deepseek-ai/dsh-llm-pi-ai' for the pi-ai-backed
  16. # twin (a `providers` dict keyed by route; `reasoning: high` replaces
  17. # thinking/reasoningEffort). Shipped default: full thinking at max effort on
  18. # every request. Exact-model resolution materializes request defaults before
  19. # the request header is logged.
  20. - id: llm-deepseek
  21. name: '@deepseek-ai/dsh-llm-deepseek'
  22. config:
  23. thinking: enabled
  24. reasoningEffort: max
  25. models:
  26. - id: deepseek-v4-pro
  27. contextWindow: 128000
  28. - id: deepseek-v4-flash
  29. contextWindow: 128000
  30. # Managed child-process groups for the bash executor (spawn/kill/output plumbing).
  31. - id: subprocess
  32. name: '@deepseek-ai/dsh-subprocess-local'
  33. - id: bash
  34. name: '@deepseek-ai/dsh-bash-local'
  35. config:
  36. timeoutMs: 60000
  37. # The example composition pre-creates one fresh `main` agent for its test driver.
  38. - id: agent-spine
  39. name: '@deepseek-ai/dsh-agent-spine-demo'
  40. config:
  41. agents:
  42. - id: main
  43. provider: deepseek-official
  44. # Stays on flash: the goal/ralph replay corpora were recorded on it, and
  45. # their nested-include overlays cannot re-pin the app config (a config
  46. # patch cannot target an entry behind a nested include).
  47. model: deepseek-v4-flash
  48. cwd: !!js process.cwd()
  49. workspaceContext:
  50. maxBytes: 65536
  51. persona: |
  52. You are headless-agent, a coding assistant powered by the {{model}} model.
  53. Verify your work by running the code or tests. Keep answers brief and
  54. factual.
  55. - id: persistence
  56. name: '@deepseek-ai/dsh-session-persistence-jsonl'
  57. config:
  58. root: './.sessions'
  59. compression: !!js "process.env.DSH_SNAPSHOT === undefined ? 'zstd' : 'none'"
  60. - id: checkpoint-policy
  61. name: '@deepseek-ai/dsh-session-checkpoint-policy'
  62. # Summarize an older range when derived history approaches the context window.
  63. - id: token-meter
  64. name: '@deepseek-ai/dsh-token-meter'
  65. - id: compact-basic
  66. name: '@deepseek-ai/dsh-compact-basic'
  67. config:
  68. thresholdRatio: 0.8
  69. retainRatio: 0.16
  70. maxTokens: 8192
  71. compactionRetries: 1
  72. # Projection registry: durable subagent identity (mode/label) folds through
  73. # its registered units; subagent catalog reads fail loud without the capability.
  74. - id: session-projection
  75. name: '@deepseek-ai/dsh-session-projection'
  76. # Expose fresh-child `spawn` and completed-prefix `fork` through independent
  77. # in-process backends.
  78. - id: subagent
  79. name: '@deepseek-ai/dsh-subagent'
  80. - id: subagent-spawn
  81. name: '@deepseek-ai/dsh-subagent-spawn'
  82. config:
  83. providerName: spawn
  84. - id: subagent-fork
  85. name: '@deepseek-ai/dsh-subagent-fork'
  86. config:
  87. providerName: fork
  88. # Continuable background children are selected per delegation tool. The
  89. # separately loaded control registers global `send_message`; `report` is
  90. # installed only in continuable child scopes.
  91. - id: tool-subagent-control
  92. name: '@deepseek-ai/dsh-tool-subagent-control'
  93. - id: tool-subagent-report
  94. name: '@deepseek-ai/dsh-tool-subagent-report'
  95. - id: tool-subagent
  96. name: '@deepseek-ai/dsh-tool-subagent'
  97. config:
  98. provider: spawn
  99. toolName: subagent
  100. backgroundMode: continuable
  101. maxDepth: 1
  102. # Fork stays one-shot because a continuable child's `report` tool and prompt
  103. # section precede the inherited history a fork reuses; `run_in_background` is off
  104. # because this example mounts no task service. See .agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.md.
  105. - id: tool-subagent-fork
  106. name: '@deepseek-ai/dsh-tool-subagent'
  107. config:
  108. provider: fork
  109. toolName: subagent_fork
  110. backgroundMode: one-shot
  111. enableRunInBackground: false
  112. maxDepth: 1
  113. # The worker-thread workflow engine fans a model-written JavaScript script's
  114. # `agent()` calls out through the spawn backend.
  115. - id: workflow-workerthread
  116. name: '@deepseek-ai/dsh-workflow-workerthread'
  117. config:
  118. provider: spawn
  119. - id: tool-workflow
  120. name: '@deepseek-ai/dsh-tool-workflow'
  121. # A separate fixed consumer demonstrates fresh-agent Ralph iteration without
  122. # changing the workflow tool or same-session goal behavior.
  123. - id: tool-ralph
  124. name: '@deepseek-ai/dsh-tool-ralph'
  125. # `todo_write` replaces the logged whole list.
  126. - id: tool-todo
  127. name: '@deepseek-ai/dsh-tool-todo'
  128. config:
  129. allowParallelInProgress: true
  130. # Policy loads before the model-facing filesystem tools so writes and edits
  131. # require an observed file. Relative paths resolve from the process cwd.
  132. - id: fs-local
  133. name: '@deepseek-ai/dsh-fs-local'
  134. config:
  135. cwd: !!js process.cwd()
  136. - id: fs-policy
  137. name: '@deepseek-ai/dsh-fs-policy'
  138. - id: tool-fs
  139. name: '@deepseek-ai/dsh-tool-fs'