Default limits and their purpose¶
Audited on 17 October 2026, against commit
b3738f5.
This is an inventory of first-party limits, not a promise that every limit is well chosen.
The recommendations below are assessments; this audit does not change those limits.
Follow-up repair: the subsequent operating-settings changes remove the periodic worker interruption and default action ceiling, preserve reasoning mode on review retries, add concurrent direction and ranged evidence access, remove the public adapter’s inherited output ceiling, and rotate console logs. The tables below remain a snapshot of the audited commit, not the current effective defaults.
The most consequential findings are:
The built-in research adapter’s 8,192-token worker / 32,768-token reviewer output ceilings have been removed in PR #26. Requests now omit
max_tokensunless explicitly configured. Provider limits still apply.Minimal research still has a hard-coded 300-second worker slice and 24 actions per built-in API turn. These interrupt a turn, not the campaign, but can interrupt reasoning and cause repeated context processing.
Several source and evidence limits reject submissions rather than providing another page. Those are more concerning than ordinary display limits.
The public service has a separate model adapter. Its 4,096/8,192-token defaults remain; the research fix does not cover it.
There is no single limits policy. Some values are operator settings, two are delegated director decisions, and many are constants scattered across implementations.
How to read this inventory¶
Default means the value used by the code when no override is provided. Installed configurations can differ. Minimal research, interactive chat, classic/DSH campaigns and the public service do not share every limit. In particular, the public demo’s allowances do not limit a local research campaign.
The tables distinguish four effects:
Stop/reject: execution stops or an otherwise legitimate request is rejected.
Checkpoint: a worker turn ends; the campaign may continue from saved state.
Excerpt/page: less information enters a prompt or view; retained files can still contain the complete record.
Admission: a new request is refused or delayed to respect capacity or a budget.
“Fixed” means no supported setting was found at that enforcement point; changing a Python constant manually is not a user-facing override. “Operator” means a CLI argument, profile, manifest or service setting. “Director” means an explicitly delegated, recorded policy change. A timeout on a network request is not the same as a scientific experiment timeout.
Byte units are deliberate: 256,000 bytes differs from 256 KiB. Character limits are not token limits. Where several layers apply, the smallest effective allowance wins.
Coverage: the audit scanned 153 first-party Python files, then checked enforcement sites, JavaScript integrations, browser forms and configuration defaults. It excludes dependency internals, numeric hash/ID truncation used only for identity, and visual layout dimensions. Scientific acceptance thresholds and transfer/display bounds are included separately so they are not misreported as agent termination limits. This is a dated source audit; deployment overrides and future changes require a fresh comparison.
Research and model execution¶
Sources: study CLI, research supervisor, shared supervisor, API adapter, finalization, provider retries.
Limit enabled on the relevant path |
Default / enforced ceiling |
Control and effect |
Necessity and recommendation |
|---|---|---|---|
Research campaign wall budget |
CLI: 3,600 s; native launch request inherits 21,600 s |
Operator; stop at authorized deadline. Extensions are recorded. |
Keep. This represents authorization and cost, not a model capability assumption. Expose remaining time clearly. |
Turn / inactivity allowance |
CLI: 600 s, no greater than initial wall budget |
Operator; interpretation depends on transport/activity mode. |
Keep an inactivity watchdog, but distinguish inactivity from legitimate long reasoning and network wait. |
Minimal worker’s absolute slice |
300 s, even if |
Fixed; checkpoint/termination of worker process. |
Rework. Scheduling opportunities are useful; an unconditional five-minute cutoff can waste a long reasoning request. Prefer cooperative checkpoints and budget-aware grace. |
Built-in API actions per bounded turn |
24; effectively unbounded when no turn wall budget is supplied |
Fixed; checkpoint. Research launches supply a wall budget. |
Make configurable or adaptive. It is a runaway guard, not evidence that 24 is a good research unit. |
Research API history retained across turns |
One preceding turn’s calls/results, plus a fresh durable evidence brief |
Fixed policy; excerpt. Older artifacts/journal remain available. |
Bound context growth, but measure retrieval/repetition overhead. This is a deliberate memory loss boundary. |
API output-token allowance after PR #26 |
No Simjecture default cap; explicit positive-integer |
Operator profile/request; provider default otherwise. |
Keep this behavior. Different providers count reasoning/output differently; no universal 8K assumption is justified. |
Single API request timeout |
Agent: up to 600 s, clipped to remaining turn time; standalone |
Constructor/caller; stop request. |
Keep a transport watchdog; make it model-aware. The worker slice can be the tighter bound. |
SDK transport retries |
1 retry after initial attempt |
Adapter setting; network request bound |
Prevent hidden retry multiplication. Outer research transport recovery is separate. |
DeepSeek explicit-completion attempts |
4 attempts in one generation, i.e. initial plus at most 3 follow-ups |
Fixed; error if still no usable completion/tool call |
Some malformed endings need recovery. Expensive whole-context retries should be visible and configurable. |
Built-in reviewer attempts |
2 |
Fixed; incomplete/truncated responses never count as acceptance |
Retain fail-closed acceptance. The retry count should reflect remaining budget. |
Second DeepSeek reviewer attempt |
Forces |
Fixed fallback, a mode restriction rather than a numeric cap |
Reconsider. A parser/timeout failure does not establish that less reasoning is appropriate. Record it explicitly. |
Native Grok judge turns |
|
Fixed; reviewer transport restriction |
Appropriate only for a supplied, self-contained verdict packet. It restricts independent investigation; do not describe all reviewers as freely tool-using. |
Director assessment |
120 s per call; ordinarily every 300 s, unchanged-state review interval 900 s |
Manifest policy; timeout |
Keep review cadence, but make assessment time configurable. Frontier reviewers may need longer than two minutes. |
Claim review transport attempts |
2 per processing pass |
Fixed; request stays queued after failure |
Keep incomplete reviews from silently approving. Retry scheduling should be bounded by the campaign, not an unexplained universal count. |
Methods/progress review retrieval |
3 requests per response; initial review plus at most 2 retrieval follow-ups |
Fixed; bounded reviewer evidence acquisition |
Prevent runaway review cost; provide pagination and an explicit request-more route so missing evidence is not mistaken for absence. |
Consecutive generic supervisor errors |
3 before external-error pause |
Fixed; campaign pause |
Useful for a broken integration loop. Distinguish these from transient transport errors, which already retry. |
Transient provider recovery |
No fixed total retry count before the campaign deadline; exponential delay capped at 60 s |
Deadline bounded |
Matches unattended recovery. Authentication/quota/permission failures pause rather than repeatedly spending requests. |
Worker process termination grace |
Typically 5 s before SIGKILL; handoff grace 2 s |
Fixed; process lifecycle |
A cleanup safeguard. Cooperative state saving should precede termination when possible. |
Protected report reserve |
|
Launch policy; numerical compute ends before final deadline |
Keep a report reserve. Ten minutes is a default, not a scientifically justified maximum for every campaign. Direct service creation may omit this policy. |
Budget extension metadata |
Idempotency key/request ID ≤120 characters, reason ≤2,400, operator identity ≤160; additional hours <10¹⁰⁰ and finite |
Fixed validation; latest 8 requests shown in budget status |
Metadata/overflow protection, not a practical time allocation. Only the operator grants extra time; existing experiment deadlines do not automatically extend. |
Analysis during report reserve |
Diagnostic execution may use first 40% of reserve |
Fixed fraction; execution deadline |
Preserve time for review, but replace arbitrary fractions with explicit remaining-work estimates where practical. |
Report orchestration |
Up to 3 draft/analysis passes; draft budget 40%, queued claim review up to 20%; initial report assessment 65% of then-remaining time; one transport retry; revision if >30 s remain |
Fixed orchestration inside final budget |
Sensible intent, rigid allocation. Measure how often these boundaries cause incomplete reports. |
Research journal LLM synthesis |
Total |
Fixed; optional synthesis skipped when exhausted |
Keep bookkeeping cheap. It must not become the only place an important finding is retained. |
Director replan gate |
Only exploratory diagnostic jobs ≤120 s bypass a pending replan |
Fixed; rejects other new jobs until acknowledgement |
Keep the stop-and-replan control. The diagnostic exception should be policy-configurable. |
The minimal research path has no default campaign-wide token or money cap, no default experiment-count cap, and no default hypothesis-tree-depth cap. Wall time, storage, method review and machine capacity still constrain it. A provider, native agent CLI, scheduler or operator can impose additional limits outside this table.
Files, tools, context and evidence¶
Sources: API tools, images, methods, research service, retrieved evidence, receipts, notebook, oversight, director, journal, continuation, skills.
Limit |
Value / behavior |
Control |
Necessity and recommendation |
|---|---|---|---|
API |
Rejects files >256,000 bytes; directory listing first 20,000 characters |
Fixed |
Avoid dumping large data into context. Add ranged reads/search, rather than requiring shell workarounds for ordinary source files. |
API terminal command |
Default 120 s; clamped to 1–600 s and remaining turn time |
Fixed ceiling; caller timeout below it |
Good for short commands; unsuitable for long simulation/builds. Managed command/experiment launchers provide longer execution. Make this distinction explicit. |
API terminal result |
Last 24,000 characters of console output |
Fixed excerpt |
Keep prompt size bounded; persist full logs and return a retrieval reference. A tail can omit the actual error. |
API public observation/error event |
1,500-character excerpt |
Fixed excerpt |
Appropriate for UI events, provided the full tool result/receipt remains accessible. |
API webpage fetch |
First 100,000 response bytes; HTTP timeout 30 s |
Fixed |
Basic network/resource guard. Expose truncation and allow selected larger/ranged retrieval for papers and documentation. |
API skill resource read |
32,000 characters, retaining beginning/end when truncated |
Fixed excerpt |
Reasonable initial view; add pagination so middle sections are accessible without special handling. |
Image transport |
4 MiB encoded image file; 16 million pixels; PNG/JPEG/WebP |
Fixed; rejects oversize |
Keep decode/memory protection; provide explicit downsampling/tiling. These are transport limits, not a scientific image restriction. |
Method source in review |
Code file ≤131,072 bytes (128 KiB) |
Fixed; rejects large code source |
Rework. A legitimate solver/diagnostic can exceed this. Hash the complete source and retrieve selected sections. |
Method packet |
≤700,000 serialized bytes; code error calls this “700 KiB” |
Fixed; rejects submission |
Bound prompt construction, but use indexed retrieval rather than rejecting an entire valid method. The code’s error unit is inaccurate. |
Claim review source / packet |
Source code ≤128 KiB per file; entire packet ≤1,000,000 serialized bytes |
Fixed; rejects submission |
Rework for larger evidence sets. Completeness/provenance are necessary; arbitrary packet size is not a scientific validity condition. |
Automatically inspected JSON artifacts |
≤262,144 bytes (256 KiB) in audit, journal and notebook helpers |
Fixed; larger files skipped from this inspection |
Fine as an initial scan, not a reason to label large evidence uninspectable forever. Keep skipped/unknown explicit. |
Reviewer evidence extraction |
JSON file ≤256 KiB; selected serialized value ≤12,000 bytes; available-key preview first 24; default output/missing-output preview first 16 each; error excerpt 350 characters |
Fixed; error/selection view |
Prevent accidental giant prompts. Allow paged or computed reductions with traceable provenance. |
Receipt retrieval |
Default 16 entries; maximum 32; explicit names ≤16; encoded result ≤12,000 bytes; execution stdout/stderr tail 8,000 characters |
Fixed page bounds; caller offset |
Keep pages; they do not limit the archived inventory. Expose continuation and avoid treating a page as the complete record. |
Notebook note |
Statement 2,400 characters; 32 experiments; 8 sources, each ≤2,000 characters; 8 alternatives, labels ≤200 / outcomes ≤1,200 characters |
Schema/validators; rejects oversize note |
Helpful structured memory, but a large argument should be a linked document rather than repeatedly split by hand. |
Notebook retrieval |
Default 20, maximum 100 entries per page |
Caller pagination |
Keep; not a total notebook limit. |
Brief serialized size |
Default 16,000 bytes; request range 2,048–64,000 bytes |
Caller within fixed ceiling |
Useful context budget. Make upper policy model-aware and tell agents what was omitted. |
Worker / director brief |
Worker 6,000 bytes; director 8,000 bytes |
Fixed caller choices |
Cheap orientation, but too small as the only view of a complex investigation. Full records must remain retrievable. |
Brief subsection selection |
Up to 12 experiments, 12 notes, 12 audit/trace items, 8 reviews/journal attempts, 6 methods, 2 summaries, 6 progress series before total-size reduction |
Fixed excerpt; detailed selection code |
Initial navigation only. A fixed “latest N” policy can lose the decisive older case. Prefer relevance plus evidence indexes. |
Brief text reduction |
Hypothesis ≤900 characters initially; alternatives/sources/other fields further shortened when fitting the packet |
Fixed excerpt |
The original hypothesis remains authoritative. Truncation must never silently replace the scientific contract. |
Public worker activity passed to oversight |
Last 12 actions ×3,000 characters; last 3 messages ×1,600 characters |
Fixed excerpt |
Good privacy/context boundary; full public transcripts remain on disk. Count real progress independently. |
Director activity view |
Last 3 actions ×1,200 characters; last message ×800 characters; latest 2 decisions |
Fixed excerpt |
Useful summary, not enough to establish that work is absent. Retrieve a longer trace when a decision depends on it. |
Progress source signature |
First 100 eligible source/config files, each ≤128 KiB; recent useful-action hashes 128 |
Fixed scan |
Avoid expensive scans. This is a blind spot for changes outside that subset; use explicit change receipts/indexes. |
Progress telemetry parsing |
Last 256 KiB of monitored log |
Fixed tail |
Appropriate streaming strategy; use offsets/structured telemetry if the needed record can fall out of the tail. |
Progress limitations |
≤16 entries, each ≤1,200 characters |
Fixed validation |
Keep the telemetry envelope compact; link a longer scientific limitations document. |
Worker wait declaration |
Reason 8–2,400 characters; ≤64 receipt IDs per subject type |
Fixed validation |
Bounded structured scheduling request; allow grouped job manifests if larger campaigns need them. |
Method limitation descriptions |
≤32 descriptions, each ≤2,400 characters |
Fixed validation |
Reasonable envelope, not a physical limit. Link longer limitations. |
Journal synthesis packet / response |
≤24,000 bytes, up to 8 attempts; ≤6 notes, each ≤1,000 characters and ≤8 experiment references |
Fixed selection/schema |
Keep optional summaries cheap; retain underlying deterministic journal entries. |
Continuation inheritance |
≤128 selected files, each ≤1 MiB; complete inherited payload ≤16 MiB; preview first 256 eligible files |
Fixed; rejects oversize |
Too restrictive for checkpoint inheritance if treated as a data-transfer mechanism. This is for continuation context; large checkpoints should use separately referenced/staged assets. |
Experiment storage, machines and SSH¶
Sources: service, resource delegation, registration, experiment executor, worker protocol, worker, execution pool, machine commands, sandbox, cooperative runner.
Limit |
Default / maximum |
Control and effect |
Necessity and recommendation |
|---|---|---|---|
Per-experiment storage |
4 GiB, including staged inputs and generated files |
Operator policy; director can increase only when delegated, delegation defaults off |
Keep storage accounting; the default is not suitable for every PIC checkpoint. Explain required bytes before admission. |
Total research experiment storage |
|
Same delegation |
Keep total reservation to prevent parallel jobs exhausting storage. Prefer available-space-aware policy. |
Minimal experiment per-file size |
Same as that experiment’s storage allowance |
Inherited budget |
There is no separate 512 MiB file cap here now. Do not confuse this with classic/public limits below. |
Local frozen experiment memory |
4 GiB at executor’s default call boundary |
Caller/resource profile; stop |
Keep a memory budget, but derive it from an explicit reservation/hardware rather than a hidden universal default. |
Experiment duration |
Service call default 600 s, clipped to compute deadline; remote schema maximum 604,800 s (7 days) |
Caller plus operator deadline; remote fixed maximum |
Keep authorized deadlines. The seven-day protocol maximum is arbitrary and should not silently prevent longer campaigns/jobs. |
Default submitted resources |
1 CPU, 1,024 MiB RAM, 0 GPUs |
Caller reservation |
Necessary accounting, easy to misuse with MPI. Validate launcher/resource consistency; do not assume an executable uses all host cores. |
Manual worker default capacity |
2 CPUs, 4,096 MiB RAM, 2 concurrent jobs, no GPUs |
Operator; admission |
Safe small defaults, not detected hardware. Automatic provisioning can replace them with detected capacity. |
Worker schema upper envelopes |
65,536 CPUs, 16 TiB RAM, 256 GPUs, 256 jobs; ≤32 capability directories; ≤256 GPU IDs |
Fixed protocol validation |
Finite validation envelopes are reasonable. Values should be documented and extensible rather than treated as physical limitations. |
Remote workspace envelope |
1 MiB–1 TiB, default 4 GiB |
Fixed protocol ceiling plus study budget |
Align with delegated storage policy: granting >1 TiB cannot make a remote request pass this schema. |
Remote output declarations |
≤20,000 paths/globs |
Fixed protocol bound |
Avoid huge malformed requests; archived output count is also affected by matching/staging. Consider manifest-based declaration for large campaigns. |
Worker RPC request |
≤2 MiB |
Fixed transport frame |
Keep bounded frames, use chunking for large data. |
Transfer chunk |
1 MiB per upload/fetch operation |
Fixed chunk size |
Not a maximum file size. Large files are transferred in multiple chunks. |
Remote instrument source read |
Default 16,000 bytes; maximum 65,536 bytes; directory listing first 100 entries |
Caller within fixed ceiling |
Good first page; add source offsets/pagination so read-only access can reach the whole file/tree. |
Remote registration probe |
60 s, 1 attempt |
Director can tune timeout/attempts when delegated; new minimal studies enable delegation by default |
Keep a bounded handshake, but expensive probes need a recorded increase. Probe failure is not a scientific failure. |
SSH control request |
Default 20 s; status 10 s; scheduling status 5 s |
Caller-specific |
Prevent a dead SSH endpoint blocking orchestration. Allow realistic high-latency hosts and retry without losing job identity. |
Setup/provision calls |
Usually 600 s; suggestion 15 s; registration/config probe 60 s |
Call-site bounds |
Builds may need longer. Prefer asynchronous provisioning with progress rather than a larger silent wait. |
GUI machine setup command |
Default 60 s; allowed 1–7,200 s; command ≤32,000 characters |
Caller within fixed validation |
Keep bounded administrative work. This path is not the scientific experiment’s budget. |
Machine onboarding / availability |
SSH address ≤1,000 characters; availability checks use at most 4 concurrent threads |
Fixed validation/concurrency |
Reasonable control-plane bounds. Probe parallelism should be tunable for large machine pools. |
Remote status history |
Last 100 terminal jobs in worker status |
Fixed excerpt |
Fine as a status page; does not delete job receipts. Add pagination when needed. |
Sandbox CPU allowance |
|
Resource settings / OS |
Prevent CPU runaway while allowing multicore work. It is not an aggregate MPI-tree CPU quota. |
Sandbox address-space ceiling |
Normal isolated path: configured memory; cooperative/resident-memory-guard path: |
OS/runner |
Address space and resident memory differ, especially with CUDA/MPI. Keep RSS accounting and state enforcement accurately. |
Sandbox core dumps |
Disabled ( |
Fixed |
Saves potentially huge dumps. Permit an operator debugging override if needed. |
Cooperative runner RSS |
4 GiB fallback; experiment normally supplies its memory allowance through environment |
Operator/caller; stop |
Keep host protection; do not mistake the fallback for the actual reservation of every run. |
Local interactive UI and project assets¶
Sources: web server, workspace, job manager, application, project assets, monitor, browser forms.
Limit |
Value |
Control/effect |
Necessity and recommendation |
|---|---|---|---|
Ordinary local JSON request body |
64 KiB |
Fixed; reject |
Reasonable HTTP protection; support linked documents for larger instructions. |
File-upload/collection body |
96 MiB encoded JSON body |
Fixed; reject |
Keep transport bound; binary streaming is preferable to base64 JSON for large files. |
Uploaded decoded file |
64 MiB |
Fixed; reject |
Fine for small documents, restrictive for simulation data. Add chunked upload and explicit storage admission. |
Benchmark import body / records |
4 MiB; 1–1,000 reports |
Fixed; reject |
Sensible batch envelope; allow multiple batches and retain import provenance. |
Interactive text |
General backend text helper 20,000 characters; setup-guidance message 8,000; progress message 2,000; parent instructions 16,000 |
Endpoint bounds; reject |
Avoid accidental giant prompts. Provide file attachment/reference rather than manual splitting. |
Conversation fallback |
Last 48,000 characters when no resumable native session exists |
Fixed excerpt |
Recovery fallback, not equivalent to complete session memory. Tell the model/user when history is partial. |
Project context asset |
File-name length ≤500 characters, each file ≤20 MiB; ≤1,024 files and ≤512 MiB total |
Fixed; reject |
Reasonable document collection defaults; too small for arbitrary scientific data. Separate contextual documents from large datasets. |
Managed command / simulation duration |
Command default 7,200 s, simulation default 3,600 s; maximum 7 days |
Caller within fixed maximum |
Keep explicit requested time. Explain the difference from synchronous |
Managed command text |
≤32,000 characters |
Fixed; reject |
Prefer a versioned script for longer commands. This is reasonable protocol hygiene. |
Automatic project copy / inherited assets |
≤512 MiB |
Fixed; reject; explicit external assets are an alternative |
Prevent accidental duplication; expose references/staging rather than presenting this as a solver limitation. |
Managed job console log |
64 MiB: job fails once log exceeds it |
Fixed; stop |
Rework urgently. Rotate/spool/compress logs; a verbose scientific code should not lose a valid run because its console is large. |
Polling console view |
Last 24,000 bytes; controller excerpt 2,000 characters |
Fixed excerpt |
Good UI bounds; retain full logs and let users download/search them. |
Artifact HTTP delivery |
≤64 MiB per file |
Fixed; reject |
Use streaming/range delivery. Serving a checkpoint should not require reading all of it into memory. |
Artifact text preview |
≤2 MiB |
Fixed excerpt/rejection by preview path |
Keep preview bounds, with full download available. |
Campaign discovery / artifact list |
100 recent campaigns; application artifact list 600; generic listing default 200 |
Fixed/page-like display bounds |
Appropriate initial UI limits, but add pagination so old work is not hidden. |
Engine activity view |
Last 512 KiB / 80 events; general web activity reader 512,000 bytes; browser legacy view up to 30 activity items |
Fixed excerpt |
Display only; raw event files remain authoritative. |
Monitor projection |
80 recent events, 100 projected executions, 12,000-character console excerpt; recent-run discovery default 20 |
Fixed display bounds |
Keep rendering bounded; make “more” discoverable. These do not authorize deletion. |
Model discovery |
Response ≤2 MiB; first 200 model entries; 10 s HTTP timeout |
Fixed |
Page/search large catalogs; a later model should not become impossible to select merely because it was omitted. |
CLI discovery / connection check |
Usually 15 s for executable/model discovery, 25 s for connection preflight |
Fixed timeout |
Reasonable startup watchdog; expose a retry/longer timeout for slow backends. |
Legacy GUI launch field ceilings |
Wall ≤7 days; command ≤24 h; workspace/RAM ≤1 TiB; hypothesis/instruction 20,000 characters |
Fixed web validation |
Backend and UI must agree. These envelopes are arbitrary beyond protocol safety; don’t advertise unrestricted budgets. |
Workspace/project metadata |
Identifier 1–100 characters; name 160; description 2,000; instructions 20,000 |
Fixed backend validation |
Reasonable metadata envelopes; larger supporting context belongs in attached files. |
Browser form bounds |
Legacy campaign ID 128; benchmark model field 160; guidance textarea 8,000; extension reason 2,400 |
Fixed UI bounds |
Mostly presentation/schema hygiene. A long model identifier should not be limited only by the browser. |
Browser machine job preview |
First 15 jobs |
Fixed display excerpt |
Fine for a card; provide access to the full queue. |
Interactive local work has no default overall chat wall-time limit and the shared API agent has no small action cap when launched without a turn budget. These freedoms do not override managed-job or OS resource limits.
Public service defaults¶
Sources: public worker, public store, public workspace, public lab, broker, OS limits, public HTTP server, OAuth. These are code defaults, not a reading of the live website’s private settings.
Limit |
Default / maximum |
Exceptions/control |
Necessity and recommendation |
|---|---|---|---|
Per-account daily task allowances |
Guest: 5 interactive +1 research; member: 20 +2 |
Settings; owner has no allowance count cap |
Keep fair-use quotas for shared donated compute. Explain reset/usage before launch. |
Per-job wall time |
600 s |
Settings; owner can request unlimited hosted time |
Keep public authorization. “Unlimited owner” does not bypass broker command limits. |
Queue/concurrency |
20 queued globally; 2 running globally; one queued/running task per account |
Settings / store policy |
Keep capacity admission. Make queue status clear; do not apply these defaults to private SSH campaigns. |
New guest identities |
10 per IP per day |
Store setting/call |
Abuse control, but shared university networks can be unfairly blocked. Prefer transparent admission and login alternatives. |
Model requests |
24 per job; 50 globally per day; 20 globally per minute |
Provider settings; owner bypasses job/day limits, not RPM |
Necessary shared budget control. Values depend on funding/provider, not model intelligence. |
Token allowance |
200,000 input+output tokens per job |
Settings; owner bypasses |
Checked before the next request, not a strict reservation of future output. It can overshoot on the final request; report actual usage. |
Public adapter output tokens |
4,096 worker / 8,192 reviewer |
|
Remove these inherited defaults or make them explicit plan limits. The same reasoning-budget problem as PR #26 remains on this separate path. |
Prepared request/context size |
240,000 serialized bytes; owner 4,000,000 bytes |
Fixed; reject |
Rework into model-aware context handling. Byte size is a poor proxy for available token context and image payloads. |
Public API transport |
60 s request timeout; SDK retries 0, outer retry until job deadline |
Fixed adapter / deadline |
Avoid hidden retry costs; slow reasoning can be wrongly classified as failure. Expose a longer model-appropriate timeout. |
Public agent actions |
Research agent 24; interactive planning agent 12 |
Owner effectively unbounded |
Keep abuse/budget guard if explicitly part of a plan; avoid claiming equivalent behavior to private research without noting this difference. |
Tool parallelism |
|
Fixed |
Serial execution simplifies budget and artifact ownership. Not inherently necessary if independent tools can be admitted safely. |
Scientific lab experiments |
6 per job |
Settings; owner bypasses |
A public allowance, not a research stopping condition. Failed commands also consume records under this counting path. |
Lab command time |
Default 120 s; guest ≤180 s; owner ≤86,400 s |
Caller below fixed ceiling |
Guest limits fit small demos; unsuitable for meaningful long simulations. Show the restriction before planning. |
Legacy hosted research storage |
128 MiB per experiment; 512 MiB total on the legacy worker path |
Explicit service construction |
Tiny demonstration budgets. Do not confuse with minimal research’s 4 GiB experiment default. |
Lab text write |
≤128 KiB per call/file |
Fixed; owner included |
Too restrictive for large generated input/source. Support staged assets/ranged writes within a total quota. |
Lab read |
Text file ≤8 MiB; default 200 / max 400 lines; returned text ≤40,000 characters |
Caller pagination; owner included |
Reasonable ranged view; binary/large-file analysis should use a command and retained results. |
Lab command / declarations |
Command ≤12,000 characters; output declarations ≤64; resolved inputs ≤4,096 |
Fixed; owner included |
Use scripts/manifests for large jobs; unify with the non-public protocol where practical. |
Public project upload |
Base64 string ≤90 MiB; decoded file ≤64 MiB; project total ≤512 MiB |
Fixed; signed-in users only |
Keep storage admission, add streaming; owner also has these file envelopes. |
Chat / study input |
Message 1–4,000 characters; research question 16–4,000; instruction/constraints 4,000; invitation 128 |
Fixed validation |
Fine for a free demo, limiting for real research briefs. Link attached documents. |
Public broker transport |
Frame ≤256 MiB |
Fixed; owner included |
Keep a bounded protocol; stream/chunk large assets. Base64/frame overhead can bind earlier than raw storage limits. |
Public execution scratch / outputs |
≤512 MiB and ≤50,000 files; unpacked entry ≤128 MiB |
Fixed; owner included |
Necessary host protection; limits are currently unsuitable for many FLASH/PIC outputs. Advertise the actual demo scope. |
Public execution individual file |
|
Fixed; owner included |
Unify with storage policy. A valid result can hit this even with free total space. |
Public CPU / RAM / GPU |
Default 4 CPUs, 4 GiB process-tree RSS; one selected GPU visibility value from configured pool; OpenBLAS threads 1 |
Broker settings |
Keep capacity reservations. Ensure UI/tool descriptions reflect actual assigned hardware. |
Public process/file descriptors |
|
Fixed OS limits; owner included |
Host protection, but CPU seconds are not wall seconds for multithreaded code. Check this against the four-CPU allocation; MPI can also need more descriptors. |
Broker connection / cleanup |
30 s initial request timeout; 5 s process wait/cleanup |
Fixed |
Keep finite cleanup/handshake; separate disconnects from scientific failure. |
Console / diagnostic trace |
Returned console tail 4,000 characters; optional executor trace excerpt 2,000,000 characters |
Fixed excerpt |
Keep bounded views and complete downloadable logs. Operator trace is optional, not enabled globally. |
Service admission free disk |
At least 1 GiB free by default |
Settings |
Keep disk reserve; consider projected workspace demand rather than just a fixed free-space threshold. |
HTTP service concurrency |
Uvicorn 100 connections/tasks; 5 s keep-alive |
Fixed launch arguments |
Ordinary service capacity defaults; tune to host/load and report 503s clearly. |
Database contention |
SQLite busy timeout 30 s |
Fixed |
Prevent indefinite waits; transactions should remain short. |
Event feed |
200 events per page |
Cursor pagination |
Keep; not a total record limit. |
Guest lifecycle |
Lease 180 s; leave grace 30 s |
Settings/lifecycle policy |
Data-retention rule requested for guests; not a model budget. Avoid deleting work during a temporary tab/network interruption. |
OAuth lifetime / fetch |
State 600 s; session cookies 30 days; profile fetch 10 s and ≤256 KiB |
Auth policy |
Necessary authentication/response bounds; unrelated to research capability. |
Classic, structured and DSH paths¶
These describe archived workflows, removed from 0.6.3. Their values remain here to interpret historical records; they are not selectable launch paths. The running built-in minimal API worker does not pass through DSH. Sources: classic config/sandbox, classic launch, kernel, assignment store, MCP bridge, DSH profile, context elision, role plugin, job waiter, numerical plans, proposal generation, search generation.
Limit |
Default / maximum |
Necessity and recommendation |
|---|---|---|
Classic wall/command time |
21,600 s campaign; 600 s per command |
Operator-configurable. Keep authorization; avoid transferring small demo defaults to production. |
Classic storage / individual file / memory |
512 MiB workspace; 64 MiB file; 4 GiB memory |
Operator-configurable. Small for modern simulation, especially checkpoints; show effective values before launch. |
Classic tool output |
30,000 characters |
Operator-configurable excerpt. Retain raw logs and references. |
Classic full prompt history |
Latest 8 assistant/tool turns; older payloads compacted |
Operator-configurable. Useful cost control; verify important evidence survives retrieval. |
Classic model failures |
3 retries; failover after 2 consecutive failures |
Operator-configurable. A bounded local retry policy, distinct from outer persistent recovery. |
Classic workspace file reads |
Up to 400 lines per read |
Caller pagination; suitable if the full file stays accessible. |
Classic linked evidence preview |
Up to 8 links and min(tool output cap, 8,000 characters) |
Fixed excerpt; include navigation to remaining evidence. |
Structured/frontier assignment |
80 operations before handoff; assignment schema permits 1–10,000 |
Fixed supervisor choice, followed by another assignment. Not a campaign-wide operation count; make configurable if it causes churn. |
Structured next-test memory |
Last 12,000 characters |
Fixed excerpt. Preserve full handoff file and provenance. |
Autonomous decision validation |
3 invalid decisions per iteration by default; schema max 10 |
Explicit contract setting. Useful broken-output guard, not a scientific result. |
Kernel final answer |
≤16,384 characters |
Fixed rejection. Keep short summary, allow a linked full report instead of requiring scientific reporting to fit this field. |
Kernel control operation ID |
≤256 characters |
Fixed protocol hygiene; reasonable. |
Kernel feasibility stop assessment |
≤16 jobs, ≤16 alternatives each ≤2,000 characters; feasibility text ≤8,000 |
Fixed schema. Reasonable structured summary, with linked detail for larger decisions. |
Kernel compact snapshots |
12 artifacts, 16 jobs, 4 literature searches, first 5 sources/search; claim summary up to 12 |
Fixed excerpt, not archive limit. Provide explicit full/paged retrieval. |
Kernel compact job values |
Stops recursion beyond depth 8; ≤200 mapping/list items; strings ≤4,000 characters; stream tail default 4,000 |
Fixed excerpt. Use references for omitted data. |
MCP result envelope |
Default 30,000 characters; environment override range 1,024–1,000,000 |
Configurable transport ceiling. Do not silently equate truncated JSON with complete evidence. |
MCP nested data |
Depth 12; ≤500 items; each string ≤16,384 characters |
Fixed serialization guard. Keep indexed/raw alternatives. |
MCP initial hypothesis |
≤16,384 characters |
Fixed validation. Reasonable summary envelope; original supporting documents can be external. |
MCP claim retrieval |
Default page 24, max 100; full claims ≤8 |
Fixed page/envelope. Full scientific state must remain reachable. |
MCP role packet |
1 role claim, 2 contracts, 8 evidence entries, 8 validation results; note excerpt 400 characters; claim statement summary 512 |
Fixed excerpt/scope. Avoid giant packets, but reviewer must be able to ask for missing evidence. |
MCP snapshot excerpts |
Hypothesis 2,048; instructions 8,192; claim/repair text 256 characters; 8 artifacts; 8 jobs; 3 literature sources |
Fixed excerpt. Navigation aids only, never replacement contracts. |
DSH context elision |
Argument and visible-text thresholds 2,000 characters; completed tool exchange retained verbatim for one model request, then compacted |
Fixed plugin policy; append-only original events retained. Useful only with retrieval; benchmark information loss/repetition. |
DSH selected scalar summaries |
Stops recursion beyond depth 8; arrays first 30; only selected scalars whose string representation is ≤240 characters |
Fixed selection. Larger scalars are omitted, not merely shortened; summaries cannot establish complete diagnostics. |
DSH summarization override |
Specific |
Profile setting, not universal to current DeepSeek aliases. Update/version-test separately; current built-in research does not use it. |
DSH role dispatch |
Encoded packet ≤80,000 characters; subagent depth 1; repair scientist limited to one repaired scientific child |
Fixed plugin boundaries. Claim scope/provenance is useful; rigid branching/depth needs a reason, not just inherited orchestration. |
MCP call deadline / reconnect |
Default 600 s plus 5 s client grace, minimum 1 s; reconnect ≤8 attempts, backoff 0.5–10 s |
Environment/profile. Keep transport bounds but coordinate them with actual job deadlines. |
DSH job waiter |
3 read retries; writer-busy allowance default 15 s; heartbeat 30 s |
Retry fixed, timing environment-configurable. Preserve idempotent job identity on failure. |
Numerical trial plans |
Smoke 50 steps; qualification/discovery 1,000 steps; autonomous numerical repairs default 2 failures |
Plan parameters. Preset trial budgets, not a global FLASH/WarpX maximum. Do not let them substitute for reaching the physical target time. |
Structured proposal/search output |
16,384 tokens at actual generator defaults; interface protocol defaults 1,024 |
Caller configurable. Separate from the shared API fix; expose effective values if this path is used. |
Proposal/search attempts |
2 regular attempts; proposal escalation 1; search escalation 1 |
Generator constructor settings. Reasonable validation guard; budget/model appropriate overrides should be explicit. |
Classic max_iterations defaults to None: it is not a default-on hard cap. DSH’s own provider/context behavior comes from the installed DSH version as well as this plugin; this inventory does not claim to audit the internals of that external package.
Literature, scientific presets and other adapters¶
Sources: literature, WarpX preset, cylinder flow, numerical thresholds, Windows bridge, Windows runtime, CST runtime, benchmark runner.
Limit |
Default / maximum |
Necessity and recommendation |
|---|---|---|
Literature results |
Default 8; request 1–20; authors first 50 |
Caller/schema. Fine as a search page; add pagination for systematic review. |
Literature request |
20 s |
Operator/caller. Sensible network watchdog, separate from research time. |
Literature text fields |
Query 500, purpose 1,000; title/snippet/source 1,000; abstract 3,000; URL 4,000; author 300 characters |
Fixed schema. Keep metadata small, but fetch full sources rather than inferring from truncated abstracts. |
Qualified WarpX two-stream preset |
Grid 32–4,096; electron particles/cell 16–8,192, ion particles/cell 1–1,024; normalized timestep 0.001–0.2; end time 1–500; diagnostic interval 1–10,000; seed ≤2³¹−1 |
Schema-scoped qualification, not general WarpX capability. Retain declared tested scope; custom capabilities can support different physics/resolutions. |
WarpX preset solver/analysis |
Poisson tolerance 10⁻¹⁴–10⁻⁴; iterations 10–10,000; fit windows 3–10,000 and other estimator bounds |
Qualification defaults/ranges, detailed below. Keep physically/numerically justified conditions distinct from transport limits. |
WarpX preset physical range |
Density 10¹²–10²⁵ m⁻³, thermal speed 10³–2×10⁷ m/s, normalized stream drift 0.1–2, perturbation 10⁻⁷–0.05 |
Test-adapter scope. Not grounds for rejecting unrelated custom scientific tools. |
Numerical acceptance defaults |
Residual ≤10⁻⁸; relative energy drift ≤0.01; boundary contamination ≤0.01; numerical damping fraction ≤0.05 |
Policy/model values, not runtime caps. They require scientific justification per observable; do not assume universal validity. |
Cylinder-flow launch |
50,000,000 cells maximum by default ( |
Operator configurable. Useful memory guard; estimate required RAM/VRAM and report override. |
Windows/CST application job |
≤86,400 s; submit/control RPC defaults 600/60 s |
Job ceiling fixed, requested duration variable. Arbitrary one-day bound should not be hidden from long studies. |
Benchmark execution |
Explicit task wall budget; verifier timeout ≤120 s normally; fallback verifier 30 s |
Benchmark contract. Keep timed ranking reproducible; never apply benchmark deadlines to normal studies. |
The appendix records every Pydantic Field upper bound found in first-party Python source, including small metadata envelopes and physical ranges. Fractions bounded by 0–1, byte values bounded by 255, valid TCP ports and positive finite times are type/domain constraints, not automatically arbitrary restrictions on agent autonomy.
What should change next¶
Unify a visible limits policy. Show effective values, inheritance, enforcement layer, and who may change them in CLI, GUI and director packets. Keep owner budgets authoritative; delegate operating limits explicitly.
Stop terminating useful work for scheduling. Replace unconditional worker slices with cooperative handoff; make API action allowances configurable and preserve transport state on interruption. Evaluate wasted reasoning and cache reuse.
Use provider defaults consistently. The shared adapter is fixed; audit the public and structured adapters before claiming all backends have equivalent inference budgets. Do not silently disable thinking to obtain a verdict.
Separate evidence integrity from prompt size. Keep immutable hashes/full records, bounded indexes, ranged source access and reviewer retrieval. A large source file is not invalid science.
Preserve outputs. Rotate logs; stream/download/chunk files; stage checkpoints by reference. Total storage and memory admission remain necessary.
Measure actual impact. Record each limit hit with configured/effective value, elapsed time, tokens and recovery outcome. Compare completion, spend and repeated reads before changing defaults further.
Only the output-default fix in PR #26 was implemented as part of this request. The other recommendations above are deliberately left for a separate change and benchmark.
Schema-bound appendix¶
The following table is generated from Field(le=..., lt=..., max_length=...) declarations. Bounds are active whenever the containing schema is used; a schema’s presence does not mean every study uses it. Expressions are shown exactly rather than converted into potentially misleading units.
Assessment codes: T = type/physical-domain constraint; S = scoped scientific preset needing domain justification; P = protocol/metadata envelope, retain a finite envelope but review the value; R = research/context restriction to make configurable or replace with retrieval. These assess the kind of bound, not prove the chosen number optimal. Hand-written validators and non-Pydantic limits are covered in the preceding tables.
Source and field |
Default |
Enforced upper bound |
Assessment |
|---|---|---|---|
adapters/warpx.py:104 · |
|
|
S |
adapters/warpx.py:105 · |
|
|
S |
adapters/warpx.py:106 · |
|
|
S |
adapters/warpx.py:107 · |
|
|
S |
adapters/warpx.py:108 · |
|
|
T |
adapters/warpx.py:109 · |
|
|
T |
adapters/warpx.py:110 · |
|
|
T |
adapters/warpx.py:147 · |
|
|
S |
adapters/warpx.py:148 · |
|
|
S |
adapters/warpx.py:149 · |
|
|
S |
adapters/warpx.py:150 · |
|
|
S |
adapters/warpx.py:151 · |
|
|
S |
adapters/warpx.py:152 · |
|
|
S |
adapters/warpx.py:153 · |
|
|
S |
adapters/warpx.py:154 · |
|
|
S |
adapters/warpx.py:155 · |
|
|
S |
adapters/warpx.py:156 · |
|
|
S |
adapters/warpx.py:161 · |
|
|
S |
adapters/warpx.py:162 · |
|
|
T |
adapters/warpx.py:164 · |
|
|
T |
adapters/warpx.py:165 · |
|
|
T |
adapters/warpx.py:166 · |
|
|
T |
adapters/warpx.py:167 · |
|
|
S |
adapters/warpx.py:168 · |
|
|
T |
adapters/warpx.py:295 · |
|
|
T |
autonomous_research.py:172 · |
|
|
P |
benchmarks/electrostatic_pic.py:53 · |
|
|
P |
benchmarks/electrostatic_pic.py:57 · |
|
|
T |
benchmarks/electrostatic_pic.py:86 · |
|
|
T |
benchmarks/kinetic_sufficiency.py:36 · |
|
|
T |
campaign_jobs.py:101 · |
|
|
P |
corrective_audit.py:30 · |
|
|
P |
domains/base.py:39 · |
|
|
T |
domains/base.py:57 · |
|
|
T |
domains/kinetic_sufficiency.py:73 · |
|
|
T |
literature.py:30 · |
|
|
P |
literature.py:36 · |
|
|
P |
literature.py:38 · |
|
|
P |
literature.py:39 · |
|
|
P |
literature.py:40 · |
|
|
P |
literature.py:41 · |
|
|
P |
literature.py:42 · |
|
|
P |
literature.py:43 · |
|
|
P |
literature.py:44 · |
|
|
P |
literature.py:45 · |
|
|
P |
literature.py:46 · |
|
|
P |
literature.py:47 · |
|
|
P |
literature.py:60 · |
|
|
P |
mvp_agent.py:157 · |
|
|
P |
mvp_agent.py:165 · |
|
|
P |
mvp_agent.py:173 · |
|
|
P |
mvp_agent.py:185 · |
|
|
P |
mvp_agent.py:191 · |
|
|
P |
mvp_claims.py:107 · |
|
|
P |
mvp_claims.py:229 · |
|
|
P |
mvp_claims.py:253 · |
|
|
P |
mvp_claims.py:254 · |
|
|
P |
parameters.py:286 · |
|
|
T |
parameters.py:287 · |
|
|
T |
parameters.py:294 · |
|
|
T |
parameters.py:295 · |
|
|
T |
public/server.py:303 · |
|
|
P |
public/server.py:308 · |
|
|
P |
public/worker.py:36 · |
|
|
P |
public/worker.py:40 · |
|
|
P |
research_control.py:23 · |
|
|
P |
research_control.py:24 · |
|
|
P |
research_development.py:14 · |
|
|
P |
research_development.py:15 · |
|
|
P |
research_development.py:16 · |
|
|
P |
research_development.py:17 · |
|
|
P |
research_director.py:21 · |
|
|
P |
research_director.py:27 · |
|
|
P |
research_director.py:30 · |
|
|
P |
research_director.py:42 · |
|
|
P |
research_director.py:47 · |
|
|
P |
research_journal.py:126 · |
|
|
P |
research_journal.py:127 · |
|
|
P |
research_journal.py:132 · |
|
|
P |
research_notebook.py:23 · |
|
|
R |
research_notebook.py:25 · |
|
|
R |
research_notebook.py:26 · |
|
|
R |
research_notebook.py:29 · |
|
|
R |
research_oversight.py:26 · |
|
|
R |
research_progress.py:21 · |
|
|
P |
research_progress.py:22 · |
|
|
P |
research_progress.py:26 · |
|
|
P |
research_progress.py:27 · |
|
|
P |
research_receipts.py:14 · |
|
|
R |
research_receipts.py:16 · |
|
|
R |
research_registration.py:16 · |
|
|
T |
research_registration.py:17 · |
|
|
P |
research_resources.py:13 · |
|
|
T |
research_resources.py:14 · |
|
|
T |
research_resources.py:15 · |
|
|
P |
review_evidence.py:17 · |
|
|
P |
review_evidence.py:18 · |
|
|
P |
review_evidence.py:19 · |
|
|
P |
search.py:73 · |
|
|
T |
search.py:74 · |
|
|
T |
search.py:75 · |
|
|
T |
search.py:166 · |
|
|
P |
worker_protocol.py:24 · |
|
|
P |
worker_protocol.py:25 · |
|
|
P |
worker_protocol.py:26 · |
|
|
P |
worker_protocol.py:34 · |
|
|
P |
worker_protocol.py:35 · |
|
|
P |
worker_protocol.py:36 · |
|
|
P |
worker_protocol.py:37 · |
|
|
P |
worker_protocol.py:38 · |
|
|
P |
worker_protocol.py:60 · |
|
|
P |
worker_protocol.py:61 · |
|
|
P |
worker_protocol.py:62 · |
|
|
P |
worker_protocol.py:64 · |
|
|
P |
worker_protocol.py:70 · |
|
|
P |
worker_protocol.py:72 · |
|
|
P |
worker_protocol.py:73 · |
|
|
T |
worker_protocol.py:74 · |
|
|
P |
worker_protocol.py:104 · |
|
|
P |
worker_protocol.py:106 · |
|
|
P |
worker_protocol.py:107 · |
|
|
P |