> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs-beta.getzep.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-beta.getzep.com/_mcp/server.

# Plan an Agent split

POST https://api.getzep.com/api/v4/agents/{agent_uuid}/split-plan
Content-Type: application/json

Reference: https://docs-beta.getzep.com/sdk-reference/agent/split/plan

## Authentication

- `Authorization` header (required) (prefixed with ` Api-Key  `) — Type "Api-Key" followed by a space and the project API key.

## Request

### Path parameters

- `agent_uuid` (string, required) — Source Agent UUID

### Body (application/json)

This endpoint expects a v4.CreateAgentSplitPlanRequest.

- `destinations` (list of v4.AgentSplitPlanDestinationRequest, required)
- `expected_revision` (integer, required)
- `rationale` (string, required)
- `review_acknowledged` (boolean, required)

## Response

### 200

OK

- `authorizes_agent_creation` (boolean, optional)
- `authorizes_publication` (boolean, optional)
- `creates_resources` (boolean, optional) — A split plan is not human approval and grants no authority for later commands.
- `destinations` (list of v4.AgentSplitPlanDestination, optional)
- `rationale` (string, optional)
- `review_acknowledged` (boolean, optional)
- `source` (v4.AgentSplitPlanSource, optional)

## Errors

### 400 Bad Request Error

Bad Request

- `error` (v4.ErrorBody, optional)

### 401 Unauthorized Error

Unauthorized

- `error` (v4.ErrorBody, optional)

### 403 Forbidden Error

Forbidden

- `error` (v4.ErrorBody, optional)

### 404 Not Found Error

Not Found

- `error` (v4.ErrorBody, optional)

### 409 Conflict Error

Conflict

- `error` (v4.ErrorBody, optional)

## Types

### v4.AgentSplitPlanDestinationRequest

- `agent` (v4.CreateAgentRequest, required)
- `skills` (list of v4.AgentSplitPlanSkillSelectionRequest, required)

### v4.AgentSplitPlanDestination

- `agent` (v4.CreateAgentRequest, optional)
- `skills` (list of v4.AgentSplitPlanSkillReference, optional)

### v4.AgentSplitPlanSource

- `agent_uuid` (string, optional)
- `revision` (integer, optional)

### v4.ErrorBody

- `code` (string, optional)
- `details` (map from string to any, optional)
- `message` (string, optional)
- `param` (string, optional)
- `request_id` (string, optional)

### v4.CreateAgentRequest

- `agent_id` (string, required) — The developer-assigned Agent identifier, unique within the project.
- `name` (string, required) — The Agent's display name.
- `security_domain` (string, required) — The immutable boundary within which Skills may be synthesized. 1 to 200 characters of lowercase letters, digits, and the characters : . - _
- `deployment_id` (string, optional) — The customer deployment this Agent represents.
- `description` (string, optional) — A human-readable description of the Agent.
- `memory_settings` (v4.AgentMemorySettings, optional) — Agent Memory capture, compilation, and promotion settings.
- `metadata` (map from string to any, optional) — Developer metadata used to organize and filter Agents.
- `version` (string, optional, default: default) — The customer deployment version this Agent represents. If you omit it, the version is "default".

### v4.AgentSplitPlanSkillSelectionRequest

- `skill_uuid` (string, required)
- `skill_version_uuid` (string, required)
- `version` (integer, required)

### v4.AgentSplitPlanSkillReference

- `package_name` (string, optional)
- `skill_id` (string, optional)
- `skill_uuid` (string, optional)
- `skill_version_uuid` (string, optional)
- `status` (string, optional)
- `version` (integer, optional)

### v4.AgentMemorySettings

- `admission_evaluation_requirements` (list of v4.AgentMemoryEvaluationPolicy, optional)
- `approval` (enum, optional)
  - Allowed values: `manual`, `auto`
- `approval_minimum_attempt_families` (integer, optional)
- `approval_required_tools` (list of string, optional) — ApprovalRequiredTools lists the tool names that need a member approval in auto approval. A generated Skill that uses one of these tools waits for a member. The default is an empty list.
- `auto_approval_task_families` (list of string, optional)
- `compilation_mode` (enum, optional)
  - Allowed values: `scheduled`, `manual`, `on_close`
- `provisional_expiry_days` (integer, optional) — ProvisionalExpiryDays is the period after which Zep retires a provisional Skill that no application used. When it is not set, provisional Skills do not expire.
- `provisional_skill_limit` (integer, optional) — ProvisionalSkillLimit is the maximum count of provisional Skills in one task family. Over the limit, a new provisional Skill waits for a member. When it is not set, no limit applies.
- `retention_days` (integer, optional)

### v4.AgentMemoryEvaluationPolicy

- `requirements` (list of v4.AgentMemoryEvaluationRequirement, required)
- `task_family` (string, required)

### v4.AgentMemoryEvaluationRequirement

- `evaluated_by` (string, required)
- `evaluator_version` (string, required)
- `result` (string, required)
- `controlled` (boolean, optional)
- `environment` (string, optional)

## Examples

**Request**

```json
{
  "destinations": [
    {
      "agent": {
        "agent_id": "string",
        "name": "string",
        "security_domain": "string"
      },
      "skills": [
        {
          "skill_uuid": "string",
          "skill_version_uuid": "string",
          "version": 1
        }
      ]
    }
  ],
  "expected_revision": 1,
  "rationale": "string",
  "review_acknowledged": true
}
```

**Response**

```json
{
  "authorizes_agent_creation": true,
  "authorizes_publication": true,
  "creates_resources": true,
  "destinations": [
    {
      "agent": {
        "agent_id": "string",
        "name": "string",
        "security_domain": "string",
        "deployment_id": "string",
        "description": "string",
        "memory_settings": {
          "admission_evaluation_requirements": [
            {
              "requirements": [
                {
                  "evaluated_by": "string",
                  "evaluator_version": "string",
                  "result": "string",
                  "controlled": true,
                  "environment": "string"
                }
              ],
              "task_family": "string"
            }
          ],
          "approval": "manual",
          "approval_minimum_attempt_families": 1,
          "approval_required_tools": [
            "string"
          ],
          "auto_approval_task_families": [
            "string"
          ],
          "compilation_mode": "scheduled",
          "provisional_expiry_days": 1,
          "provisional_skill_limit": 1,
          "retention_days": 1
        },
        "metadata": {},
        "version": "default"
      },
      "skills": [
        {
          "package_name": "string",
          "skill_id": "string",
          "skill_uuid": "string",
          "skill_version_uuid": "string",
          "status": "string",
          "version": 1
        }
      ]
    }
  ],
  "rationale": "string",
  "review_acknowledged": true,
  "source": {
    "agent_uuid": "string",
    "revision": 1
  }
}
```