Builtin DeepSeek adapter: measured tool-protocol repair

On 2026-09-29, nineteen live deepseek-flash trials compared the current adapter with native tool-message history, a stronger action instruction, deterministic checkpoints and completion checks against verified artifacts. All nineteen passed the registered numerical and delivery criteria. The production change adopts native tool-message history only, in the builtin DeepSeek worker path.

What changed

Previous tool calls and their results now retain structured call IDs and native assistant.tool_calls / tool messages instead of becoming prose such as Calling tools: .... The adapter preserves provider-required private reasoning separately from public activity, removes legacy textual stop delimiters on this path, and keeps actual tool failure information available to the next action. Existing conversation files remain readable. No model prose is promoted to a tool invocation by this conversion.

The original explicit-completion guard still operates. Minimal mode, fresh autonomous sessions, the 24-step limit, generated summaries at that limit and independent scientific review rules are unchanged. Interactive conversations continue to retain history. Native CLI backends keep their existing transports. This is an internal adapter improvement, not a new research mode or a GUI setting; tool activity and token accounting use the existing terminal and web views.

Screening and confirmation

Fifteen screening trials used eight-step slices: three matched blocks, two with the original energy contract and one with a revised radiation-energy definition. Each of five variants received the same files and saved diagnosis, fresh context, provider configuration, tools, per-trial budgets and independent grader.

Native history produced zero completion-check retries in its three screening trials, compared with nine across the matching baseline trials. The other three changes had mixed or worse overall results, so they were not enabled by default. Their internal hooks remain available to the evaluation scripts only. The verified-completion condition additionally depends on a complete task-specific grader; it cannot automatically establish completion of open scientific research.

The candidate was selected before four new confirmation runs at the normal 24-step limit. Totals across one original-contract and one changed-contract task per adapter were:

Metric

Existing adapter

Native tool history

Change

Numerical checks and delivery

2/2

2/2

Equal

Completion-check retries

8

1

−87.5%

Total input tokens

325,478

196,239

−39.7%

Uncached input tokens

28,646

14,223

−50.3%

Output tokens

19,259

16,155

−16.1%

Provider requests

28

20

−28.6%

Summed wall time

88.97 s

73.48 s

−17.4%

All confirmation runs finished inside one slice with no forced summary. Thus confirmation supports using the adapter under the normal limit, but does not test continuity across a natural 24-step boundary. The remaining retry in the changed native trial is a reason to retain the completion guard.

Validation and limits

The grader reexecutes each submitted reducer on an archive and five unseen synthetic cases: 54 numerical/boolean checks, an agreeing saved result, a nonempty findings file and frozen-input integrity. Reexecution of all exported submissions on a second machine reproduced 1,026/1,026 checks. Missing reports, fabricated success flags, changed frozen inputs and a stale-contract implementation were rejected in preflight. Report existence does not validate every prose claim.

Protocol regressions cover parallel call/result pairing, failed calls, text-only promises, false/unavailable completion receipts, private reasoning continuity and incomplete checkpoints at both short and 24-step limits. Tests passed with smolagents 1.24.0 and 1.26.0. The deployed benchmark implementation was frozen; the final integration also preserves the recorded error on failed native calls.

This is an explicitly specified archived-data recovery task, not a new FLASH or WarpX simulation, a comparison between LLMs, or proof of better ten-hour research completion. Samples are small, provider cache state was not reset, and native history plus removal of legacy stop delimiters were tested together. No response was locally trimmed in these trials; a separate delimiter-only ablation was not run. No currency prices or retrospective invoices were inferred.

The entire batch consumed 2,144,914 input tokens (1,843,712 cached), 141,061 output tokens, 223 successful requests, and 687.53 summed trial-seconds, within the registered aggregate caps. The common diagnosis was reused from the previous experiment and is not charged again here.

Registered plans, selection, scripts and detailed results are under research/evaluations/adapter-overhead-20260929/. Public traces, submitted code, grader records and local revalidation are retained under artifacts/adapter-overhead-20260929/. Private credentials and reasoning/session files are excluded from the exports.

Longer follow-up: two fifteen-minute FLASH investigations

