---
title: "Update Persona"
method: PUT
path: "/v1/personas/{id}"
tags: ["Agent Environment", "personas"]
---

# Update Persona

`PUT /v1/personas/{id}`

Update an existing persona.

Supports partial updates - only provided fields will be updated.
Requires persona:write permission.

## Path parameters

- `id` string, uuid, required

## Request body

- PersonaUpdate — Request model for updating a persona. All fields are optional.
  - `name` string, nullable
  - `description` string, nullable
  - `role` string, nullable
  - `role_description` string, nullable
  - `knowledge_level` 'beginner' | 'intermediate' | 'advanced' | 'expert' — Knowledge level of the persona.
  - `skill_level` 'novice' | 'competent' | 'proficient' | 'expert' — Skill level of the persona.
  - `intent` 'benign' | 'curious' | 'adversarial' | 'malicious' — Intent type of the persona.
  - `language` string, nullable
  - `access_permissions` union
    - PersonaAccessPermissions — Access permissions for persona - used for test scenario definition. NOTE: This is NOT for actual RBAC enforcement - it defines expected access for generating test cases to verify agent access control.
      - `privilege_level` 'guest' | 'user' | 'power_user' | 'admin' | 'super_admin' — Privilege level for persona access control testing.
      - `allowed_agents` string[], nullable
      - `allowed_tools` string[], nullable
      - `restricted_actions` string[], nullable
      - `data_access_scope` 'own' | 'team' | 'organization' | 'global' — Data access scope for persona testing.
    - object
  - `is_preset` boolean, nullable
  - `preset_category` string, nullable
  - `tags` string[], nullable
  - `icon_filename` string, nullable

## Response `200`

Successful Response

- Persona — Domain model for Persona archetype.
  - `id` string, uuid, required
  - `team_id` string, uuid, required
  - `name` string, required
  - `description` string, nullable
  - `role` string, required
  - `role_description` string, nullable
  - `knowledge_level` 'beginner' | 'intermediate' | 'advanced' | 'expert' — Knowledge level of the persona.
  - `skill_level` 'novice' | 'competent' | 'proficient' | 'expert' — Skill level of the persona.
  - `intent` 'benign' | 'curious' | 'adversarial' | 'malicious' — Intent type of the persona.
  - `language` string
  - `access_permissions` union
    - PersonaAccessPermissions — Access permissions for persona - used for test scenario definition. NOTE: This is NOT for actual RBAC enforcement - it defines expected access for generating test cases to verify agent access control.
      - `privilege_level` 'guest' | 'user' | 'power_user' | 'admin' | 'super_admin' — Privilege level for persona access control testing.
      - `allowed_agents` string[], nullable
      - `allowed_tools` string[], nullable
      - `restricted_actions` string[], nullable
      - `data_access_scope` 'own' | 'team' | 'organization' | 'global' — Data access scope for persona testing.
    - object
  - `is_preset` boolean
  - `preset_category` string, nullable
  - `tags` string[], nullable
  - `icon_filename` string, nullable
  - `created_at` integer, required
  - `updated_at` integer, required
  - `created_by` string, uuid, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/vijilai/apis/vijil-console-api-combined.md) · [All operations](https://skmtc.net/vijilai/apis/vijil-console-api-combined/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vijilai/vijil-console-api-combined/versions/a8b2ee2b2d06/schema)
