@cuylabs/agent-http
v0.1.6
Published
HTTP streaming adapter for @cuylabs/agent-core - bridges agent events to AI SDK compatible streams
Downloads
649
Maintainers
Readme
@cuylabs/agent-http
HTTP streaming adapter for @cuylabs/agent-core. Bridges agent events to AI SDK v6 UIMessageStream for use with useChat().
Installation
npm install @cuylabs/agent-http @cuylabs/agent-core
# or
pnpm add @cuylabs/agent-http @cuylabs/agent-coreYou'll also need at least one AI SDK provider:
npm install @ai-sdk/openai
# or @ai-sdk/anthropic, @ai-sdk/googleQuick Start
// app/api/chat/route.ts (Next.js)
import { createAgent } from "@cuylabs/agent-core";
import { createAgentStreamResponse } from "@cuylabs/agent-http";
import { anthropic } from "@ai-sdk/anthropic";
const agent = createAgent({
model: anthropic("claude-sonnet-4-20250514"),
systemPrompt: "You are a helpful assistant.",
});
export async function POST(req: Request) {
const { messages, id } = await req.json();
const lastMessage = messages[messages.length - 1];
return createAgentStreamResponse(agent, {
sessionId: id,
message: lastMessage.content,
});
}Then use with AI SDK's useChat():
"use client";
import { useChat } from "@ai-sdk/react";
export function Chat() {
const { messages, input, handleInputChange, handleSubmit } = useChat({
api: "/api/chat",
});
return (
<div>
{messages.map((m) => (
<div key={m.id}>
{m.role}: {m.content}
</div>
))}
<form onSubmit={handleSubmit}>
<input value={input} onChange={handleInputChange} />
<button type="submit">Send</button>
</form>
</div>
);
}API
createAgentStreamResponse
Creates an HTTP Response with streaming agent events.
function createAgentStreamResponse(
agent: Agent,
options: AgentStreamOptions
): Response;
interface AgentStreamOptions {
sessionId: string;
message: string;
abortSignal?: AbortSignal;
system?: string;
}createAgentStream
Lower-level API that returns a ReadableStream.
function createAgentStream(
agent: Agent,
options: AgentStreamOptions
): ReturnType<typeof createUIMessageStream>;License
Apache-2.0
