cordis.yml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  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-file'
  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. - id: deepseek-llm-api-extensions
  16. name: '@deepseek-ai/dsh-deepseek-llm-api-extensions'
  17. - id: session-log-deepseek
  18. name: '@deepseek-ai/dsh-session-log-deepseek'
  19. - id: plugin-package-inventory-deepseek
  20. name: '@deepseek-ai/dsh-plugin-package-inventory-deepseek'
  21. # The DeepSeek adapter. Swap to '@deepseek-ai/dsh-llm-pi-ai' for the pi-ai-backed
  22. # twin (a `providers` dict keyed by route; `reasoning: high` replaces
  23. # thinking/reasoningEffort). Shipped default: full thinking at max effort on
  24. # every request. Exact-model resolution materializes request defaults before
  25. # the request header is logged.
  26. - id: llm-deepseek
  27. name: '@deepseek-ai/dsh-llm-deepseek'
  28. config:
  29. thinking: enabled
  30. reasoningEffort: max
  31. models:
  32. - id: deepseek-v4-pro
  33. contextWindow: 128000
  34. - id: deepseek-v4-flash
  35. contextWindow: 128000
  36. # Managed child-process groups for the bash executor (spawn/kill/output plumbing).
  37. - id: subprocess
  38. name: '@deepseek-ai/dsh-subprocess-local'
  39. - id: bash
  40. name: '@deepseek-ai/dsh-bash-local'
  41. config:
  42. timeoutMs: 60000
  43. # The example composition pre-creates one fresh `main` agent for its test driver.
  44. - id: agent-spine
  45. name: '@deepseek-ai/dsh-agent-spine-demo'
  46. config:
  47. agents:
  48. - id: main
  49. provider: deepseek-official
  50. # Stays on flash: the goal/ralph replay corpora were recorded on it, and
  51. # their nested-include overlays cannot re-pin the app config (a config
  52. # patch cannot target an entry behind a nested include).
  53. model: deepseek-v4-flash
  54. cwd: !!js process.cwd()
  55. workspaceContext:
  56. maxBytes: 65536
  57. persona: |
  58. You are headless-agent, a coding assistant powered by the {{model}} model.
  59. Verify your work by running the code or tests. Keep answers brief and
  60. factual.
  61. - id: persistence
  62. name: '@deepseek-ai/dsh-session-persistence-jsonl'
  63. config:
  64. root: './.sessions'
  65. compression: !!js "process.env.DSH_SNAPSHOT === undefined ? 'zstd' : 'none'"
  66. - id: checkpoint-policy
  67. name: '@deepseek-ai/dsh-session-checkpoint-policy'
  68. # Summarize an older range when derived history approaches the context window.
  69. - id: token-meter
  70. name: '@deepseek-ai/dsh-token-meter'
  71. - id: compaction-basic
  72. name: '@deepseek-ai/dsh-compaction-basic'
  73. config:
  74. thresholdRatio: 0.8
  75. retainRatio: 0.16
  76. maxTokens: 8192
  77. compactionRetries: 1
  78. # Projection registry: durable subagent identity (mode/label) folds through
  79. # its registered units; subagent catalog reads fail loud without the capability.
  80. - id: session-projection
  81. name: '@deepseek-ai/dsh-session-projection'
  82. # Expose fresh-child `spawn` and completed-prefix `fork` through independent
  83. # in-process backends.
  84. - id: subagent
  85. name: '@deepseek-ai/dsh-subagent'
  86. - id: subagent-spawn-in-process
  87. name: '@deepseek-ai/dsh-subagent-spawn-in-process'
  88. config:
  89. providerName: spawn
  90. - id: subagent-fork-in-process
  91. name: '@deepseek-ai/dsh-subagent-fork-in-process'
  92. config:
  93. providerName: fork
  94. # Continuable background children are selected per delegation tool. The
  95. # separately loaded control registers global `send_message`; `report` is
  96. # installed only in continuable child scopes.
  97. - id: tool-subagent-control
  98. name: '@deepseek-ai/dsh-tool-subagent-control'
  99. - id: tool-subagent-report
  100. name: '@deepseek-ai/dsh-tool-subagent-report'
  101. - id: tool-subagent
  102. name: '@deepseek-ai/dsh-tool-subagent'
  103. config:
  104. provider: spawn
  105. toolName: subagent
  106. enableModelSelection: true
  107. backgroundMode: continuable
  108. maxDepth: 1
  109. # Fork omits model selection so provider/model stay equal to the parent and the
  110. # inherited history remains eligible for KV Cache reuse. It stays one-shot because
  111. # a continuable child's `report` tool and prompt section precede that history and
  112. # invalidate the same prefix. `run_in_background` is off as an explicit
  113. # foreground-only choice even though agent-spine-demo mounts the generic Job runtime.
  114. # See .agents/notes/implemented/feature/2026-08-18-model-selected-subagent-routes.md
  115. # and .agents/notes/implemented/architecture/2026-08-10-fork-children-stay-one-shot.md.
  116. - id: tool-subagent-fork
  117. name: '@deepseek-ai/dsh-tool-subagent'
  118. config:
  119. provider: fork
  120. toolName: subagent_fork
  121. backgroundMode: one-shot
  122. enableRunInBackground: false
  123. maxDepth: 1
  124. # The worker-thread workflow engine fans a model-written JavaScript script's
  125. # `agent()` calls out through the spawn backend.
  126. - id: workflow-worker-thread
  127. name: '@deepseek-ai/dsh-workflow-worker-thread'
  128. config:
  129. provider: spawn
  130. - id: tool-workflow
  131. name: '@deepseek-ai/dsh-tool-workflow'
  132. # A separate fixed consumer demonstrates fresh-agent Ralph iteration without
  133. # changing the workflow tool or same-session goal behavior.
  134. - id: tool-ralph
  135. name: '@deepseek-ai/dsh-tool-ralph'
  136. # `todo_write` replaces the logged whole list.
  137. - id: tool-todo
  138. name: '@deepseek-ai/dsh-tool-todo'
  139. config:
  140. allowParallelInProgress: true
  141. # Policy loads before the model-facing filesystem tools so writes and edits
  142. # require an observed file. Relative paths resolve from the process cwd.
  143. - id: fs-local
  144. name: '@deepseek-ai/dsh-fs-local'
  145. config:
  146. cwd: !!js process.cwd()
  147. - id: fs-observation-policy
  148. name: '@deepseek-ai/dsh-fs-observation-policy'
  149. - id: tool-fs
  150. name: '@deepseek-ai/dsh-tool-fs'