> ## Documentation Index
> Fetch the complete documentation index at: https://docs.noclick.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conversations and memory

> Keep agent context across runs with conversation keys, set automatically by channel triggers or manually with references.

Agents persist their chat history. The **Conversation Key** field (under **Advanced** in the agent's config panel) controls which history a run continues: same key, same conversation. All six harnesses persist history, including the CLI agents.

## How keys work

* Histories are scoped to the workflow and the agent node, then to the key. Two agents never share a conversation, even with the same key value.
* If no key is set, each manual run or chat session stands on its own history thread.
* The key can be a static string or a reference like `{{nodeId.field}}`, so you can derive it from upstream data, for example one conversation per customer ID.

## Channel triggers set the key automatically

When a channel trigger is wired directly into the agent, the fired event supplies the key:

| Trigger                     | Automatic key                                                                                  |
| --------------------------- | ---------------------------------------------------------------------------------------------- |
| Telegram message            | The chat ID, so each chat is its own conversation                                              |
| Slack message               | Channel + thread for channel messages, channel for DMs, so each thread is its own conversation |
| [Alarm](/agents/scheduling) | The key captured when the agent scheduled the alarm                                            |

A fired trigger's key takes priority over the configured **Conversation Key**, so a Telegram agent with a fallback key still keeps per-chat threads.

## Resetting a conversation

Change the key. A new value starts a fresh history; switching back to an old value resumes that thread. There is no separate clear button: the key is the identity of the conversation.

<Note>
  The [filesystem node](/agents/files-and-repos) has a **Per Conversation Key** volume mode that gives each conversation its own isolated storage, useful when each user of a channel agent needs separate files.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Channel agents" href="/agents/channel-agents">
    Threaded Slack and Telegram agents that remember each chat.
  </Card>

  <Card title="Data references" href="/editor/data-references">
    Reference syntax for dynamic conversation keys.
  </Card>
</CardGroup>
