Skip to content

Update Etherforce Settings

PUT
/api/data/settings/etherforce

Apply a partial update to Etherforce settings and persist to disk.

Only fields explicitly set on the request body (i.e. non-None after model_dump(exclude_none=True)) are touched. The live in-memory config is mutated first so subsequent reads see the new values, then the partial dict is merged into user_settings.json, and finally the conduit is asked to reload its cached config snapshot.

EtherforceSettingsUpdate

Partial update payload — only non-None fields are applied.

Mirrors :class:EtherforceSettingsResponse minus a few of the more specialised tunables that the UI does not yet expose. Validation bounds protect against pathological values (e.g. zero timeouts that would deadlock long-running handlers, or values large enough to mask real bugs as “still running”).

object
llmTimeoutSeconds
Any of:
integer
>= 60 <= 7200
lorekeeperStepTimeout
Any of:
integer
>= 60 <= 7200
lorekeeperLoreTimeout
Any of:
integer
>= 60 <= 7200
lorekeeperTotalTimeout
Any of:
integer
>= 60 <= 7200
lorekeeperConcurrency
Any of:
integer
>= 1 <= 10
editIngestionTimeout
Any of:
integer
>= 30 <= 7200
editChunkTimeout
Any of:
integer
>= 30 <= 7200
editSynthesisTimeout
Any of:
integer
>= 30 <= 7200
editResearchTimeout
Any of:
integer
>= 30 <= 7200
editHeartbeatInterval
Any of:
integer
>= 1 <= 60
benchmarkStreamingTimeout
Any of:
integer
<= 3600
benchmarkAnalysisTimeout
Any of:
integer
<= 3600
chromadbOperationTimeout
Any of:
integer
>= 10 <= 600
factExtractTimeout
Any of:
integer
>= 30 <= 1800
factVerifyTimeout
Any of:
integer
>= 30 <= 1800
compileTimeout
Any of:
integer
>= 10 <= 600
characterLlmTimeout
Any of:
integer
>= 30 <= 1800
responseCacheEnabled
Any of:
boolean
responseCacheTtlSeconds
Any of:
integer
<= 3600
responseCacheMaxEntries
Any of:
integer
<= 100000
cacheNonZeroTemp
Any of:
boolean
manuscriptEncryptionEnabled
Any of:
boolean
perceptionMaxChars
Any of:
integer
>= 500 <= 50000
perceptionMaxTokens
Any of:
integer
>= 256 <= 16384
perceptionTemperature
Any of:
number
<= 1.5
perceptionTimeoutMultiplier
Any of:
number
>= 0.5 <= 5
perceptionSchemaRetries
Any of:
integer
>= 1 <= 5
perceptionSummaryChars
Any of:
integer
>= 100 <= 2000
agentBusyThreshold
Any of:
number
<= 1
agentLoadWindowSeconds
Any of:
integer
>= 10 <= 600
agentLoadCapacityPerWindow
Any of:
integer
>= 1 <= 10000
agentRoutingStrategy
Any of:
string
Allowed values: first_match least_loaded

Successful Response

SettingsUpdateResponse

Shared response envelope for every settings update endpoint.

status is "success" when at least one field changed, "noop" when the request carried no updatable fields. updated_fields lists the snake_case keys that were actually persisted so the caller can display exactly what changed.

object
status
required
Status
string
message
required
Message
string
updatedFields
required
Updatedfields
Array<string>

Validation Error

HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object