Circle V2 API Docs
    Preparing search index...

    Variable formFillingConfigSchemaConst

    formFillingConfigSchema: ZodObject<
        {
            settings: ZodPrefault<
                ZodObject<
                    {
                        citationSimilarityThreshold: ZodDefault<ZodNumber>;
                        confidenceThreshold: ZodDefault<ZodNumber>;
                        enableCitationValidation: ZodDefault<ZodBoolean>;
                        enableConfidenceGate: ZodDefault<ZodBoolean>;
                        enableExclusiveChoiceModeling: ZodDefault<ZodBoolean>;
                        evidenceCharBudget: ZodDefault<ZodNumber>;
                        fieldConcurrency: ZodDefault<ZodNumber>;
                        fieldTimeoutMs: ZodDefault<ZodNumber>;
                        maxCitationsPerField: ZodDefault<ZodNumber>;
                        promptCacheKeyBuckets: ZodDefault<ZodNumber>;
                        recursionLimit: ZodDefault<ZodNumber>;
                        requireCitationForFilled: ZodDefault<ZodBoolean>;
                        requireRetrievalBeforeAnswer: ZodDefault<ZodBoolean>;
                        retryWhenOverBudget: ZodDefault<ZodBoolean>;
                        setupTimeoutMs: ZodDefault<ZodNumber>;
                    },
                    $strip,
                >,
            >;
            tools: ZodPrefault<
                ZodObject<
                    {
                        enableListFormFields: ZodDefault<ZodBoolean>;
                        enableSearchChart: ZodDefault<ZodBoolean>;
                    },
                    $strip,
                >,
            >;
        },
        $strip,
    > = ...

    Single source of truth for every tunable lever of the form-filling runner (loop bounds, concurrency, gates, toolset). Model and temperature come from the LangSmith hub / committed snapshot — not from this config.

    The runner stays pure: it accepts a (partial) config and resolves it against these defaults. Production callers resolve the partial from LaunchDarkly AT THE CALL SITE and pass it as input.config, so @repo/ai-agents never takes a @repo/feature-flags dependency.

    Defaults are accuracy-first: a caller opts OUT of a gate rather than into it. On a medical form a blank a human fills beats a confident wrong value, so every lever that trades a filled field for a correct one ships on.