Change a target's profile
update_target_profileChange content fields of a target's profile by name. Pass them in changes, for example {"purpose": "...", "forbidden_actions": ["..."]}. A field left out stays as it is. Null empties text that may be empty (system_prompt, user_access, test_account, public_data) and sets multi_agent or has_persistent_memory back to unknown; any other field needs a value. A list is replaced whole, so send every line to keep. A tool is {name, description, parameters}, a user type {name, auth_level, description}. Only what the change alters becomes the customer's; it applies at once, and the profile's history records the key that made it, or for a connected app the person who connected it. Pass the profile_id and version from get_target_profile; leave both out to create the profile of a target that has none. Each tool and user type needs its own name. Ids, who wrote what and dismissals cannot be written, and a value that still holds an [UNTRUSTED:…] fence is refused: send the text between the fence tags, and a tool's parameters as an object. A value sent back unchanged stays as it is. Returns the profile's id and new version. Requires the write scope.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | Content fields to change, by name: every field auto-discovery merges. A field left out stays as it is. Null empties text that may be empty (system_prompt, user_access, test_account, public_data) and sets multi_agent or has_persistent_memory back to unknown; any other field needs a value. A list is replaced whole, so send every item to keep. Only what the change alters becomes the customer's. | |
| version | No | ||
| model_id | Yes | ||
| profile_id | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | The profile's version now; send it with the next change. | |
| model_id | Yes | ||
| profile_id | Yes |