Conversations
Threads and messages.
4 actions. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.
conversations.list
GET
List conversations (internal channels + DMs + Slack/Discord mirrors + Twitter DMs + email threads).
- AI tool:
conversations_list - API:
GET /api/invoke/conversations.list
Input
| Field | Type | Required | Description |
|---|---|---|---|
provider |
string | — | |
missionId |
string | — | |
subjectId |
string | — | |
archived |
boolean | — | |
limit |
integer | — | |
offset |
integer | — | |
orderBy |
string | — | |
orderDir |
"asc" | "desc" | — | |
q |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"missionId": {
"type": "string",
"minLength": 1
},
"subjectId": {
"type": "string",
"minLength": 1
},
"archived": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"orderBy": {
"type": "string"
},
"orderDir": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"q": {
"type": "string"
}
}
}conversations.create
POST · mutating
Create an internal channel or DM. Members can be human or agent actors.
- AI tool:
conversations_create - API:
POST /api/invoke/conversations.create
Input
| Field | Type | Required | Description |
|---|---|---|---|
kind |
"internal-channel" | "internal-dm" | "slack-channel" | "discord-channel" | "twitter-dm" | "sms" | "email-thread" | — | |
provider |
"internal" | "slack" | "discord" | "twitter" | "sms" | "email" | — | |
name |
string | yes | |
description |
string | — | |
externalRef |
union | — | |
externalUrl |
union | — | |
missionId |
union | — | |
subjectId |
union | — | |
memberIds |
string[] | — | |
archived |
boolean | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"kind": {
"default": "internal-channel",
"type": "string",
"enum": [
"internal-channel",
"internal-dm",
"slack-channel",
"discord-channel",
"twitter-dm",
"sms",
"email-thread"
]
},
"provider": {
"default": "internal",
"type": "string",
"enum": [
"internal",
"slack",
"discord",
"twitter",
"sms",
"email"
]
},
"name": {
"type": "string"
},
"description": {
"default": "",
"type": "string"
},
"externalRef": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"externalUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"missionId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"subjectId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"memberIds": {
"default": [],
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"archived": {
"default": false,
"type": "boolean"
}
},
"required": [
"name"
]
}conversations.ensure_default
POST · mutating
Idempotently create the default internal #general channel with every actor as a member. Returns the channel.
- AI tool:
conversations_ensure_default - API:
POST /api/invoke/conversations.ensure_default
Input
No parameters.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {}
}conversations.messages
GET
List messages in a conversation, newest-first by default.
- AI tool:
conversations_messages - API:
GET /api/invoke/conversations.messages
Input
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | |
limit |
integer | — | |
before |
any | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 500
},
"before": {}
},
"required": [
"id"
]
}