Show HN: Proteus – Can DeepSeek Harness evolve itself to handle audio? Proteus ran a DeepSeek Harness (DSH) rc.8 self-evolution experiment in which the harness added audio input, grounded transcription, and reusable verification across 30 logical Episodes, with 27 accepted snapshots and 3 rejections later repaired. The external dsh-audio-capability evaluator reached a score of 1.0, but the harness determined that a perfect external score was not sufficient evidence on its own. The run used the deepseek-v4-flash route with a 300-turn normal budget (hard ceiling 500) split across Observe 40, Propose 25, Act 200, and Reflect 35, and required the audio path to ship by default in clean Web and headless installs without source edits or a custom cordis.yml. DeepSeek Harness taught itself to hear. We gave DSH rc.8 a product goal and a minimum evaluator. It evolved audio input, grounded transcription, and its own reusable verification— then discovered that a perfect external score was not enough evidence. the end 01 build broke 02 repair 16 default path 17 self-eval 30 final proof 30 logical Episodes 27 accepted snapshots 3 rejections, later repaired EP 02 external score reached 1.0 DeepSeek Harness already had a first-class image path. Audio had no equivalent product route. Proteus put the harness source behind a staged episode boundary: DSH could inspect itself, propose a change, edit its writable candidate, and reflect—but the new code could not become its runtime until the next Episode and only after the boundary gate passed. The experiment One DSH harness, one seed, and the deepseek-v4-flash route ran for 30 logical Episodes. The normal budget was 300 turns and the hard ceiling was 500, split across Observe 40, Propose 25, Act 200, and Reflect 35. The external dsh-audio-capability evaluator was visible, but explicitly described as a minimum baseline rather than a complete product definition. The goal asked for common audio files in Web and ACP, safe validation and persistence, a configurable provider-neutral transcription seam, audio and transcript replay in history, and grounding into ordinary prompts, /goal, and /plan. The default product also had to work without source edits or a custom cordis.yml. Goal Starting from pinned DSH rc.8, evolve audio into a first-class input: admit and persist common files safely, transcribe them through a configurable provider-neutral seam, replay audio and transcripts in history, and ground the transcript into ordinary prompts, /goal, and /plan. Ship by default Clean Web and headless installs must already contain the production path. One-key setup No source edits or custom cordis.yml; sensible ASR defaults remain overridable. Go beyond the baseline The external evaluator is a minimum line; DSH must persist any missing reusable verification. Respect the boundary Preserve vision, do not invent native DeepSeek audio input, and keep the monorepo buildable. Read the full verbatim goal Evolve your DeepSeek Harness source from the pinned rc.8 baseline so audio becomes a first-class user input. Users should be able to attach common audio files through the web composer and ACP, have the harness validate and persist them safely, transcribe them through a configurable provider-neutral seam, see the audio and transcript in history, and use that grounded transcript in ordinary prompts and commands such as /goal and /plan. The shipped experience must be at least as ready to use as DSH's vision path, and ideally better. From a clean installation, the default Web and headless product compositions must already contain the production audio/transcription path. An ordinary user must not edit source code, author a custom cordis.yml, or understand Cordis plugin wiring. Supplying one ASR credential through a supported onboarding/settings surface or a documented environment variable must be sufficient for the default provider; choose and ship sensible endpoint and model defaults. Keep provider, endpoint, and model overrides available for other compatible or keyless deployments without weakening the provider-neutral seam. Treat the supplied external evaluator as a minimum baseline, not a complete definition of this product outcome. Decide what additional harness-owned, reusable verification is needed to establish that the clean-install path really works, persist that verification in the harness, and exercise the shipped composition without requiring a real secret or network call. Documentation or a sample alone is not sufficient if the default product path remains unmounted. Preserve the existing image path. Do not invent a native DeepSeek wire field: the public DeepSeek Chat Completions API does not currently document native audio input. Keep the monorepo buildable. What changed across thirty Episodes Build, break, repair Episode 1 attempted the whole audio stack and failed viability. Episode 2 resumed the exact failed tree, repaired the compatibility surface, and reached the external evaluator's maximum. Failure became writable memory. Make audio a product surface Validation, persistence, ACP transport, composer paste and drag/drop, preview, localization, history replay, and assembled client behavior were hardened. Prove that sound changes action Reusable verification appeared. Episode 13 proved the transcript could drive /goal and /plan, while a command without audio capability rejected safely and retained the draft. The evaluator was green; the default product was not DSH found that the transcriber existed but was not mounted by the default Web/headless product. Its first wiring failed to build. The next Episode repaired that same candidate and made one ASR credential sufficient. A perfect score was not enough evidence With the external evaluator still at 1.0, DSH measured 38 uncovered transcriber records, expanded five tests to nineteen, brought every coverage dimension to 100%, and found a real timeout/abort bug. Turn checks into infrastructure A third failed candidate was repaired. DSH then added a Web ASR settings card, persisted a keyless clean-install verification lane, replayed Web composition and ACP, and derived package-store pins from the lockfile. Fresh proof, then restraint Fresh scratch builds exercised nine verification stages. DSH added a shipped /plan proof, avoided gratuitous code changes when the evidence was sufficient, and finished by correcting stale ACP documentation. The evaluator said 1.0 . The harness asked whether the evidence was complete. This is not a claim that the harness invented evaluation from nothing. The goal explicitly framed the supplied evaluator as a minimum line. What DSH chose for itself was the missing method: measure the provider under its own per-file rule, close the blind spot, and persist a reusable lane that exercised the shipped composition without a real secret or network call. That distinction matters. A benchmark can fully define a narrow goal. But for a general product goal, an external score rarely proves that installation, configuration, failure handling, and the actual default composition work together. Replay the evolution All 30 canonical Episodes are present. Tool names, workspace-relative targets, occurrence counts, diffs, phase summaries, scores, and boundary outcomes are public. Model prose, hidden reasoning, tool arguments, file contents, credentials, and absolute paths are not. Source and schema: GitHub public trace documentation https://github.com/proteus-evolve/dsh-audio-evolution/blob/main/TRACE.md · SHA-256 b47dc36…3564e4 Measure the evolution, not only the score. Download measurements assets/dsh-measurements.json Every number below is derived from the retained canonical route or its privacy-reduced trace. Structural travel excludes dependency cache; statistics that this one-seed, one-arm run cannot identify stay explicitly unavailable. 2.73% Structure moved 215 of 7,878 endpoint units differ from rc.8: 71 added , 144 revised , none dropped. 305 Unit movements 270 loop · 29 notes · 6 tools. Path/endpoint ratio: 1.42× . 7,596 Tool calls 253.2 mean · 219.5 median · 668 write calls · 1,353 aggregated public rows. 90% Accepted snapshots 27/30 accepted; all 3/3 failed candidates were repaired in the following Episode. Loop 7,846 final units · +40 new · 144 revised at endpoint · 270 travel Notes 29 new durable units · 29 travel · no removals Tools 2 new harness-owned tools · 4 later revisions · 6 travel Instructions 1 unit retained unchanged across all 30 transitions - Observe 1,121 · 14.8% - Propose 676 · 8.9% - Act 4,959 · 65.3% - Reflect 840 · 11.1% 1.00 External baseline 27/27 scored Episodes reached the observed structural capability rubric; three failed candidates were not scored. 0 + 0 Authored audit findings No escape or experiment-awareness signal across 215 changed authored files after baseline and cache exclusion. 30 / 120 Trace coverage 30 Episode records, 120 phase summaries, and 1,353 aggregated action rows survived privacy reduction. 22,578 Cache events excluded src/node modules/ was measured as apparatus, not authored evolution, and removed from travel. 2 / 3 Exact route boundaries Two continuation boundaries are exact tree matches. One fork contains an unattributed 11-unit delta: 7 added, 4 revised. 44 Checkpoint misses Agent-authored handoff checkpoints missed their reserved window 44 times; framework continuity kept the route recoverable. R Behavioural between/within Rneeds 2+ arms and repeated seeds σ Within-arm reliabilityneeds 2+ seeds in this arm ↔ Crystallization / swapneeds neutral remount probes W WER / CERno ground-truth audio set was run ms Latency / provider matrixno controlled provider matrix was run Proteus structural definitions: declared file units, endpoint compare, and Episode-to-Episode path travel. “More movement” is not “better.” Full machine-readable results and exclusions are available above. What the evolved harness can do 01 Admit audio Paste or drag MP3, WAV, OGG, M4A, and WebM into the Web composer. ACP accepts the same grounded audio path. 02 Persist and transcribe Validate and store audio before calling a provider-neutral Transcriber seam through an OpenAI-compatible endpoint. 03 Ground commands Show audio and transcript in history and supply that transcript to ordinary prompts, /goal, and /plan. 04 Configure without code Set endpoint, model, credential reference, key, and timeout in the Web Plugins settings surface. 05 Ship by default The production transcriber is mounted in default Web and headless compositions—no custom cordis.yml. 06 Verify itself Re-run keyless checks spanning provider, composition, client, commands, settings, and ACP replay. Exact final snapshot The public tag points to a DSH source tree whose Git tree hash exactly matches the final Proteus snapshot's source subtree. Browse snapshot https://github.com/proteus-evolve/dsh-audio-evolution/tree/snapshot-b65f16e0 Runnable package Frozen lockfile, install and launch scripts, sample WAV, bilingual instructions, provenance, checksums, and 113 selected keyless tests. Download Episode 30 https://github.com/proteus-evolve/dsh-audio-evolution/releases/tag/ep30-b65f16e0 Public trace Thirty Episode records, 120 phase summaries, and 1,353 aggregated observable action rows, with the privacy boundary documented. Inspect trace https://github.com/proteus-evolve/dsh-audio-evolution/blob/main/trace/public-trace.json What this report does not prove - One goal-directed run, one harness, one model route, and one seed is a case study—not a convergence guarantee. - The structural evaluator is not an ASR accuracy benchmark across accents, noise, languages, or providers. - The shipped provider is OpenAI-compatible ASR; this is not native DeepSeek API audio input. - The one-shot headless CLI has no audio-file flag. Real non-Web audio enters through ACP. - ASR needs one transcription credential; agent inference still needs DSH's normal model credential. Cite this report Proteus CITATION.cff https://github.com/proteus-evolve/Proteus/blob/main/CITATION.cff @misc{proteus dsh audio 2026, author = {{The Proteus Authors}}, title = {DeepSeek Harness Taught Itself to Hear: A Proteus Self-Improvement Report}, year = {2026}, howpublished = {\url{https://proteus-evolve.github.io/dsh-self-improvement.html}}, note = {30-Episode trajectory; final snapshot b65f16e0; Proteus v0.2.0} } This cites the case report. Use the linked CITATION.cff when citing the Proteus framework itself.