Laravel AI SDK 正式发布

简介: Laravel AI SDK 正式发布!由Taylor Otwell打造,提供统一AI接口:支持文本、图像、语音、嵌入、RAG等全场景,兼容OpenAI/Anthropic/Gemini等主流服务商;含Agent、流式响应、队列、结构化输出、自动降级等特性,开箱即用。

Laravel AI SDK 正式发布

Laravel AI SDK 今天正式发布了。这个由 Taylor Otwell 开发数月的官方包,为 Laravel 应用提供了一套统一的 AI 交互接口,覆盖文本对话、图像生成、语音合成、语音转录、向量嵌入等场景,支持 OpenAI、Anthropic、Gemini、Groq、xAI 等主流服务商。

安装方式和其他 Laravel 官方包一样简单:

composer require laravel/ai

Agent:核心交互单元

SDK 的核心概念是 Agent。每个 Agent 是一个 PHP 类,封装了系统指令、对话上下文、工具和输出格式。可以把它理解为一个专用助手——销售教练、文档分析器、客服机器人——配置一次,随处调用。

通过 Artisan 命令创建:

php artisan make:agent SalesCoach

生成的类实现 Agent 接口,定义 instructions() 方法提供系统提示词,然后调用 prompt() 发起对话:

$response = SalesCoach::make(user: $user)
    ->prompt('分析这段销售录音...');

return (string) $response;

prompt() 方法支持在调用时切换服务商和模型:

$response = (new SalesCoach)->prompt(
    '分析这段销售录音...',
    provider: 'anthropic',
    model: 'claude-haiku-4-5-20251001',
    timeout: 120,
);

如果不想创建专门的类,也可以用匿名 Agent 快速调用:

use function Laravel\Ai\{
   agent};

$response = agent(
    instructions: 'You are an expert at software development.',
)->prompt('Tell me about Laravel');

结构化输出

Agent 可以返回结构化数据,而不仅仅是纯文本。实现 HasStructuredOutput 接口,定义 schema() 方法即可:

public function schema(JsonSchema $schema): array
{
   
    return [
        'feedback' => $schema->string()->required(),
        'score' => $schema->integer()->min(1)->max(10)->required(),
    ];
}

调用后直接当数组用:

$response = (new SalesCoach)->prompt('分析这段录音...');

return $response['score']; // 8

对话记忆

Agent 支持自动持久化对话历史。使用 RemembersConversations trait 后,SDK 会自动将对话存入数据库,后续可以通过 continue() 方法继续之前的对话:

// 开始新对话
$response = (new SalesCoach)->forUser($user)->prompt('你好!');
$conversationId = $response->conversationId;

// 继续对话
$response = (new SalesCoach)
    ->continue($conversationId, as: $user)
    ->prompt('接着刚才的话题...');

工具系统

Agent 可以使用工具来扩展能力。通过 make:tool 命令创建工具类,定义输入 schema 和 handle() 方法:

class RandomNumberGenerator implements Tool
{
   
    public function description(): string
    {
   
        return '生成加密安全的随机数。';
    }

    public function handle(Request $request): string
    {
   
        return (string) random_int($request['min'], $request['max']);
    }

    public function schema(JsonSchema $schema): array
    {
   
        return [
            'min' => $schema->integer()->min(0)->required(),
            'max' => $schema->integer()->required(),
        ];
    }
}

SDK 还内置了几个服务商级别的工具:

  • WebSearch — 让 Agent 搜索网页,支持 Anthropic、OpenAI、Gemini
  • WebFetch — 让 Agent 抓取网页内容,支持 Anthropic、Gemini
  • FileSearch — 在向量存储中搜索文件,支持 OpenAI、Gemini
  • SimilaritySearch — 基于 Eloquent 模型的向量相似度搜索,用于 RAG 场景

流式响应与广播

对于需要实时输出的场景,Agent 支持流式响应。返回值可以直接作为路由响应,自动发送 SSE:

Route::get('/coach', function () {
   
    return (new SalesCoach)->stream('分析这段录音...');
});

流式事件还可以通过 Laravel Broadcasting 广播到前端频道,或者使用 Vercel AI SDK 协议与前端框架对接:

return (new SalesCoach)
    ->stream('分析这段录音...')
    ->usingVercelDataProtocol();

队列处理

耗时的 AI 请求可以推入队列在后台处理:

(new SalesCoach)
    ->queue($request->input('transcript'))
    ->then(function (AgentResponse $response) {
   
        // 处理响应...
    })
    ->catch(function (Throwable $e) {
   
        // 处理异常...
    });

图像生成

Image 类提供了简洁的图像生成接口,支持 OpenAI、Gemini 和 xAI:

use Laravel\Ai\Image;

