跳到主要内容
useChat()useStream()useReactive()adapterstreamingChatContainerMessageInputBar<5KBanthropic()openai()send()stop()retry()data-ak-*onMessageonChunkheadlessthemehookscreateRuntime()RAGInkCLItoolsmemory
开源 · 可扩展 — React、终端与无头

面向 JavaScript 的智能体工具包

React · CLI · Runtime · RAG · Tools — 各处同一套契约

可插拔适配器与共享类型,基于 @agentskit/core,UI 可选。从 React开始;在 Ink CLI runtime复用同一思路 — 一行切换模型。

MIT · 无需注册 · 一分钟内跑通流式 UI · 支持 pnpm、yarn、npm

AgentsKit DemoLIVE
Starting demo...

AgentsKit 在生态中的位置

实用视角 — 不是性能基准。按你的技术栈和掌控需求来选择。

表格较宽 — 在小屏幕上请横向滚动以比较各列。

维度绑定供应商或闭源的 UI SDK强主张的 Web 框架路线AgentsKit
所有权常绑定单一供应商控制台、仅云端功能或不透明的升级路径。开源,并为特定生态提供清晰的「最佳路径」(例如 React 流式模式)。MIT、模块化 npm 包 — 你掌控部署;更换适配器而无需重写 UI 层。
UI 模型预制组件;主题或可扩展性有限。约定与示例围绕单一技术栈的习惯用法。无头原语 (data-ak-*) 加可选主题 — 可接入 MUI、shadcn 或你的设计系统。
终端形态通常 Web 优先;终端或无 UI 智能体往往是事后补充。Web 优先;浏览器之外的深度各不相同。同一套契约 适用于 React、Ink(终端)、CLI 与无头的 runtime.
扩展插件层级、封闭扩展 API 或供应商专用工具模式。在框架世界内可组合。共享的核心类型 — 适配器、工具、记忆、RAG、skills 在 @agentskit/core.

更适合: 浏览器、终端与无头智能体用同一套栈,并能掌控适配器与工具。 可以跳过: 单一供应商组件就够,或你已完全投入某一框架的 AI 路线。

封闭 SDK 与强主张路线会拖慢你

流式场景的边界情况仍由你承担 — 除非你的栈天生可组合

  • 绑定供应商或封闭层 — 升级节奏、仅云端功能与不透明限制,会在你需要自定义工具或自托管推理时束缚你。
  • 高度主张的框架 — 在「最佳路径」内高效;当产品横跨 Web、终端与无头 worker 且要统一契约时很痛苦。
  • 脆弱的手写流式逻辑 — 分片、重试和中止仍会渗入体验(卡在「正在输入」、重复消息、丢失工具结果),各端胶水代码不一致时尤甚。

AgentsKit 采用 MIT 并以扩展为先:适配器、工具、记忆与 RAG 都建立在共享原语上,让你保持掌控、替换模块而无需重写产品叙事。

从约 50 行胶水代码到约 10 行业务代码

更少代码要评审、测试,并在下个月 API 变动时后悔

之前 — 约 50 行
const [messages, setMessages] = useState([])
const [input, setInput] = useState('')
const [streaming, setStreaming] = useState(false)
const abortRef = useRef(null)

const send = async () => {
  setStreaming(true)
  const userMsg = { role: 'user', content: input }
  setMessages(prev => [...prev, userMsg])
  const res = await fetch('/api/chat', {
    method: 'POST',
    body: JSON.stringify({ messages: [...messages, userMsg] }),
    signal: abortRef.current?.signal,
  })
  const reader = res.body.getReader()
  const decoder = new TextDecoder()
  let text = ''
  while (true) {
    const { done, value } = await reader.read()
    if (done) break
    text += decoder.decode(value)
    setMessages(prev => [...prev.slice(0,-1),
      { role: 'assistant', content: text }])
  }
  setStreaming(false)
}
// + error handling, auto-scroll, cleanup...
之后 — 使用 AgentsKit 约 10 行
import { useChat, ChatContainer, Message, InputBar }
  from '@agentskit/react'
import { anthropic } from '@agentskit/adapters'
import '@agentskit/react/theme'

function Chat() {
  const chat = useChat({
    adapter: anthropic({ model: 'claude-sonnet-4-6' })
  })
  return (
    <ChatContainer>
      {chat.messages.map(msg =>
        <Message key={msg.id} message={msg} />
      )}
      <InputBar chat={chat} />
    </ChatContainer>
  )
}

一套架构,覆盖所有终端

跳到你需要的指南 — 每个链接对应 npm 上的一个 @agentskit/* 包。

模型提供商 — 一行切换

AnthropicOpenAIVercel AI SDKAny ReadableStream

为什么选择 AgentsKit?

应有尽有,没有多余 — 从 UI 到无头智能体同一套故事

🪝

3 Hooks

useStream, useReactive, useChat — that's the entire API. Learn it in 5 minutes.

<5KB Bundle

Tiny footprint. No virtual DOM overhead. Just reactive streams wired to the DOM.

🔌

Any Provider

Claude, GPT, Vercel AI SDK, or bring your own ReadableStream. Swap in one line.

🎨

Headless + Theme

Components ship with data-ak-* attributes. Import the theme or style your way.

🤖

Agent-Friendly

Entire API fits in 2K tokens. AI agents generate correct AgentsKit code first try.

🧩

Full toolkit

Runtime, Ink, CLI, RAG, memory, tools, skills, sandbox, eval — compose what you need, share types with @agentskit/core.

🌍

Works Everywhere

Next.js, Vite, Remix, TanStack Start — any React 18+ app. Zero config.

⏹️

Stop, retry, clear

Cancellation and retries on the chat controller — fewer stuck “typing…” states and duplicate assistant messages.

📡

Production visibility

Optional @agentskit/observability for traces across LLM calls, tools, and memory — OpenTelemetry-friendly when you need it.

🧪

Benchmark in CI

@agentskit/eval measures latency, cost, and success rate so agent regressions surface before users do.

10 个交互示例

每个示例都是聊天 — 这正是 AgentsKit 做的事

不到一分钟看到流式效果

先跑快速上手,再叠加工具、记忆与 RAG — 心智模型不变。

MIT · 无需注册 · 开源 — 随意使用、fork 或告诉我们缺什么

年轻项目,快速迭代

AgentsKit 尚处早期并在扩张 — 欢迎试用,遇到问题请提 issue,并一起塑造路线图。