## Update Message

`messages.update(strmessage_id, MessageUpdateParams**kwargs)  -> TaskMessage`

**put** `/messages/{message_id}`

Update Message

### Parameters

- `message_id: str`

- `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`

- `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.update(
    message_id="message_id",
    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"
}
```
