Build a custom machine

Limits

Python SDK version 1

Markdown

Every machine runs under these limits. Each row says what happens past it.

Its class. resources.class in machine.yaml sets the unit's memory, CPU and processes. A bigger class counts as more than one machine toward how many an Ownbox runs at once, which its plan sets, so a big machine may wait for room while others run. An Ownbox refuses a class its memory cannot hold, at the check, with the reason.

ClassMemory, no swapCPU, at low priorityProcesses and threadsCounts asNeeds an Ownbox with
small (the default)256 MBhalf of one core641 machineany memory
standard512 MBone core1282 machines2 GB of memory
large1 GBtwo cores2564 machines4 GB of memory

The unit

WhatLimitPast it
Memoryits class'sThe unit is stopped and restarted.
CPUits class'sIt runs slower.
Processes and threadsits class'sA new one fails to start.
One file it writes200 MBThe write fails.
Open files256Opening one more fails.
Crashes5 an hour, restarted 5 s after eachIt stays stopped until the hour passes.

The door

WhatLimitPast it
Calls120 a minute (next aside)rate_limited
One request2 MBtoo_large
One setting64 KB as JSONtoo_large
Settings200, and 2 MB in alltoo_many_settings, settings_full
Setting key1 to 80 of A-Z a-z 0-9 _ . : -bad_key
Jobs20, each every 15 s to every 7 daystoo_many_jobs, bad_every
Tools20, each with at most 10 argumentstoo_many_tools, bad_tool
Proposal kinds20too_many_kinds
Proposals waiting20answered refused, too_many_waiting
Proposal detail16,000 characters as JSONanswered refused, too_large
Pages, cards20 pages, 10 cardstoo_many_screens, too_many_panels
Step key (key=)1 to 120 characters, remembered for a daybad_idem
Notices20 a dayover_cap

The AI

WhatLimitPast it
Callsits calls_per_month (default 300, at most 5,000)over_budget
Wordsits chars_per_month (default 2,000,000)over_budget
One prompt200,000 characters; a system prompt 50,000bad_prompt
One answermax_tokens up to 4,096 (default 1,024)bad_prompt
At onceone call per machineit waits its turn

The web

WhatLimitPast it
Hosts20, named in machine.yamlhost_not_allowed
Fetches60 a minuterate_limited
MethodsGET, POST, PUT, PATCH, DELETEbad_method
Addresshttps://, port 443, a public host, no user or passwordhttps_only, bad_url, not_public
Request body1 MBtoo_large
Response body4 MBtoo_large
Headers30, each at most 8,192 charactersbad_headers
Timetimeout 1 to 30 s (default 20)unreachable
Redirectshanded back, never followed—

Sending: per_day for each channel, at most 200; past it, over_cap until the day turns. Pages: 20 s to answer, 40 blocks, 64 KB (Pages and cards). Tools: 60 s to answer, 8 KB of words, two at a time per machine and four per Ownbox.