Control channel behavior
Two decisions shape how an agent feels in a chat platform: where its replies appear, and whether each thread is a separate conversation. Both are one setting.
[channel]
reply_mode = "thread"| Mode | Where replies go | Session behavior |
|---|---|---|
channel | In the source conversation | One session for the conversation |
thread | In a thread, where the platform supports it | One session for the conversation |
thread_isolated | In a thread | Each thread is its own agent session |
thread_isolated is the one to reach for when several people use the same agent in the same busy
channel. Without it, everyone's questions share a history, and the agent starts answering one
person using another person's context.
A run that parks on a question does not go quiet in the channel. The question is posted as its own message, with a note that answering happens in the app; when it resolves anywhere - answered, timed out, or cancelled - the channel posts the outcome.
Write for the destination
Chat is a narrow column on someone's phone as often as it is a desktop window. Design the agent's
response_format accordingly:
- Keep replies compact. The model will happily produce a thousand words.
- Avoid very large tables. They wrap badly on every platform.
- Return big generated output as an artifact rather than pasting it.
Next
- Return artifacts - the right home for large output.
- Create your first agent - where
response_formatlives. - - per-adapter behavior and limits.