Enrich entity
enrich_entityEnrich one entity against exactly one of schema_id or target_schema, returning structured output, record_id, costs and any database outcome. Read get_schema's input_contract first (published version when linked); never invent preserve values. Models may be omitted for auto selection. Generation is billed. Two or more models fuse only when all succeed: check failed_models before reporting success. A failed leg prevents automatic fusion and database admission. classification_warning returns success=false, error_code and classification; bypass only after user confirmation. Database sync defaults on: report database.status and database_warning, including partial writes or overwrites; admission is not proof of replica delivery. Recovery and fusion: enricher://docs/enrichment-and-fusion. By default the job runs on YOUR model (use_platform_models=false, no explicit model): the call returns the job status as soon as the first model call waits for you (llm_requests), or at the terminal state; a classification warning then pauses the job for answer_job_question instead of returning classification_warning, and enable_web_search must be decided (omitted returns web_search_undecided). On platform models the call blocks until completion.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"entity_data": "<entity_data>"
},
"name": "enrich_entity"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| models | No | Model composite keys; omit (or pass ['auto']) for one automatically selected model: YOUR model, or with use_platform_models=true the organization's best model for enrichment from its benchmark scores (quality/speed/cost weights), within the run's constraints (attachments, web search, thinking) — the result reports the pick as model_selection. auto alone never fuses. Name provider::model keys only when the user named them; that runs the job on the platform (billed), and two or more fuse. Keys and model-count limits: list_models. | |
| strategy | No | auto (default — server picks from the schema) | single_pass (simple schemas, 1 LLM call) | expert_domains (medium schemas with clear domains) | multi_expertise (large multi-domain schemas, parallel per-expertise calls — best quality, higher cost) | auto |
| languages | No | ISO 639-1 codes; defaults to ['en'] server-side. The first language is the primary one used for all non-multilingual string fields; multilingual fields get one value per language. | |
| schema_id | No | UUID of a saved schema. Mutually exclusive with target_schema. | |
| entity_data | Yes | Entity identifiers and supplied values. Read get_schema.input_contract first: preserve paths and keys for supplied array items are required. Identifying field names are guidance; arbitrary names are accepted. | |
| database_sync | No | Whether this run feeds the schema's entity layer and linked databases. Leave true for normal enrichments. Set false for the one-model recovery leg of a failed fusion run (see the recovery ladder above): the merge_records call that follows is what should write, so the intermediate single-model write is skipped. The record itself is still saved either way. | |
| target_schema | No | Inline JSON Schema document in the supported Entity Enricher dialect; prefer schema_id. Format: enricher://docs/schema-reference. | |
| attachment_ids | No | UUIDs of attachments (from upload_attachment) to provide as source material for this enrichment. | |
| timeout_seconds | No | Wall-clock cap. Past it the call returns `enrichment_timeout` with the job_id and the job is cancelled — a leg still in flight may finish and persist a partial record, reachable via list_records(job_id=...) and recoverable with retry_expertises. Multi-model fusion runs and reasoning models routinely need more than the default; raise it or use start_batch_enrichment (async). | |
| reasoning_effort | No | Thinking (reasoning) opt-in: low, medium or high; omitted = off. On the platform, auto then picks only a model whose reasoning the platform can pilot, and the effort is translated per provider. On YOUR model, apply the effort yourself when you run the requests. | |
| arbitration_model | No | Optional LLM model key used to resolve fusion conflicts when 2+ models are selected. Without this, conflicts are resolved by deterministic voting. | |
| enable_web_search | No | On your model (the default), true asks you to ground the answers with your own web search tool and false not to; omitted returns web_search_undecided so you ask the user first. On platform models, true enables the provider's builtin search where the model supports it (omitted = false). | |
| use_platform_models | No | false (default): every LLM call of this job runs on YOUR model — the job parks each call as a pending request you answer with answer_llm_request; no credits are consumed. true: the job runs on the platform (billed) and, with the model left on auto, on the organization's best model for the task — its highest blended benchmark score under the organization's quality/speed/cost weights, among the models that satisfy the run (attachments, web search, thinking). Naming a platform model also runs the job there, bypassing that pick: do it only when the user named one. Protocol: enricher://docs/llm-delegation. | |
| classification_model | No | Optional pre-flight classifier model key. When set, the entity is type-checked before enrichment to catch mismatches. | |
| force_after_classification_warning | No | Set to true to bypass a previous classification warning. Use only after explicit user confirmation. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||