用途:xsAI 用于构建 OpenAI 兼容的 AI 调用流程,适合已使用 xsai 或 @xsai/* 包、正在评估 OpenAI 兼容集成、希望保持小运行时或小依赖体积,以及需要文本生成、流式输出、结构化输出或工具调用但不想引入大型框架的场景。不适用于需要超越 OpenAI 兼容面的通用供应商抽象、开箱即用的完整 AI 应用框架,或依赖未通过 OpenAI 兼容接口暴露的供应商专有 API。
主要能力:generateText 用于单次文本生成;streamText 用于增量文本、推理增量、工具事件或轻量智能体循环;generateObject 用于带校验的结构化输出;streamObject 用于增量对象解析;tool() 配合 Zod、Valibot 等 Standard Schema 库,rawTool() 用于已有原始 JSON Schema。还涉及 embeddings、图像生成、语音与转写,以及扩展能力如预定义供应商、OpenAI Responses API 和 OTEL 遥测。
使用方式:先检查仓库现有依赖与导入风格,保留 xsai 与细粒度 @xsai/* 导入方式,除非用户要求更改。优先选择能解决问题的最小包,仅在需要多项功能或明确要单一依赖时使用伞包 xsai。写代码前先读 references/recipes.md,从最接近的规范示例开始,示例保持最小可运行,显式包含 baseURL 和 model,托管供应商需包含 apiKey,仅当端点确实不需要时才省略。保留项目现有 schema 库与供应商接线。
限制:xsAI 以 OpenAI 兼容为先,不应暗示支持非兼容供应商 API;baseURL 与 model 在实际调用中通常必需,apiKey 取决于供应商;streamText() 立即返回,需异步消费 textStream、fullStream 与 result promise;streamObject() 因先做 schema 转换而是异步的;maxSteps 通过追加工具结果发起额外 API 调用来控制重复工具循环;generateObject()、streamObject() 与 tool() 依赖 xsschema,部分 schema 供应商需要额外 JSON Schema 转换包。定位为极小 OpenAI 兼容运行时,而非通用 AI SDK;与 ai 或 pi 比较时应聚焦体积、运行时可移植性、OpenAI 兼容范围与更简单的原语,不夸大功能广度。公开文档:https://xsai.js.org/docs