LLM 后端概述
kagent-ts 提供了完整的多 LLM Provider 支持体系,包括 Provider 实现、工厂函数、Fallback 降级、Rate Limiting 限流、Model Router 路由和 Token Budget 预算控制。
架构
LLMProvider (接口)
├── OpenAIProvider # OpenAI API
├── AnthropicProvider # Anthropic Claude API
├── FallbackProvider # 主备降级包装器
├── RateLimitedProvider # 滑动窗口限流包装器
└── ModelRouter # 多模型路由分发器
createLLMProvider() # 工厂函数 (自动检测 Provider 类型)快速选择
| 你需要... | 使用 |
|---|---|
| 连接 OpenAI (GPT-4o, GPT-4, etc.) | OpenAIProvider |
| 连接 Anthropic (Claude Sonnet, Opus, etc.) | AnthropicProvider |
| 自动检测 Provider 类型 | createLLMProvider() |
| 主 Provider 失败时自动切换 | FallbackProvider |
| 限制 API 调用频率 | RateLimitedProvider |
| 不同任务用不同模型 | ModelRouter |
| 控制会话 Token 消耗 | TokenBudget |
通用接口
所有 Provider 都实现 LLMProvider 接口:
ts
interface LLMProvider {
/** 非流式调用 */
chat(messages: MessageData[], options?: LLMOptions): Promise<LLMResponse>
/** 流式调用 */
chatStream(messages: MessageData[], options?: LLMOptions): AsyncIterable<LLMStreamEvent>
/** 估算 Token 数量 */
getTokenCount(messages: MessageData[]): number
}错误处理
所有 Provider 内置统一的错误处理策略:
- 自动重试 (瞬态错误): Timeout、Connection Error、429 Rate Limit、5xx Server Error
- 立即传播 (不可恢复): 401 Unauthorized、400 Bad Request、Abort Error
- 指数退避 + Jitter: 避免惊群效应
下一步
- OpenAI Provider — OpenAI API 详细配置
- Anthropic Provider — Anthropic Claude API 详细配置
- Fallback Provider — 主备降级
- Rate Limiter — 限流控制
- Model Router — 多模型路由
- Token Budget — Token 消耗控制