---
title: Loading Agent State
description: Learn how threadId is used to load previous agent states.
icon: "lucide/ChartBar"
---

### Setting the threadId

When setting the `threadId` property in CopilotKit, i.e:

<Callout>When using LangGraph platform, the `threadId` must be a UUID.</Callout>

```tsx
<CopilotKit threadId="2140b272-7180-410d-9526-f66210918b13">
  <YourApp />
</CopilotKit>
```

CopilotKit will restore the complete state of the thread, including the messages, from the database. (See [Message Persistence](/langgraph/advanced/persistence/message-persistence) for more details.)

### Loading Agent State

This means that the state of any agent will also be restored. For example:

```tsx
const { agent } = useAgent({ agentId: "research_agent" });

// agent.state will now be the state of research_agent in the thread id given above
```

### Learn More

To learn more about persistence and state in CopilotKit, see:

- [Reading agent state](/langgraph/shared-state/in-app-agent-read)
- [Writing agent state](/langgraph/shared-state/in-app-agent-write)
- [Loading Message History](/langgraph/advanced/persistence/loading-message-history)
