编程 Laravel AI SDK 1.1 发布:Agent Skills、Cohere 文本生成与内置工具审批

2026-10-10 21:04:32

Laravel AI SDK 1.1 发布:Agent Skills、Cohere 文本生成与内置工具审批

Laravel AI SDK v1.1.0 加入了对 Agent Skills 标准的支持,新增 Cohere 作为文本 provider,并允许对 SDK 内置工具要求审批。provider 之间的 failover 也不再因为下一个 provider 不支持某个 agent provider 工具而中断。

Agent Skills

Agent Skills 是编码 agent 使用的目录格式:只在任务需要时才加载对应指令。每个 skill 是 resources/skills 下的一个目录,里面放一个 SKILL.md。Frontmatter 必须有 description,name 可选,默认取目录名:

resources/skills/refund-policy/SKILL.md
name: refund-policy
description: Use when a customer asks for a refund or a partial credit.

实现 HasSkills 契约后,agent 会得到一个 LoadSkill 工具,列出每个 skill 的 name 和 description。skill 来源可以是目录、PHP 里构建的 Skill 对象,或者闭包。闭包在工具第一次读取 skills 时执行,因此可以按用户从数据库加载 skill。把来源指向 .agents/skills,应用里的 agent 就能复用编码 agent 的同一批技能。

也可以直接在 agent 的 tools() 里加上 new LoadSkill([...])。如果两者同时存在,SDK 会把 skill 合并进那一个工具并记录一条 warning,因为 provider 会拒绝重复的工具名。

该工具只从 skill 目录内部读取随包文件,超过 256 KB 的文件和二进制文件都会被拒绝。PR #1054、#1102。

Cohere 文本生成

Cohere 此前已支持 embeddings 和 reranking。这次通过 Cohere 的 v2 Chat API 加入文本生成,涵盖 streaming、tool calls、structured output 和 reasoning:

$response = (new SupportAgent)->prompt('Hello', provider: 'cohere');

默认模型为 command-a-03-2025。Cohere 无法强制指定某个工具,所以 ToolChoice::tool('X') 只会发送工具 X,并把 tool call 标记为必需。文档附件和 citations 暂不支持,但可以通过 provider options 传入 documents、safety_mode 等 Cohere 选项。PR #1078。

内置工具审批

MCP、agent、similarity search 和 filesystem 工具现在都实现了 Approvable 契约,可以调用 requireApproval()。借助 annotations()['readOnlyHint'],可以对所有非只读的 GitHub MCP 工具要求审批。审批默认关闭。PR #1097。

Failover 跳过不支持的 provider 工具

一个同时启用 WebFetch 和 WebSearch、provider 列表为 ['anthropic','openai'] 的 agent,在 Anthropic 请求被限流、切到 OpenAI 后会失败,因为 OpenAI 抛出:

RuntimeException: Provider [openai] does not support the [WebFetch] tool.

现在文本生成循环会在每次尝试之前,移除当前 provider 不支持的 provider 工具,于是这次运行仅用 WebSearch 继续。在未提供托管工具搜索的 provider 上,SDK 会解开 ToolSearch,把其中的工具当作普通工具发送。如果存在多个 ToolSearch wrapper,在任何 provider 上仍然会抛错。PR #1080。

自托管 Laya 分类

使用 typesafe driver 和本地 url,对自托管的 Laya 服务执行分类。PR #1081。

更多 provider 工具

ToolSearch 现在可在 Azure OpenAI 上使用。在 Groq 上,WebSearch 映射到 browser_search,CodeExecution 映射到 code_interpreter(仅限 GPT-OSS 模型;WebSearch 上的 max()/allow()/location() 会被忽略)。WebSearch 会把 location 发送给 OpenRouter。PR #1098、#1099。

其他变更

新增 MoveFile 工具(#1092)。默认 fallback 模型有更新(Anthropic 默认 claude-sonnet-5-5,Gemini 默认 gemini-3.8-flash)——依赖默认值时,升级会改变使用的模型(#1095)。

修复项:stateless OpenAI file search 重放(#1089)、编辑后的 useChat 用户消息(#1076)、ElevenLabs 查询参数(#1103)。

升级指南:Boost 升级命令需要 laravel/boost 2.10.0+;SDK 与低于 1.0 的 laravel/mcp 存在冲突(#1087)。

升级

composer require laravel/ai:^1.1
复制全文 生成海报 Laravel PHP AI

推荐文章

程序员茄子在线接单