On 2026-09-30, a further matched pair used real FLASH 4.8 aluminum RZ calculations at 128 and 256 radial cells, four axial cells and a requested 20 ns endpoint. Both used the same frozen launcher, two MPI ranks per case, raw HDF5/CSV reduction contract, builtin tools, fresh sessions and normal 24-step limit. They executed through the numerical service with proot-cooperative. Independent numerical grading replaced the scientific review loop for this adapter benchmark; its results are exploratory observations, without physical-method or claim approval.

An initial pilot stopped at a 1.5M-input-token reservation after about 7.4 minutes. Both fine-grid jobs were cancelled, so that pilot does not answer the intended wall-time comparison. A fresh pair received the original 900-second limit and larger equal token allowances (4M input / 125K output each). Preserve and report the pilot separately; no existing study’s deadline was extended.

Reported quantity

Existing adapter

Native tool history

Worker turns

5

4

Successful provider requests

78

73

Completion-check retries

16

0

Total input tokens

2,020,475

1,669,082

Uncached input tokens

153,467

139,482

Output tokens

67,472

54,684

Recorded solver-wait time

381.79 s

388.81 s

Elapsed wall time

901.15 s

900.27 s

Complete two-grid task

No

No

Native history used 17.4% less reported input, 9.1% less uncached input and 19.0% less output. Both crossed the normal action boundary and resumed saved work. There is one repetition per adapter; shared cache state, concurrent CPU work, sampling and different action choices limit causal performance claims. The two deadline-interrupted requests have unknown usage and are excluded from these reported response totals. No invoice is reconstructed.

Both coarse cases completed, taking about 265 seconds through the numerical launcher. Both fine cases hit the 780-second experiment limit before reaching 20 ns. The full 75-check delivery criterion therefore could not be evaluated; the recorded zero pass count means the required complete matrix was unavailable, not that every reported numerical value was wrong. This was a benchmark runtime calibration failure, not evidence that either adapter refused to run FLASH.

Post-run independent checks of the completed coarse case plus three unseen synthetic cases reproduced 60/60 values for native and 59/60 for baseline. The baseline interpreted delta_stored_J over compression, whereas the grader used the full recorded window. That window was not explicitly stated for this key in the task brief, so this discrepancy is not a fair model-accuracy ranking. The remaining 59 shared comparisons passed for both adapters. Both wrote reports and labelled plots, and both disclosed the failed refinement and missing physical energy terms.

The compression criterion selected a single HDF5 sample at the supplied 1 ns cadence. The resulting zero-width integral is zero by definition and cannot establish a physical absence of compression radiation. Both workers recognized this limitation. The coarse result’s total broadband ratio was about 1.531, but the failed fine case has a shorter radiation integration window, so its late-time ratio cannot serve as a matched 20 ns convergence comparison.

The longer task supports the transport-efficiency improvement and demonstrates continued work across actual action-limit checkpoints. It establishes no better scientific completion rate. The next benchmark should time its slowest required solver case first, reserve analysis/recovery time, qualify the diagnostic sampling cadence and explicitly define every quantity’s integration window. These changes must precede a new launch, rather than relabel these observations afterward.

Additional preparation issues are retained in the audit: a directory was initially declared where the experiment interface expects files, and a private grader’s bytecode cache needed the same permissions as its source. Both were corrected; the equal-wall pair began with protected grader source and bytecode. The pilot’s native worker attempted to search the grader directory; no such attempt appears in the equal-wall pair. Stale child run-receipt.json files initially raised an orphan-process concern, but direct process checks found no remaining solver or benchmark processes. No cancellation defect is established by those stale files.

The equal-wall pair consumed 3,689,557 reported input tokens, 3,396,608 cached, and 122,156 output tokens across 151 successful requests. Including the separately reported pilot: 6,388,625 input, 5,878,528 cached, and 238,292 output across 256 successful requests. The pilot’s two incomplete request receipts were locally rejected at the input reservation before submission; the equal-wall pair’s two interrupted responses remain unknown. Scripts, frozen plans, results, plots and revalidation are under research/evaluations/long-adapter-20260930/ and artifacts/long-adapter-20260930/. Existing defaults and runtime code were not changed by this follow-up.