Skip to content
MyDSHMy DSH Field Notes
中文
Independently maintained; not affiliated with DeepSeek. No association with mydsh.dev or other MyDSH sites.

Home/Modes & context/PTC vs standard

What PTC actually is: not a faster mode, but tools presented as an SDK

Heard PTC saves tokens, without knowing where the saving comes from or whether your task benefits.

VerifiedVersion and environmentChecked 2026-11-14
Source
ToolPresentationMode in config-catalog; ptc/agent.cordis.yml comments
Checked
2026-11-14

The name misleads. PTC is not an acceleration switch; it is a way of presenting tools. The official type is ToolPresentationMode with three values: native, ptc, both.

ValueWhat the model receives
native (default)The full schema of every visible tool; the model calls them one by one
ptcOnly run_code plus a generated SDK prompt; the model writes one program that calls the tools
bothBoth forms

The key sentence in the official description: a sequence that would be five round trips becomes one. What is saved is not tokens per se but the structure where every extra tool call costs a full model round trip.

The cost: a hard dependency on a code runtime

The docs are explicit: PTC mode requires a ctx.codeRuntime whose language has a registered SDK renderer (TypeScript or Python). Missing, or an unregistered language, means prompt assembly fails. Not a silent fallback to native — a failure.

Another detail: under ptc, native tool names in toolOrder are invalid, because the model never sees those names — only run_code and the SDK. Tool-ordering config written for native stops applying.

When it actually saves

  • Saves: multi-step work expressible as one program with clear dependencies (read A, then read B based on A, then summarise).
  • Does not save: one or two steps, or each step needing a human decision. PTC just adds abstraction.
  • May cost more: the generated SDK prompt occupies context; with few tools and few calls it is pure overhead.

Measure it yourself

The community holds opposite views on whether PTC saves — unsurprising, since it depends on task shape. The only way to judge your task is three runs per mode, comparing two numbers: tool calls and model round trips.

# Record template (do not just log total time)
mode | run | tool calls | round trips | tokens | identical output?
native | 1/2/3 | | | | 
ptc    | 1/2/3 | | | |
Wall-clock time is dominated by network and server variance, so single comparisons are noise. Either three runs and report a range, or skip time and compare round trips — the quantity PTC actually changes.

What counts as working

Check every line. All of them pass or the job is not done.

  • You can explain what native versus ptc sends the model
  • You know PTC fails to start without a code runtime rather than degrading
  • You measured both tool calls and round trips

Where it fails

Symptom, cause, what to do — written in the order it actually happens.

SymptomCauseWhat to do
Switching to PTC fails at startupNo codeRuntime, or no registered SDK renderer for the languageConfirm the runtime; otherwise stay on standard
Tool ordering stops working under PTCNative tool names are invalid under ptcExpress ordering in the SDK program, or return to native

Sources

Verified means measured here. Compiled means every line carries a source.