$image = Image::of('厨房台面上的甜甜圈')
    ->quality('high')
    ->landscape()
    ->generate();

$path = $image->store();

支持附加参考图像进行风格迁移,也可以推入队列异步生成。

音频与转录

语音合成(TTS)和语音转录(STT)同样被纳入 SDK:

use Laravel\Ai\Audio;
use Laravel\Ai\Transcription;

// 文字转语音
$audio = Audio::of('I love coding with Laravel.')
    ->female()
    ->instructions('用海盗的语气说')
    ->generate();

// 语音转文字
$transcript = Transcription::fromStorage('audio.mp3')
    ->diarize() // 按说话人分段
    ->generate();

TTS 支持 OpenAI 和 ElevenLabs,STT 同样支持这两个服务商。

Embeddings 与向量搜索

生成向量嵌入变得非常直观。Laravel 的 Stringable 类新增了 toEmbeddings() 方法:

$embeddings = Str::of('Napa Valley has great wine.')->toEmbeddings();

配合 PostgreSQL 的 pgvector 扩展,可以在数据库中直接进行向量相似度查询:

$documents = Document::query()
    ->whereVectorSimilarTo('embedding', '纳帕谷最好的酒庄')
    ->limit(10)
    ->get();

传入字符串时,Laravel 会自动生成嵌入向量再进行查询,不需要手动处理。Embedding 还支持缓存,避免重复调用 API。

Reranking

Reranking 可以对搜索结果按语义相关性重新排序,支持 Cohere 和 Jina:

$posts = Post::all()->rerank('body', 'Laravel 教程');

这个功能直接以 Collection 宏的形式提供,可以对 Eloquent 集合按指定字段做语义重排。

文件与向量存储

SDK 提供了文件管理和向量存储的完整方案。文件可以上传到服务商存储后反复引用,向量存储则用于 RAG 场景下的文件检索:

use Laravel\Ai\Files\Document;
use Laravel\Ai\Stores;

// 上传文件
$stored = Document::fromPath('/path/to/report.pdf')->put();

// 创建向量存储并添加文件
$store = Stores::create('知识库');
$store->add($stored);

Failover

调用时传入服务商数组,SDK 会在主服务商不可用时自动切换到备用服务商:

$response = (new SalesCoach)->prompt(
    '分析这段录音...',
    provider: ['openai', 'anthropic'],
);

Agent 配置

Agent 支持通过 PHP Attribute 配置参数,包括最大步数、最大 token 数、温度、超时时间等:

#[MaxSteps(10)]
#[MaxTokens(4096)]
#[Provider('anthropic')]
#[Temperature(0.7)]
#[Timeout(120)]
class SalesCoach implements Agent
{
   
    use Promptable;
}

UseCheapestModelUseSmartestModel 两个 Attribute 可以自动选择服务商最便宜或最强的模型,不需要记具体的模型名。

中间件

Agent 支持中间件机制,可以在请求发送前后插入自定义逻辑,比如日志记录:

class LogPrompts
{
   
    public function handle(AgentPrompt $prompt, Closure $next)
    {
   
        Log::info('Prompting agent', ['prompt' => $prompt->prompt]);

        return $next($prompt)->then(function (AgentResponse $response) {
   
            Log::info('Agent responded', ['text' => $response->text]);
        });
    }
}

测试支持

SDK 为每个功能都提供了 fake() 方法和断言 API,测试时不需要真实调用 AI 服务商:

SalesCoach::fake(['第一条响应', '第二条响应']);

// 执行业务逻辑...

SalesCoach::assertPrompted('分析这段...');
SalesCoach::assertNeverPrompted();

图像、音频、转录、Embeddings、Reranking、文件操作、向量存储都有对应的 fake 和断言方法。

服务商支持一览

功能 支持的服务商
文本对话 OpenAI、Anthropic、Gemini、Groq、xAI
图像生成 OpenAI、Gemini、xAI
语音合成 OpenAI、ElevenLabs
语音转录 OpenAI、ElevenLabs
向量嵌入 OpenAI、Gemini、Cohere、Jina
重排序 Cohere、Jina
文件管理 OpenAI、Anthropic、Gemini

小结

Laravel AI SDK 把 AI 集成做成了 Laravel 开发者熟悉的样子:Artisan 命令生成类、接口约束行为、trait 复用逻辑、队列异步处理、fake 方法写测试。如果你的 Laravel 项目需要接入 AI 能力,这个包值得尝试。

🎉Laravel AI SDK 正式发布

目录
相关文章
|
10天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
6天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
4424 13
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
5天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
3755 10
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
8天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
7008 15
|
6天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
4575 4
|
4天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
2543 5
|
8天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
4623 23
|
14天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
8566 13