Optionaloverrides: {Optionalsettings?: {OptionalcitationSimilarityThreshold?: numberSimilarity bar for a quote that fails the exact-substring check. At 1 only an exact
normalized match counts; below it a lightly reworded or re-punctuated quote can still verify.
OptionalconfidenceThreshold?: numberBelow this self-rated confidence an answered field is downgraded to no_answer.
OptionalenableCitationValidation?: booleanVerify every cited quote is present in what the agent was actually shown before the answer ships; unverifiable citations are dropped. Off only in tests that stub the transcript.
OptionalenableConfidenceGate?: booleanWhether confidenceThreshold is enforced at all.
OptionalenableExclusiveChoiceModeling?: booleanModel a checkbox group carrying v1's exclusivity sentence as a single one-of choice, and strip that sentence from the question shown to the model. When off, the group is answered as independent sub-fields and only the post-hoc exactly-one check applies.
OptionalevidenceCharBudget?: numberCharacter budget for the evidence corpus retained per field from the tool transcript — the text citations are proven against. It bounds VERIFICATION memory/CPU, not the prompt, so it is set well above a long chart export: a document that overruns it is truncated (not dropped), but a citation quoting past the cut would still fail to verify.
OptionalfieldConcurrency?: numberHow many fields are answered at once. v1 ran an uncapped Promise.all over every
annotation, so a 60-field form opened 60 concurrent model loops and rate-limited itself.
OptionalfieldTimeoutMs?: numberWall-clock bound on ONE field, after which it resolves as error and the run continues.
A stuck field must not take the other 59 down with it.
OptionalmaxCitationsPerField?: numberUpper bound on citations kept per field. Beyond this the extras are noise, not provenance.
OptionalpromptCacheKeyBuckets?: numberHow many promptCacheKey buckets to spread over; 1 is shipped behaviour. See promptCacheKey.ts.
OptionalrecursionLimit?: numberSuper-steps per field (a lookup costs two, the answer one). 32 is the most fieldTimeoutMs affords across both guard passes.
OptionalrequireCitationForFilled?: booleanDowngrade an answered field with no surviving citation to no_answer. This is the
hallucination control: a value with nothing behind it is exactly the wrong thing to write
onto a form nobody re-reads.
OptionalrequireRetrievalBeforeAnswer?: booleanRefuse a first pass that made no chart tool call and re-ask once, inside the same fieldTimeoutMs.
OptionalretryWhenOverBudget?: booleanRe-ask once, with its own fieldTimeoutMs, when a text answer runs past its box's character
budget; the shorter answer replaces it only if it fits, else the first answer stands and is flagged.
OptionalsetupTimeoutMs?: numberWall-clock bound on the run's SETUP — patient context plus vector stores — before any field runs.
Optionaltools?: { enableListFormFields?: boolean; enableSearchChart?: boolean }Toolset selection. fetch_document is always on — it is how the agent reads anything.
OptionalenableListFormFields?: booleanInclude list_form_fields, so the agent can see the neighbouring fields of the form it is
filling. Costs a turn; pays for itself when a field's meaning depends on its siblings.
OptionalenableSearchChart?: booleanInclude search_chart (semantic retrieval across the run's selected documents + EMR).
Similarity bar for a quote that fails the exact-substring check. At 1 only an exact
normalized match counts; below it a lightly reworded or re-punctuated quote can still verify.
Below this self-rated confidence an answered field is downgraded to no_answer.
Verify every cited quote is present in what the agent was actually shown before the answer ships; unverifiable citations are dropped. Off only in tests that stub the transcript.
Whether confidenceThreshold is enforced at all.
Model a checkbox group carrying v1's exclusivity sentence as a single one-of choice, and strip that sentence from the question shown to the model. When off, the group is answered as independent sub-fields and only the post-hoc exactly-one check applies.
Character budget for the evidence corpus retained per field from the tool transcript — the text citations are proven against. It bounds VERIFICATION memory/CPU, not the prompt, so it is set well above a long chart export: a document that overruns it is truncated (not dropped), but a citation quoting past the cut would still fail to verify.
How many fields are answered at once. v1 ran an uncapped Promise.all over every
annotation, so a 60-field form opened 60 concurrent model loops and rate-limited itself.
Wall-clock bound on ONE field, after which it resolves as error and the run continues.
A stuck field must not take the other 59 down with it.
Upper bound on citations kept per field. Beyond this the extras are noise, not provenance.
How many promptCacheKey buckets to spread over; 1 is shipped behaviour. See promptCacheKey.ts.
Super-steps per field (a lookup costs two, the answer one). 32 is the most fieldTimeoutMs affords across both guard passes.
Downgrade an answered field with no surviving citation to no_answer. This is the
hallucination control: a value with nothing behind it is exactly the wrong thing to write
onto a form nobody re-reads.
Refuse a first pass that made no chart tool call and re-ask once, inside the same fieldTimeoutMs.
Re-ask once, with its own fieldTimeoutMs, when a text answer runs past its box's character
budget; the shorter answer replaces it only if it fits, else the first answer stands and is flagged.
Wall-clock bound on the run's SETUP — patient context plus vector stores — before any field runs.
Toolset selection. fetch_document is always on — it is how the agent reads anything.
Include list_form_fields, so the agent can see the neighbouring fields of the form it is
filling. Costs a turn; pays for itself when a field's meaning depends on its siblings.
Include search_chart (semantic retrieval across the run's selected documents + EMR).
Resolves a (partial) override against the defaults, returning a fully-populated, validated config. Missing keys fall back to their default; invalid values throw.