Skip to content

@agentaily/llm

多家大模型的统一客户端:一个 Provider 接口 + 各家具体 provider。 零依赖。

各家(DeepSeek、Bailian / 通义千问、Volcengine / 豆包、Anthropic)都建在一个共享的 OpenAI 兼容底座(openai-compat)上;另有一个 mock provider 给测试用。对外统一成 Anthropic 风格的内容块(text / tool_use / tool_result / image),@agentaily/agent 的循环就吃这一套。

ts
import { createDeepSeekProvider, createBailianProvider, createAnthropicProvider } from '@agentaily/llm';

const provider = createDeepSeekProvider({ apiKey });
const res = await provider.send({ system, messages, tools, model: 'deepseek-v4-flash', maxTokens: 2048 });
  • 工厂:createOpenAICompatProvider / createDeepSeekProvider / createBailianProvider / createVolcengineProvider / createAnthropicProvider / createMockProvider,各配一个 *Options 类型。
  • provider 负责把统一请求翻成各家线缆形状、再把响应(含 tool_calls)翻回内容块。
  • 各家 model id / 端点差异见对应 skill(如 deepseek-api):model id 大小写敏感,OpenAI 端点对未知 id 直接 400。

测试:仓库根 pnpm test(vitest,全工作区)。