## Create Message

`messages.create(MessageCreateParams**kwargs)  -> TaskMessage`

**post** `/messages`

Create Message

### Parameters

- `content: TaskMessageContentParam`

  - `class TextContent: …`

    - `author: MessageAuthor`

      The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

      - `"user"`

      - `"agent"`

    - `content: str`

      The contents of the text message.

    - `attachments: Optional[List[Attachment]]`

      Optional list of file attachments with structured metadata.

      - `file_id: str`

        The unique ID of the attached file

      - `name: str`

        The name of the file

      - `size: int`

        The size of the file in bytes

      - `type: str`

        The MIME type or content type of the file

    - `format: Optional[TextFormat]`

      The format of the message. This is used by the client to determine how to display the message.

      - `"markdown"`

      - `"plain"`

      - `"code"`

    - `style: Optional[MessageStyle]`

      The style of the message. This is used by the client to determine how to display the message.

      - `"static"`

      - `"active"`

    - `type: Optional[Literal["text"]]`

      The type of the message, in this case `text`.

      - `"text"`

  - `class ReasoningContent: …`

    - `author: MessageAuthor`

      The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

    - `summary: List[str]`

      A list of short reasoning summaries

    - `content: Optional[List[str]]`

      The reasoning content or chain-of-thought text

    - `style: Optional[MessageStyle]`

      The style of the message. This is used by the client to determine how to display the message.

    - `type: Optional[Literal["reasoning"]]`

      The type of the message, in this case `reasoning`.

      - `"reasoning"`

  - `class DataContent: …`

    - `author: MessageAuthor`

      The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

    - `data: Dict[str, object]`

      The contents of the data message.

    - `style: Optional[MessageStyle]`

      The style of the message. This is used by the client to determine how to display the message.

    - `type: Optional[Literal["data"]]`

      The type of the message, in this case `data`.

      - `"data"`

  - `class ToolRequestContent: …`

    - `arguments: Dict[str, object]`

      The arguments to the tool.

    - `author: MessageAuthor`

      The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

    - `name: str`

      The name of the tool that is being requested.

    - `tool_call_id: str`

      The ID of the tool call that is being requested.

    - `style: Optional[MessageStyle]`

      The style of the message. This is used by the client to determine how to display the message.

    - `type: Optional[Literal["tool_request"]]`

      The type of the message, in this case `tool_request`.

      - `"tool_request"`

  - `class ToolResponseContent: …`

    - `author: MessageAuthor`

      The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

    - `content: object`

      The result of the tool.

    - `name: str`

      The name of the tool that is being responded to.

    - `tool_call_id: str`

      The ID of the tool call that is being responded to.

    - `is_error: Optional[bool]`

      Whether the tool call resulted in an error. `None` when the harness does not report a status.

    - `style: Optional[MessageStyle]`

      The style of the message. This is used by the client to determine how to display the message.

    - `type: Optional[Literal["tool_response"]]`

      The type of the message, in this case `tool_response`.

      - `"tool_response"`

- `task_id: str`

- `created_at: Optional[Union[str, datetime, null]]`

  Optional timestamp for the message. Workflow callers should pass workflow.now() (Temporal's deterministic monotonic clock) so that two awaited messages.create calls from the same workflow are guaranteed to have monotonic timestamps regardless of HTTP scheduling at the server. If omitted, the server's wall clock at insert time is used.

- `streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]]`

  - `"IN_PROGRESS"`

  - `"DONE"`

### Returns

- `class TaskMessage: …`

  Represents a message in the agent system.

  This entity is used to store messages in MongoDB, with each message
  associated with a specific task.

  - `content: TaskMessageContent`

    The content of the message. This content is not OpenAI compatible. These are messages that are meant to be displayed to the user.

    - `class TextContent: …`

      - `author: MessageAuthor`

        The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

        - `"user"`

        - `"agent"`

      - `content: str`

        The contents of the text message.

      - `attachments: Optional[List[Attachment]]`

        Optional list of file attachments with structured metadata.

        - `file_id: str`

          The unique ID of the attached file

        - `name: str`

          The name of the file

        - `size: int`

          The size of the file in bytes

        - `type: str`

          The MIME type or content type of the file

      - `format: Optional[TextFormat]`

        The format of the message. This is used by the client to determine how to display the message.

        - `"markdown"`

        - `"plain"`

        - `"code"`

      - `style: Optional[MessageStyle]`

        The style of the message. This is used by the client to determine how to display the message.

        - `"static"`

        - `"active"`

      - `type: Optional[Literal["text"]]`

        The type of the message, in this case `text`.

        - `"text"`

    - `class ReasoningContent: …`

      - `author: MessageAuthor`

        The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

      - `summary: List[str]`

        A list of short reasoning summaries

      - `content: Optional[List[str]]`

        The reasoning content or chain-of-thought text

      - `style: Optional[MessageStyle]`

        The style of the message. This is used by the client to determine how to display the message.

      - `type: Optional[Literal["reasoning"]]`

        The type of the message, in this case `reasoning`.

        - `"reasoning"`

    - `class DataContent: …`

      - `author: MessageAuthor`

        The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

      - `data: Dict[str, object]`

        The contents of the data message.

      - `style: Optional[MessageStyle]`

        The style of the message. This is used by the client to determine how to display the message.

      - `type: Optional[Literal["data"]]`

        The type of the message, in this case `data`.

        - `"data"`

    - `class ToolRequestContent: …`

      - `arguments: Dict[str, object]`

        The arguments to the tool.

      - `author: MessageAuthor`

        The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

      - `name: str`

        The name of the tool that is being requested.

      - `tool_call_id: str`

        The ID of the tool call that is being requested.

      - `style: Optional[MessageStyle]`

        The style of the message. This is used by the client to determine how to display the message.

      - `type: Optional[Literal["tool_request"]]`

        The type of the message, in this case `tool_request`.

        - `"tool_request"`

    - `class ToolResponseContent: …`

      - `author: MessageAuthor`

        The role of the messages author, in this case `system`, `user`, `assistant`, or `tool`.

      - `content: object`

        The result of the tool.

      - `name: str`

        The name of the tool that is being responded to.

      - `tool_call_id: str`

        The ID of the tool call that is being responded to.

      - `is_error: Optional[bool]`

        Whether the tool call resulted in an error. `None` when the harness does not report a status.

      - `style: Optional[MessageStyle]`

        The style of the message. This is used by the client to determine how to display the message.

      - `type: Optional[Literal["tool_response"]]`

        The type of the message, in this case `tool_response`.

        - `"tool_response"`

  - `task_id: str`

    ID of the task this message belongs to

  - `id: Optional[str]`

    The task message's unique id

  - `created_at: Optional[datetime]`

    The timestamp when the message was created

  - `streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]]`

    - `"IN_PROGRESS"`

    - `"DONE"`

  - `updated_at: Optional[datetime]`

    The timestamp when the message was last updated

### Example

```python
import os
from agentex import Agentex

client = Agentex(
    api_key=os.environ.get("AGENTEX_SDK_API_KEY"),  # This is the default and can be omitted
)
task_message = client.messages.create(
    content={
        "author": "user",
        "content": "content",
        "type": "text",
    },
    task_id="task_id",
)
print(task_message.task_id)
```

#### Response

```json
{
  "content": {
    "author": "user",
    "content": "content",
    "attachments": [
      {
        "file_id": "file_id",
        "name": "name",
        "size": 0,
        "type": "type"
      }
    ],
    "format": "markdown",
    "style": "static",
    "type": "text"
  },
  "task_id": "task_id",
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "streaming_status": "IN_PROGRESS",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```
