Skip to content

DeepSeek 100-run concurrent real-model performance report

Publication status
DeepSeek fixed-answer comparison: 100 concurrent runs complete
Real DeepSeek100 runs per pathConcurrency 8Provider prefix cache

Result: in this DeepSeek deepseek-v4-flash fixed-answer workload, HNO had the lowest mean client latency. Relative to Direct API, the mean ratios were 1.60x for HNO, 1.33x for Agno, and 1.54x for LangGraph.

Boundary: this is a same-provider, same-model, same-prompt latency snapshot with eight requests in flight. It is not a universal claim about Go, Python, throughput, or production capacity.

Local system-overhead summary

The primary framework comparison is a fresh-operation matrix against the same local OpenAI-compatible stub. Each row uses 100 measured operations, 5 warmups, a 1 ms fixed response delay, and the listed concurrency. RSS is process-tree working set; measured RPS is the completed measured batch throughput.

ConcurrencyFrameworkMeanP95Measured RPSSuccessPeak RSS
8HNO1.859 ms2.655 ms4,186.08100/10012.3 MB
8Agno61.766 ms83.473 ms125.66100/100285.0 MB
8LangGraph30.117 ms37.638 ms251.95100/100157.9 MB
32HNO6.703 ms18.637 ms3,627.35100/10016.7 MB
32Agno138.678 ms241.744 ms170.17100/100373.8 MB
32LangGraph78.370 ms129.618 ms241.67100/100161.1 MB

At concurrency 8, HNO measured 16.6x LangGraph's batch RPS and 33.3x Agno's in this local protocol. At concurrency 32, the ratios were 15.0x and 21.3x. This is framework/runtime overhead evidence, not remote model speed.

See the full local system-overhead matrix for raw files, resource definitions, lifecycle scope, and reproduction.

Final results

Recorded: 2026-08-04T15:33:06Z. Each path used 3 serial warmups and 100 measured samples with bounded concurrency 8.

PathMeanMedian P50P95Min-maxSuccessRelative to Direct
Direct API2,094.52 ms1,707.51 ms4,225.19 ms905.05-4,592.62 ms100/1001.00x
HNO1,312.71 ms1,288.57 ms1,563.62 ms922.35-1,847.16 ms100/1001.60x
Agno1,571.34 ms1,513.03 ms1,988.19 ms1,150.89-2,646.64 ms100/1001.33x
LangGraph1,362.09 ms1,332.45 ms1,753.45 ms983.37-1,927.02 ms100/1001.54x

What the relative mean means

The multiplier is defined as:

text
Direct API mean duration / path mean duration

For HNO:

text
2094.52 / 1312.71 = 1.60x

HNO's mean client latency was about 37.3% lower than the Direct API mean in this snapshot. This is an end-to-end client measurement, not a division of Go runtime time by Python runtime time. It includes:

text
client request preparation + provider network + provider queueing + model generation + response parsing

The concurrent protocol changes the interpretation from the earlier serial 1000-run snapshot. The result shows observed latency for eight in-flight requests; it is not a request-per-second benchmark and should not be presented as a pure framework speedup.

Prompt-cache evidence

DeepSeek prompt caching is provider-managed. There is no client-side cache=true switch to force it. The four paths used the same stable long prefix and the same fixed-answer prompt.

The Direct API path reported:

text
99/100 measured requests: prompt_cache_hit_tokens = 1920, prompt_cache_miss_tokens = 13
1/100 measured requests:  prompt_cache_hit_tokens = 0,    prompt_cache_miss_tokens = 1933

The first measured request was a cache miss in this run; later requests observed the cached prefix. Framework SDK results do not expose the same provider usage fields in their current result structures, so the direct path is retained as provider-level cache evidence rather than treated as a framework-specific metric.

Test protocol

ConditionValue
ProviderDeepSeek
Modeldeepseek-v4-flash
APIOpenAI-compatible
Endpointhttps://api.deepseek.com/v1
PromptFixed answer, return REMOTE_MODEL_OK
Temperature0
Seed42
Max output tokens128
Warmup3 serial requests per path
Measured runs100 per path
Concurrency8 measured requests in flight
Prompt cacheProvider-managed prefix cache
KeyRead locally and never stored in results

Result boundaries

The supported statement is:

Under the DeepSeek deepseek-v4-flash, fixed-answer, stable-prefix, 100-run protocol with concurrency 8, temperature 0, and seed 42, HNO's observed mean client latency was 1.60x relative to Direct API, Agno was 1.33x, and LangGraph was 1.54x.

This does not prove:

  • that every Go program is faster than Python;
  • that HNO will be 1.60x faster for every model, provider, prompt, tool, or concurrency level;
  • that 1.60x is a pure Go runtime improvement;
  • that this is production throughput or capacity;
  • that this is TTFT or TPS;
  • that the result remains stable under rate limits, retries, failures, or a different time window.

The P95 and maximum values show provider/network tail behavior. Production work still needs separate tests for throughput, rate limits, retries, TTFT, TPS, token usage, resource consumption, and cost.

Raw results

The checked-in concurrent snapshot is:

text
benchmarks/framework_comparison/results/remote_deepseek_v4_flash/latest_100_concurrent.json
benchmarks/framework_comparison/results/remote_deepseek_v4_flash/latest_100_concurrent.md

Raw samples:

text
benchmarks/framework_comparison/results/remote_deepseek_v4_flash/direct_simple_100_concurrent.json
benchmarks/framework_comparison/results/remote_deepseek_v4_flash/hno_simple_100_concurrent.json
benchmarks/framework_comparison/results/remote_deepseek_v4_flash/python_simple_100_concurrent.json

The earlier serial 1000-run files remain in the results directory for historical comparison; they are not used as the conclusion on this page.

Local framework overhead matrix

For a provider-independent comparison of HNO, Agno, and LangGraph using the same local fixed-response endpoint, see the local framework and system overhead matrix. It reports 100 samples at concurrency 1, 8, and 32, with request latency, measured batch RPS, peak process-tree RSS, and CPU telemetry.

Reproduce

bash
python benchmarks/framework_comparison/remote_fixed_baseline.py \
  --config benchmarks/framework_comparison/remote_model.local.env \
  --warmup 3 --runs 100 --concurrency 8 \
  --output benchmarks/framework_comparison/results/remote_deepseek_v4_flash/direct_simple_100_concurrent.json

go run ./benchmarks/framework_comparison/hno_local_runner \
  -config benchmarks/framework_comparison/remote_model.local.env \
  -warmup 3 -runs 100 -concurrency 8 \
  > benchmarks/framework_comparison/results/remote_deepseek_v4_flash/hno_simple_100_concurrent.json

uv run --with 'agno==2.8.6' --with 'langgraph==1.2.10' \
  --with 'langchain-openai' --with 'langchain-core' \
  python benchmarks/framework_comparison/real_local.py \
  --config benchmarks/framework_comparison/remote_model.local.env \
  --scenario simple --warmup 3 --runs 100 --concurrency 8 \
  --output benchmarks/framework_comparison/results/remote_deepseek_v4_flash/python_simple_100_concurrent.json

python benchmarks/framework_comparison/summarize_remote.py

The local config file is intentionally ignored by Git. Do not paste the API key into source files, reports, logs, or documentation.

Released under the MIT License.