publicFields | no | array of object | — | — | Power-user-visible profile fields. Each: { key (snake_case), label, description, type (string|longtext|enum|multi_enum|boolean|integer|date), options (for enum), required, elicitationPriority (high|medium|low|never), elicitationPrompt }. |
privateFields | no | array of object | — | — | Agent-only working notes. Each: { key (snake_case), label, guidance, maxLength, retentionPolicy (persistent|rolling), rollingLimit }. A field may instead be a structured, queryable list by adding kind:‘record_array’ with keyField (the upsert key), recordSchema:{ fields:[{ key, type (string|number|integer|boolean|date), required? }] }, and optional maxRecords. The agent upserts records via update_user_memory and filters them with query_user_memory_field. |