@alvin0/ai-agent-sdk-provider-openai

中文文档
0.1.16发布于 2026/11/06MITTypeScriptES Module构建来源已验证近 30 天下载 2006

AI- agent- sdk 通用 OpenAI 适配器和提供者插件

中文使用文档
文档目录4 节
  1. 连接相容的终点
  2. 快速缓存
  3. 默认配置优先
  4. 土著决定 API

@alvin0/ai-agent-sdk- professor-openai (英语)

运行时间 : 通用 (Edge/Worker,浏览器,Deno,Bun,和节点).

兼容网关可以配置 baseUrl, (中文(简体) ), models, (中文(简体) ), fetch,以及 headers (一个字符串记录或同步函数返回每个操作一个). 生成使用响应;嵌入使用OpenAI嵌入协议.

项目实例和现场生成/决定测试的使用 gpt-6-luna 作为 最小 OpenAI 模型 。 明确选择它或较新的模型;不要返回到 请求失败时的旧模型 。 嵌入模型选择是分开的. 嵌入式适配器/插件也支持自定义头. 标题为不区分大小写。 A 类 headers 条目覆盖 SDK 否则,将发出该名称(accept, (中文(简体) ), content-type, (中文(简体) ), user-agent, (中文(简体) ), 协议头)——只有连接级别名称 fetch 本身禁止 (单位:千美元)host, (中文(简体) ), content-length,.)或证书形状的名称(必须经过) apiKey编号 :auth 相反,它可以被修改成日志) 被拒绝. 供应证书 apiKey复制静态记录; 准备的嵌入式呼叫在所有批次中保持相同的头像快照. 需要信任的本地 HTTP 网关 allowInsecureHttp: true。 。 。 .

pnpm add @alvin0/ai-agent-sdk-core @alvin0/ai-agent-sdk-provider-openai

通用OpenAI适配器和交易提供器插件. 证书被注入;此包从不读取环境变量或文件.

import { ModelRegistry } from '@alvin0/ai-agent-sdk-core'
import { openAiPlugin } from '@alvin0/ai-agent-sdk-provider-openai'

const registry = new ModelRegistry()
registry.install(openAiPlugin({ apiKey: apiKeyFromSecretStore })) // injected string or CredentialSource

使用 openAiAdapter() 用于人工路由注册。 API都是通用的,而且 需要明确 apiKey; 环境取景器属于节点包装器.

两个都接受 models: [{ id, contextWindow, maxTokens }] 加提供者一级 defaultContextWindow 财务报告和审定财务报表 defaultMaxTokens 堕倒. 一个目录模型的 maxTokens 是其SDK输出上限,除非 models[].defaultMaxTokens 设置,它默认的产出预算。 提供者的后退预算不是硬上限. 将操作环境保持在任何扩展文本价格阈值以下。 见 提供者模式限制指南 举例来说 和优先规则。 这些声明不会增加服务器侧限制.

组成: runtime.providers寿命周期: inert-runtime-owned-registration· ; 运行时间激活并删除捕获的提供者注册.

连接相容的终点

这个软件包讲的是整个OpenAI API家族,而不仅仅是 api.openai.com二、导 言 电线得到支持—— api: 'responses' (违约)和 api: 'chat-completions' 因为大多数第三方的OpenAI兼容端点(DeepSeek, Groq, Congree,), Quen/DashScope, vLLM, Ollama, LM Studio, 许多网关) 只执行 /chat/completions中的插件实例 id, (中文(简体) ), baseUrl, (中文(简体) ), displayName (因此错误地命名了真正的销售商,而不是"OpenAI"),和 api数字 :

import { envCredential } from '@alvin0/ai-agent-sdk-auth-node'

openAiPlugin({
  id: 'deepseek',
  displayName: 'DeepSeek',
  baseUrl: 'https://api.deepseek.com',
  api: 'chat-completions',
  apiKey: envCredential('DEEPSEEK_API_KEY'),
  compat: { reasoningFormat: 'deepseek' }, // effort → thinking + reasoning_effort
})

compat 一次曝光 Chat 补全线节点 : reasoningFormat (单位:千美元)'openai' 默认 - reasoning_effort 逐字记录——或 'deepseek',或 false 绝不然, maxTokensField (单位:千美元)'max_tokens' 默认,或 'max_completion_tokens',或 false, (中文(简体) ), systemRole, (中文(简体) ), structuredOutputs, (中文(简体) ), tools, (中文(简体) ), parallelToolCalls, (中文(简体) ), streamUsage, (中文(简体) ), stop, (中文(简体) ), seed, (中文(简体) ), promptCacheKey。未设置的旋钮保留协议的自有功能 保守的默认.

快速缓存

设定 promptCaching: true 生成一个稳定的 prompt_cache_key 每个适配器 实例或通过 promptCacheKey 当应用程序已经拥有一个稳定 语句键。 同样的密钥用于答复和聊天补全,包括 a 混合的每个模型路线。 将一个适配器/插件实例保留在一个缓存中 身份; 不要在不相关的租户之间共享自动生成的密钥.

兼容网关由机会处理:如果网关返回400 具体名称 prompt_cache_key适配器重试一次 没有球场 并记住 下级的余生. 与请求无关的错误永远不会被吞噬.

