Agent API
new Agent(config)
import { Agent } from '@moon-wave/core';
const agent = new Agent(config: AgentConfig);AgentConfig
interface AgentConfig { name: string; model: ModelConfig; systemPrompt?: string | ((ctx: AgentContext) => string); tools?: ToolDefinition[]; memory?: MemoryConfig; maxIterations?: number; // mặc định: 10}
interface ModelConfig { provider: 'groq' | 'google' | 'cerebras' | 'workersai' | 'ollama'; model: string;}Methods
agent.use(...tools)
Đăng ký tools vào agent. Trả về this để chain.
agent.use(searchTool, calculatorTool);agent.run(input, ctx)
Chạy agent và trả về kết quả.
const result = await agent.run('Thời tiết hôm nay thế nào?', { sessionId: 'user-123', env,});// result: { output: string, iterations: number, toolCalls: ToolCall[] }agent.stream(messages, ctx)
Stream phản hồi dưới dạng ReadableStream<string>.
const stream = agent.stream(messages, ctx);return new Response(stream, { headers: { 'Content-Type': 'text/event-stream' },});AgentContext
interface AgentContext { sessionId: string; userId?: string; env: Record<string, unknown>; // Cloudflare env bindings metadata?: Record<string, unknown>;}tool(definition)
Helper để định nghĩa tool type-safe:
import { tool } from '@moon-wave/core';
const myTool = tool({ name: 'my_tool', description: 'Làm gì đó hữu ích', parameters: { type: 'object', properties: { input: { type: 'string' }, }, required: ['input'], }, execute: async (args, ctx) => { return `Đã xử lý: ${args.input}`; },});