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 变动时后悔
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...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/* 包。
模型提供商 — 一行切换
为什么选择 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 或告诉我们缺什么