一个端点挂起在协议本身路径以外的地方( an Azure) OpenAI 部署, 重写路径的网关) 可以覆盖 path 财务报告和审定财务报表 添加 query (绝不是秘密——属于 auth编号 :apiKey:

openAiPlugin({
  id: 'azure-gpt',
  baseUrl: 'https://my-res.openai.azure.com/openai/deployments/gpt-6-luna',
  path: '/chat/completions',
  api: 'chat-completions',
  query: { 'api-version': '2026-06-01' },
  apiKey: envCredential('AZURE_KEY'),
})

默认配置优先

contextWindow, (中文(简体) ), maxTokens,以及 inputModalities 从明确 代理/调用配置用于模型声明、路由默认、运行时间默认 和SDK退缩政策。 探员 contextWindow 财务报告和审定财务报表 inputModalities 覆盖 已实施,并一直通过每个呼叫模式开关有效。 继承 努力和 maxTokens 切换模型时被丢弃; 清晰的每个调用 maxTokens 以优先为准。 省略的方式声明表示未知, 不只写文字。 宣布经核实的定制路线限制,而不是处理 作为供应商技术上限的回落预算.

土著决定 API

将同伴运行时间安装为直接依赖 :

pnpm add @alvin0/ai-agent-sdk-core @alvin0/ai-agent-sdk-decision-adapter @alvin0/ai-agent-sdk-provider-openai

使用 /decisions 附带决定运行时间的切入点 :

import { createDecisionRuntime, choiceQuestion, scoreQuestion, booleanQuestion }
  from '@alvin0/ai-agent-sdk-decision-adapter'
import { openAiDecisionPlugin } from '@alvin0/ai-agent-sdk-provider-openai/decisions'

const runtime = createDecisionRuntime({ providers: [openAiDecisionPlugin({
  apiKey: process.env.OPENAI_API_KEY!,
  // baseUrl: 'https://api.openai.com/v1', // API root, including /v1
})] })
try {
  const result = await runtime.decisionModel({ provider: 'openai', model: 'gpt-6-luna' }).evaluate({
    state: { message: 'Please refund my order today.' },
    questions: {
      route: choiceQuestion('Choose the department.', { billing: 'Payments and refunds', support: 'Technical issues' }),
      urgency: scoreQuestion('How urgent is this?', ['Routine', 'Urgent']),
      refund: booleanQuestion('Does the customer request a refund?'),
    },
  })
  console.log(result.answers, result.usage)
} finally {
  await runtime.close()
}

openAiDecisionAdapter 还直接与 DecisionRequestAPI 密钥可能 是字符串还是SDK证书来源 自定义路由、 API 根、 页眉、 重试 政策, safetyIdentifier、截止日期和请求/答复字节限制为 相会相会. 适配器执行一次 HTTP 尝试; 决定运行时间为 重试. 在做出错误决定后,它永远不会回到回复.

字符串状态和指令仍为文本;结构化的 JSON 描述为 序列化为文本。 此条目当前接受 SDK 文本/ JSON DecisionInput,而不是本地图像信息。 选择选项使用他们的 SDK 将密钥记录为有线值。 分数标签是零基索引,带有SDK 级别描述保留为线性描述. SDK 布尔问题映射 原生上游; value 使用0.5的概率阈值 probabilityTrue 保留提供者概率。 使用裁决证据门 当你的应用需要更大的信心.

答案保留提供者概率来源。 用过的地图已缓存和未保存 输入到不连接的 SDK 桶中,零输出符仍然是权威的. 本地拒绝投出不可重试 ModelError 有代码 OPENAI_DECISION_REFUSED它不产生任何捏造的答案。 尝试会计 即使在拒绝或无效答复阻碍结果的情况下仍保留所报告的使用.

当前本地模式目录包含 gpt-6-luna. 仍保留明确的识别模式 可配置给消费者和兼容网关;服务器决定 可用性。 本地决定需要一个 OpenAI API 密钥 。 代码用途 CODEX_GUARDIAN_DECISIONS_API_KEY (或 OPENAI_API_KEY独立为这个电话 的 ChatGPT OAuth 响应证书; 仅 OAuth 登录不配置 作出决定。 见 决定指南 财务报告和审定财务报表 代码启动源。 。 。 .

版本与发布记录

@alvin0/ai-agent-sdk-provider-openai 共发布 17 个版本,首次发布于 2026/09/10;过去 12 个月发布了 17 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.16latest2026/11/061 天前
0.1.152026/11/025 天前
0.1.142026/10/2117 天前
0.1.132026/10/1721 天前
0.1.122026/10/1127 天前
0.1.112026/10/1028 天前

关于 @alvin0/ai-agent-sdk-provider-openai 的常见问题

@alvin0/ai-agent-sdk-provider-openai 是什么?

AI- agent- sdk 通用 OpenAI 适配器和提供者插件

如何安装 @alvin0/ai-agent-sdk-provider-openai?

在项目目录运行 npm install @alvin0/ai-agent-sdk-provider-openai,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@alvin0/ai-agent-sdk-core(^0.1.16)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@alvin0/ai-agent-sdk-provider-openai 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@alvin0/ai-agent-sdk-provider-openai 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@alvin0/ai-agent-sdk-provider-openai 可以商用吗?

@alvin0/ai-agent-sdk-provider-openai 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@alvin0/ai-agent-sdk-provider-openai 的下载量有多少?

根据 npm 官方下载统计,@alvin0/ai-agent-sdk-provider-openai 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,006 次,日均约 67 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alvin0/ai-agent-sdk-provider-openai 还在维护吗?

最新版本 0.1.16 发布于 2026/11/06(1 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/09/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。