MyBotBoxMyBotBox

@yarlisai/ai

统一的 LLM 接口 — 支持 OpenAI、Anthropic、Bedrock、Gemini 及另外 12 个提供商适配器。

统一的 LLM 接口 — 支持 OpenAI、Anthropic、Bedrock、Gemini 及另外 12 个提供商适配器。

安装

npm install @yarlisai/ai

设计理念

@yarlisai/ai 遵循端口/适配器约定:消费方依赖端口(SomeProvider 接口),并在运行时实例化适配器。切换供应商只需修改一行配置。

使用方式

该包的 README 提供了完整的快速入门指南。mybotbox-platform 本身即为参考消费方 —— apps/sat/lib/ai/(或类似命名的模块)展示了每个调用点如何直接使用端口而非供应商 SDK。

Copilot 模型列表与工具调用约定

@yarlisai/ai/copilot 子路径导出了 Copilot 模型选择器列表及工具调用约定,以纯数据与 zod schema 的形式提供 —— 不依赖 React,不引入应用层导入 —— 使 SDK 和外部代理能够针对平台所使用的同一可信来源进行验证:

import {
  COPILOT_MODELS, // full picker lineup (id, label, tier icon, provider)
  DEFAULT_COPILOT_MODEL, // current default model id
  normalizeCopilotModel, // maps retired aliases → current canonical ids
  ToolIds, // zod enum of every Copilot tool id
  ToolArgSchemas, // per-tool argument schemas
  ToolSSESchemas, // per-tool `tool_call` SSE event schemas
  ToolResultSchemas, // per-tool result schemas
  ToolRegistry, // consolidated { id, args, sse, result } per tool
} from '@yarlisai/ai/copilot'

// Validate an incoming tool_call SSE event end-to-end:
const event = ToolSSESchemas.run_workflow.parse(incoming)

// Normalize a persisted (possibly legacy) model id:
const model = normalizeCopilotModel('claude-4.5-sonnet') // → 'claude-sonnet-4-6'

这些导出同样从包根路径重新导出。宿主应用通过轻量封装层(apps/sat/lib/copilot/{models,registry}.ts)使用它们,为内部和外部消费方维护统一的可导入约定(这也是 ADR 0010 的前提条件)。

另请参阅