Keeps the isolation fix and removes the concurrency mechanism, which two landings on main superseded while this branch was open. Isolation (kept, narrowed): - Clone the result of an `agent: (threadId) => ...` factory as well as the singleton config. #6256 already isolated the singleton path; a factory returning a shared instance was still handed to every turn un-isolated, carrying the previous turn's messages and lifecycle flags and serializing those turns behind one identity key in DeliveryAdapter.acquireAgent. - Reset `isRunning` / `abortController` on the clone as hygiene. Documented as such: `runAgent` reassigns `abortController` before every run, so an inherited aborted controller cannot by itself kill a follow-up turn. - Drop the `activeRunDetach$` / `activeRunCompletionPromise` resets. `clone()` copies a fixed field list that excludes both, so they were always undefined. - Document that `AbstractAgent.prototype.clone()` drops subclass-declared fields silently, and correct the clone() error text: a factory no longer bypasses cloning, so it is not an escape hatch. Concurrency mechanism (removed): - Restore `runner.run/stop({ threadId: canonicalThreadId })`. IntelligenceAgentRunner does not use this as a local map key; it sends it as `thread_id` when joining `ingestion:<runId>`, and the gateway resolves it against `cpki.threads`, so a `<threadId>::<runId>` value fails the join with `thread_not_found`. Added a regression guard asserting the canonical id. - Restore the unprefixed product thread lock. The gateway derives this same key in four places and reads its value as "which run is active on this thread". It is also the only mutual exclusion spanning runtime replicas, since DeliveryTransport's per-thread admission gate (#6257) is instance state. Also: - Forward `lockKeyPrefix` on cleanup in both the channel path and handlers/intelligence/run.ts, so a configured prefix releases the key it acquired instead of leaking it. - Collapse the four copy-pasted clone-patching test scaffolds into one `patchAgentAndClones` helper.
CopilotKit
Build agent-native applications — on any framework, on any surface.
Generative UI, shared state, and human-in-the-loop workflows for React, Angular, Vue, React Native — and beyond the browser.
What is CopilotKit
CopilotKit is a best-in-class SDK for building full-stack agentic applications, Generative UI, and chat applications.
What started as a React library is now a multi-platform agentic framework: the same agent can power your web app, your mobile app, and your team's Slack workspace.
We are the company behind the AG-UI Protocol - adopted by Google, LangChain, AWS, Microsoft, Mastra, PydanticAI, and more!
Quick Start
Up and running in under five minutes. All you need is an LLM key (OpenAI, Anthropic, Gemini, etc.).
npx copilotkit@latest create
Agent Skills
CopilotKit ships agent skills that teach your coding agent (Claude Code, Codex, Cursor, Gemini, and others) how to set up, build with, integrate, debug, and upgrade CopilotKit.
Install them into any project directory:
npx copilotkit@latest skills install
Run it again any time to refresh to the latest skills.
Bring Your App to Life
https://github.com/user-attachments/assets/72b7b4f3-b6e7-460c-a932-5746fe3c8db3
Features:
- Chat UI – A fully customizable chat interface that supports message streaming, tool calls, and agent responses.
- Backend Tool Rendering – Enables agents to call backend tools that return UI components rendered directly in the client.
- Generative UI – Allows agents to generate and update UI components dynamically at runtime based on user intent and agent state.
- Shared State – A synchronized state layer that both agents and UI components can read from and write to in real time.
- Human-in-the-Loop – Lets agents pause execution to request user input, confirmation, or edits before continuing.
- Self-Learning (early access) – Agents that continuously improve from user feedback via in-context reinforcement learning (CLHF).
🧩 Works With Your Stack
One agent backend. Every frontend.
| Platform | Status | Get Started |
|---|---|---|
| ⚛️ React / Next.js | ✅ GA | Quickstart |
| 🅰️ Angular | ✅ Supported | Source Code & Quickstart |
| 💚 Vue | ✅ Supported | Source Code - Quickstart coming soon |
| 📱 React Native | ✅ Supported | Quickstart |
| 💬 Slack / MS Teams / Discord / Google Chat | 🟡 Beta | Request early access |
Your agent logic stays the same — AG-UI handles the wire protocol, CopilotKit handles the UI layer for each framework.
💬 Beyond the Browser: Slack & Microsoft Teams (Discord, Google Chat coming soon...)
Your agents can run and generate Generative UI beyond the web app (Learn more).
CopilotKit now lets you deploy the same agent to the places your users already work:
- Slack – Agents as first-class Slack apps: threads, tool calls, and human-in-the-loop approvals right in the channel.
- Microsoft Teams – Bring agentic workflows to the enterprise, where your org already lives.
🔒 Early access: We're onboarding teams now.
🧠 Self-Learning Agents
Improve your product by learning over time.
With Continuous Learning from Human Feedback (CLHF), part of the CopilotKit Intelligence Platform, agents improve with every interaction:
- In-context reinforcement learning – Agents automatically improve from user interactions, no model fine-tuning required.
- Automatic prompt augmentation – Agent behavior adapts based on recent interactions and outcomes.
- Per-user adaptation – Agents learn individual preferences and get better for each user over time.
- Threads & persistence – Full interaction history — generative UI, human-in-the-loop, shared state — captured across sessions.
Available via CopilotKit Cloud or self-hosted.
🔒 Early access: We're onboarding teams now.
https://github.com/user-attachments/assets/7372b27b-8def-40fb-a11d-1f6585f556ad
What this gives you:
- CopilotKit installed – Core packages are fully set up in your app
- Provider configured – Context, state, and hooks ready to use
- Agent <> UI connected – Agents can stream actions and render UI immediately
- Deployment-ready – Your app is ready to deploy
Complete getting started guide →
How it works:
CopilotKit connects your UI, agents, and tools into a single interaction loop.
This enables:
- Agents that ask users for input
- Tools that render UI
- Stateful workflows across steps and sessions
- One agent, deployed across web, mobile, and chat platforms
⭐️ useAgent Hook
The useAgent hook sits directly on AG-UI, giving you full programmatic control over the agent connection.
// Programmatically access and control your agents
const { agent } = useAgent({ agentId: "my_agent" });
// Render and update your agent's state
return <div>
<h1>{agent.state.city}</h1>
<button onClick={() => agent.setState({ city: "NYC" })}>
Set City
</button>
</div>
Check out the useAgent docs to learn more.
https://github.com/user-attachments/assets/67928406-8abc-49a1-a851-98018b52174f
Generative UI
Generative UI is a core CopilotKit pattern that allows agents to dynamically render UI as part of their workflow.
https://github.com/user-attachments/assets/3cfacac0-4ffd-457a-96f9-d7951e4ab7b6
Compare the Three Types
Explore:
Generative UI educational repo →
🖥️ AG-UI: The Agent–User Interaction Protocol
Connect agent workflows to user-facing apps, with deep partnerships and 1st-party integrations across the agentic stack—including LangChain, CrewAI, Mastra, PydanticAI, and more.
npx create-ag-ui-app my-agent-app
🤝 Community
Have questions or need help?
Join our Discord →Read the Docs →
Try the Enterprise Intelligence Platform →
Stay up to date with our latest releases!
Follow us on LinkedIn →Follow us on X →
🙋🏽♂️ Contributing
Thanks for your interest in contributing to CopilotKit! 💜
We value all contributions, whether it's through code, documentation, creating demo apps, or just spreading the word.
Here are a few useful resources to help you get started:
-
For code contributions, CONTRIBUTING.md.
-
For documentation-related contributions, check out the documentation contributions guide.
-
Want to contribute but not sure how? Join our Discord and we'll help you out!
📄 License
This repository's source code is available under the MIT License.