返回顶部
a

ai-sdk-coreAI核心SDK

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.0
安全检测
已通过
1,925
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

ai-sdk-core

AI SDK Core

使用 Vercel AI SDK v5 和 v6 的后端 AI。

安装:
bash
npm install ai @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google zod



AI SDK 6(稳定版 - 2026年1月)

状态: 稳定
最新版本: ai@6.0.26(2026年1月)

重大变更:Output API 取代 generateObject/streamObject

⚠️ 关键:generateObject() 和 streamObject() 已弃用,将在未来版本中移除。请改用新的 Output API。

之前(v5 - 已弃用):
typescript
// ❌ 已弃用 - 将被移除
import { generateObject } from ai;

const result = await generateObject({
model: openai(gpt-5),
schema: z.object({ name: z.string(), age: z.number() }),
prompt: 生成一个人物,
});

之后(v6 - 使用此方式):
typescript
// ✅ 新的 OUTPUT API
import { generateText, Output } from ai;

const result = await generateText({
model: openai(gpt-5),
output: Output.object({ schema: z.object({ name: z.string(), age: z.number() }) }),
prompt: 生成一个人物,
});

// 访问类型化对象
console.log(result.object); // { name: Alice, age: 30 }

输出类型

typescript
import { generateText, Output } from ai;

// 使用 Zod schema 的对象
output: Output.object({ schema: myZodSchema })

// 类型化对象数组
output: Output.array({ schema: personSchema })

// 从选项中选择枚举
output: Output.choice({ choices: [positive, negative, neutral] })

// 纯文本(显式)
output: Output.text()

// 非结构化 JSON(无 schema 验证)
output: Output.json()

使用 Output API 进行流式传输

typescript
import { streamText, Output } from ai;

const result = streamText({
model: openai(gpt-5),
output: Output.object({ schema: personSchema }),
prompt: 生成一个人物,
});

// 流式传输部分对象
for await (const partialObject of result.objectStream) {
console.log(partialObject); // { name: Ali... } -> { name: Alice, age: ... }
}

// 获取最终对象
const finalObject = await result.object;

v6 新功能

1. 代理抽象
使用 ToolLoopAgent 类构建代理的统一接口:

  • - 完全控制执行流程、工具循环和状态管理
  • 取代手动工具调用编排

2. 工具执行审批(人机协同)

使用选择性审批以获得更好的用户体验。并非每个工具调用都需要审批。

typescript
tools: {
payment: tool({
// 基于输入的动态审批
needsApproval: async ({ amount }) => amount > 1000,
inputSchema: z.object({ amount: z.number() }),
execute: async ({ amount }) => { / 处理支付 / },
}),

readFile: tool({
needsApproval: false, // 安全操作无需审批
inputSchema: z.object({ path: z.string() }),
execute: async ({ path }) => fs.readFile(path),
}),

deleteFile: tool({
needsApproval: true, // 破坏性操作始终需要审批
inputSchema: z.object({ path: z.string() }),
execute: async ({ path }) => fs.unlink(path),
}),
}

最佳实践

  • - 对风险取决于参数的操作(如支付金额)使用动态审批
  • 始终要求对破坏性操作(删除、修改、购买)进行审批
  • 不要要求对安全读取操作进行审批
  • 添加系统指令:当工具执行未被批准时,不要重试
  • 为审批请求实现超时,防止卡死状态
  • 存储用户对重复操作的偏好

来源

3. RAG 重排序
typescript
import { rerank } from ai;

const result = await rerank({
model: cohere.reranker(rerank-v3.5),
query: 用户问题,
documents: searchResults,
topK: 5,
});

4. MCP 工具(模型上下文协议)

⚠️ 安全警告:MCP 工具存在显著的生产风险。请参阅下面的安全部分。

typescript
import { experimental_createMCPClient } from ai;

const mcpClient = await experimental_createMCPClient({
transport: { type: stdio, command: npx, args: [-y, @modelcontextprotocol/server-filesystem] },
});

const tools = await mcpClient.tools();

const result = await generateText({
model: openai(gpt-5),
tools,
prompt: 列出当前目录中的文件,
});

已知问题:MCP 工具可能无法在流式模式下执行(Vercel 社区讨论)。对于 MCP 工具,请使用 generateText() 而不是 streamText()。

MCP 安全注意事项

⚠️ 关键:生产环境中的动态 MCP 工具存在安全风险:

风险

  • - 工具定义成为代理提示的一部分
  • 可能在没有警告的情况下意外更改
  • 被攻破的 MCP 服务器可以注入恶意提示
  • 新工具可能提升用户权限(例如,向只读服务器添加删除功能)

解决方案 - 使用静态工具生成

typescript
// ❌ 有风险:动态工具在您无法控制的情况下更改
const mcpClient = await experimental_createMCPClient({ / ... / });
const tools = await mcpClient.tools(); // 随时可能更改!

// ✅ 安全:生成静态、版本化的工具定义
// 步骤 1:安装 mcp-to-ai-sdk
npm install -g mcp-to-ai-sdk

// 步骤 2:生成静态工具(一次性,版本控制)
npx mcp-to-ai-sdk generate stdio npx -y @modelcontextprotocol/server-filesystem

// 步骤 3:导入静态工具
import { tools } from ./generated-mcp-tools;

const result = await generateText({
model: openai(gpt-5),
tools, // 静态、已审查、版本化
prompt: 使用工具,
});

最佳实践:生成静态工具,审查它们,提交到版本控制,并且只在有意时更新。

来源Vercel 博客:MCP 安全

5. 语言模型中间件
typescript
import { wrapLanguageModel, extractReasoningMiddleware } from ai;

const wrappedModel = wrapLanguageModel({
model: anthropic(claude-sonnet-4-5-20250929),
middleware: extractReasoningMiddleware({ tagName: think }),
});

// 从 ... 标签自动提取推理过程

6. 遥测(OpenTelemetry)
typescript
const result = await generateText({
model: openai(gpt-5),
prompt: 你好,
experimental_telemetry: {
isEnabled: true,
functionId: my-chat-function,
metadata: { userId: 123 },
recordInputs: true,
recordOutputs: true,
},
});

官方文档: https://ai-sdk.dev/docs



最新 AI 模型(2025-2026)

OpenAI

GPT-5.2(2025年12月):

  • - 400k 上下文窗口,128k 输出令牌
  • 增强的推理能力
  • 在 API 平台可用

GPT-5.1(2025年11月):

  • - 相比 GPT-5 提高了速度和效率
  • 更温暖且更智能的响应

GPT-5(2025年8月):

  • - 相比 GPT-4o 幻觉减少 45%
  • 在数学、编码、视觉感知方面达到最先进水平

o3 推理模型(2025年12月):

  • - o3、o3-pro、

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ai-sdk-core-1776376120 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ai-sdk-core-1776376120 技能

通过命令行安装

skillhub install ai-sdk-core-1776376120

下载

⬇ 下载 ai-sdk-core v0.1.0(免费)

文件大小: 54.67 KB | 发布时间: 2026-4-17 15:09

v0.1.0 最新 2026-4-17 15:09
ai-sdk-core v0.1.0

- Initial release for backend AI development with Vercel AI SDK v6 (stable).
- Adds comprehensive Output API, replacing generateObject/streamObject (with migration guide).
- Documents speech synthesis, transcription, embeddings, agent abstraction, and MCP tools with security guidance.
- Includes guidance for v4→v5 migration and 15 common error solutions.
- Provides best practices for human-in-the-loop tool permissions and secure tool integration.
- Offers troubleshooting help for key AI SDK platform issues.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部