showcase/shell-docs/src/content/docs/whats-new/v1-50.mdx
CopilotKit v1.50 is now available. This page gives an overview of what is new, what is coming, and what just stays the same.
Set your CopilotKit version to:
npm install @copilotkit/react-core@latest @copilotkit/react-ui@latest @copilotkit/runtime@latest
CopilotKit v1.50 is a major update. It includes requested features, internal simplifications, and improvements to existing core elements:
| Feature | Description |
|---|---|
| useAgent | Superset of useCoAgent with more control, including: Shared State, Time Travel, Multi-Agent Execution and Agent Mutual Awareness |
| Threads and Persistence | Multiple, long running and resumable, agent conversations |
| New Design System | Deeper UX customization |
| Direct to LLM Improvements | Shared state & Additional supported LLMs |
| Zod schema support | Type safe compilation and runtime |
| Simplified Infrastructure | Removal of GraphQL |
| Backwards Compatibility | All CopilotKit v 1.10 compatible apps can be updated to v 1.50 with no required coding changes |
Everything you’re already using continues to work. v1.50 is fully backwards compatible with client code using v1.10. In fact, as a first step in this pre-release period, we would love for you to start with just rebuilding, and let us know if you run into any problems.
As we said above, all of the v1 (or unversioned) hooks continue to work with v1.50. To take advantage of new hooks you’ll use those marked as /v2 (shown below).
You can opt into any of the new developer interfaces or keep using the old ones. Mixing is allowed in the following configurations:
New Chat component + old hooks
Old components + new hooks
New v2 APIs are exposed under a subpath:
import { CopilotKit, useAgent } from "@copilotkit/react-core/v2";
The v2 hook useAgent is a proper superset of useCoAgent which gives more control over the agent connection, including:
```tsx
const { agent } = useAgent({ agentId: "my-agent" });
agent.state
agent.setState
```
```tsx
const { agent } = useAgent({ agentId: "my-agent" });
agent.setMessages()
```
```tsx
const { agent: langgraph } = useAgent({ agentId: "langgraph" });
const { agent: pydantic } = useAgent({ agentId: "pydantic" });
[langgraph, pydantic].forEach((agent) => {
agent.addMessage({ id: crypto.randomUUID(), role: "user", content: message });
agent.runAgent();
});
```
You can even make agents aware of each other!
```tsx
const { agent: langgraph } = useAgent({ agentId: "langgraph" });
const { agent: pydantic } = useAgent({ agentId: "pydantic" });
langgraph.setMessages(pydantic.messages)
pydantic.setMessages(langgraph.messages)
```
v1.50 is available now, with useAgent fully ready. The other features (listed below) will be added as they come out in the near future.
v1.50 delivers support for threaded conversations, with built-in thread storage and connection components. For development, use InMemory or SQLite.
- **For development:** `InMemory` or `SQLite`
```tsx
const runtime = new CopilotRuntime({
agents: {
default: agent,
},
runner: new InMemoryAgentRunner(), // new abstraction for persistence
});
```
- **For production**
- Use the **Enterprise Intelligence Platform**, managed via **Copilot Cloud** or self-hosted via **Copilot Enterprise**, to persist threads, get automatic stream reconnection, and in-built product analytics. See the [Threads guide](/threads) to get started on the free Developer tier.
- **👉 Join the [Enterprise Early Access](https://go.copilotkit.ai/enterprise-threads-waitlist) form.**
- Loading a thread
```tsx
<CopilotChat threadId="xyz" /> // connects to runtime's runner
```
- Stream reconnection
```tsx
<CopilotChat threadId="xyz" /> // will reconnect if page is reloaded
```
You can continue to use the design system in the v1 interfaces, but v2 provides A full UI overhaul with deeper customization:
CopilotChat, CopilotSidebar, CopilotPopup
@copilotkit/react-core/v2Many CopilotKit hooks now take Zod schemas, enforcing type safety at both compile and run time.
useHumanInTheLoop - now takes Zod schemasuseFrontendTool - now takes Zod schemasuseRenderToolCall - new dev-experience principlesEarlier versions of CopilotKit required GraphQL installation. That is completely removed by the new architecture.
Our direct to LLM integration now supports more models and implements shared state.
const runtime = new CopilotRuntime({
agents: {
myAgent: new BuiltInAgent({
model: "openai/gpt-4o-mini", // much broader model support
prompt: "You are a helpful AI assistant.",
temperature: 0.7,
}),
},
});
const { agent } = useAgent({ agentId: "myAgent" });
const { state, setState } = agent;
If you run into anything unexpected:
Please raise an issue in the CopilotKit Discord support channel.
Your feedback is incredibly valuable at this stage.
If you’re using CopilotKit in a production product or business, we’d love to help.
You can schedule time with the team here: