Message type from aion-authoring-langgraph.
The goal is to give LangGraph authors a stable, provider-neutral view of the
current inbound message without making them inspect raw Slack, Telegram, or
other provider payloads directly.
Properties
| Property | Purpose |
|---|---|
id | Stable message identifier for the inbound turn |
text | Plain-text body when one exists |
user.id | Identifier for the user who triggered the event |
thread | Bound Thread object for the current conversation |
raw | Optional raw provider payload or raw A2A part access |
Methods
| Method | Purpose |
|---|---|
reply(content, *, metadata=None) | Convenience wrapper around message.thread.reply(...) |
react(key, *, operation="add", display_value=None) | Express a normalized reaction against the current message |
Methods Detail
reply(content, *, metadata=None)
Add a durable reply to the message in the current thread.
This is a convenience wrapper around message.thread.reply(...). It sends the reply to the same thread where the message arrived.
| Parameter | Type | Description |
|---|---|---|
content | str | AIMessage | async iterator | Message content: plain text, LangChain message, or stream of chunks |
metadata | Optional[dict] | Optional metadata to attach to the reply |
None if the reply failed.
Example:
react(key, *, operation="add", display_value=None)
Express a normalized reaction against the current message.
| Parameter | Type | Description |
|---|---|---|
key | str | Reaction identifier (e.g., thumbsup, heart, thinking_face) |
operation | Literal["add", "remove"] | Whether to add or remove the reaction (default: "add") |
display_value | Optional[str] | Human-readable reaction text; if not provided, uses the reaction key |
context_id and message_id in its payload. Logs a warning if the event context is unavailable.
Example
Relation to Other Event Kinds
Not every inbound turn is a plain message. Reaction, command, and card-action turns are better modeled as event kinds with specialized metadata. For those turns:runtime.context.eventshould remain authoritativethread.messagemay still be populated when the provider exposes a meaningful message anchor- handler registration should happen through Event Handlers