# Agent Workspace

Source: https://opvs.ai/docs/api/agent-workspace

## `POST` /api/v1/agents/personas/{persona_id}/skills

**Assign Skills**

Assign skills to a deployed persona's agent workspace.

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/skills' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/skills",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/skills", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/skills", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/soul

**Get Soul**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/soul

**Update Soul**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/agents-md

**Get Agents Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/agents-md

**Update Agents Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/memory-md

**Get Memory Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/memory-md

**Update Memory Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/user-md

**Get User Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/user-md

**Update User Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/identity-md

**Get Identity Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/identity-md

**Update Identity Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/tools-md

**Get Tools Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/tools-md

**Update Tools Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/heartbeat-md

**Get Heartbeat Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/heartbeat-md

**Update Heartbeat Md**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/users

**List User Profiles**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/agents/personas/{persona_id}/users

**Create User Profile**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/users/{key}

**Get User Profile**

**Parameters**

- `persona_id` (path, string, required)
- `key` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/users/{key}

**Update User Profile**

**Parameters**

- `persona_id` (path, string, required)
- `key` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `DELETE` /api/v1/agents/personas/{persona_id}/users/{key}

**Delete User Profile**

**Parameters**

- `persona_id` (path, string, required)
- `key` (path, string, required)

```bash
curl -X DELETE 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.delete(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/memory

**List Memory Notes**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/memory/{date}

**Get Memory Note**

**Parameters**

- `persona_id` (path, string, required)
- `date` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/agents/personas/{persona_id}/memory/{date}

**Append Memory Note**

**Parameters**

- `persona_id` (path, string, required)
- `date` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/memory/{date}

**Replace Memory Note**

**Parameters**

- `persona_id` (path, string, required)
- `date` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `DELETE` /api/v1/agents/personas/{persona_id}/memory/{date}

**Delete Memory Note**

**Parameters**

- `persona_id` (path, string, required)
- `date` (path, string, required)

```bash
curl -X DELETE 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.delete(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/workspace

**List Workspace Files**

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/agents/personas/{persona_id}/workspace/bulk

**Bulk Write Workspace**

Write multiple workspace files in a single request (max 50 files).

**Parameters**

- `persona_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/bulk' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/bulk",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/bulk", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/bulk", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/agents/personas/{persona_id}/workspace/{path}

**Get Workspace File**

**Parameters**

- `persona_id` (path, string, required)
- `path` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `PUT` /api/v1/agents/personas/{persona_id}/workspace/{path}

**Write Workspace File**

**Parameters**

- `persona_id` (path, string, required)
- `path` (path, string, required)

```bash
curl -X PUT 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.put(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}", {
  method: "PUT",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("PUT", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `DELETE` /api/v1/agents/personas/{persona_id}/workspace/{path}

**Delete Workspace File**

**Parameters**

- `persona_id` (path, string, required)
- `path` (path, string, required)

```bash
curl -X DELETE 'https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.delete(
    "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `GET` /api/v1/employees/hires/{hire_id}/workspace

**Get Hired Workspace Policy**

Return owner, state and shipped vendor revision for all seven files.

**Parameters**

- `hire_id` (path, string, required)

```bash
curl -X GET 'https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.get(
    "https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/employees/hires/{hire_id}/workspace/{file_name}/apply-update

**Apply Hired Workspace Vendor Update**

Replace one vendor file with the current recorded vendor revision.

**Parameters**

- `hire_id` (path, string, required)
- `file_name` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace/{file_name}/apply-update' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace/{file_name}/apply-update",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace/{file_name}/apply-update", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace/{file_name}/apply-update", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `200` — Successful Response
- `422` — Validation Error

## `POST` /api/v1/employees/hires/{hire_id}/copy

**Copy Hired Workspace To Own Agent**

Create a separate own persona with the hire's seven live files.

**Parameters**

- `hire_id` (path, string, required)

```bash
curl -X POST 'https://app.opvs.ai/api/v1/employees/hires/{hire_id}/copy' \
  -H 'Authorization: Bearer <token>'
```

```python
import httpx

resp = httpx.post(
    "https://app.opvs.ai/api/v1/employees/hires/{hire_id}/copy",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
```

```javascript
const resp = await fetch("https://app.opvs.ai/api/v1/employees/hires/{hire_id}/copy", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
```

```go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://app.opvs.ai/api/v1/employees/hires/{hire_id}/copy", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}
```

**Responses**

- `201` — Successful Response
- `422` — Validation Error

## Assign Skills

`POST https://app.opvs.ai/api/v1/agents/personas/{persona_id}/skills`

Assign skills to a deployed persona's agent workspace.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Soul

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Soul

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/soul`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Agents Md

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Agents Md

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/agents-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Memory Md

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Memory Md

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get User Md

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update User Md

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/user-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Identity Md

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Identity Md

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/identity-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Tools Md

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Tools Md

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/tools-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Heartbeat Md

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update Heartbeat Md

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/heartbeat-md`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## List User Profiles

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Create User Profile

`POST https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get User Profile

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Update User Profile

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Delete User Profile

`DELETE https://app.opvs.ai/api/v1/agents/personas/{persona_id}/users/{key}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## List Memory Notes

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Memory Note

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Append Memory Note

`POST https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Replace Memory Note

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Delete Memory Note

`DELETE https://app.opvs.ai/api/v1/agents/personas/{persona_id}/memory/{date}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## List Workspace Files

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Bulk Write Workspace

`POST https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/bulk`

Write multiple workspace files in a single request (max 50 files).

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Workspace File

`GET https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Write Workspace File

`PUT https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Delete Workspace File

`DELETE https://app.opvs.ai/api/v1/agents/personas/{persona_id}/workspace/{path}`

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Get Hired Workspace Policy

`GET https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace`

Return owner, state and shipped vendor revision for all seven files.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Apply Hired Workspace Vendor Update

`POST https://app.opvs.ai/api/v1/employees/hires/{hire_id}/workspace/{file_name}/apply-update`

Replace one vendor file with the current recorded vendor revision.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |

## Copy Hired Workspace To Own Agent

`POST https://app.opvs.ai/api/v1/employees/hires/{hire_id}/copy`

Create a separate own persona with the hire's seven live files.

| Code | When | What to do |
| --- | --- | --- |
| 422 | Validation Error |  |
