Symfony AI v0.2.0 已于 2026年1月10日 正式发布。
如果你还在以为 PHP 只能写写 CRUD,那你真的 OUT 了。Symfony AI 组件的出现,标志着 PHP 正式进入了AI 原生开发时代。v0.2.0 不仅仅是一个简单的版本更新,它带来了生产环境急需的故障转移(Failover)、更完善的 CLI 工具 Symfony Mate 的大幅增强,以及对 OpenRouter 和 VertexAI 的深度支持。

以下是 v0.2.0 的核心更新解读及实战指南。
v0.2.0 核心更新速览
本次更新主要集中在以下几个方面:
高可用性 增强:FailoverPlatform
- 生产环境中,单一 AI 接口(如 OpenAI)可能会出现波动。新版本引入了
FailoverPlatform,允许配置备用线路。当主接口无响应时,系统会自动切换至备用平台(如 Azure 或 Anthropic),保障服务连续性。
Mate 组件升级与 兼容性 扩展
- 开发助手 Symfony Mate 得到了大幅改进。CLI 命令新增了详细描述,便于调试。更重要的是,v0.2.0 向下兼容了 Symfony 5.4 和 6.4,这使得维护老旧项目的团队也能接入 AI 能力。
模型与平台支持扩充
- OpenRouter:完善了流式传输(Streaming)和结构化输出的支持。
- VertexAI:新增 API Key 认证方式,简化了 Google Cloud 的接入流程。
- Whisper:支持 verbose 输出模式,提供更丰富的语音转录元数据。
接口变更(Breaking Change)
- 需要特别注意,
StoreInterface::add()方法的签名发生了变化。旧版本的变长参数已被移除,现在必须传入VectorDocument对象或数组。升级时需同步修改相关代码。
实战指南:构建智能问答服务
Symfony AI 的核心设计理念是 "Everything is Configurable" (一切皆可配置)。它通过 yaml 文件将复杂的 AI 逻辑抽象化。
1. 安装组件
在你的 Symfony 项目中(确保已通过 ServBay 配置好 PHP 环境)
bash
composer require symfony/ai-bundle
2. 配置 AI 服务
v0.2.0 的配置更加灵活。下面是一个经典的配置示例:
yaml
ai:
# 1. 平台定义
platform:
primary_openai:
openai:
api_key: '%env(OPENAI_API_KEY)%'
backup_azure:
azure:
gpt_deployment:
base_url: '%env(AZURE_BASE_URL)%'
deployment: 'gpt-4o-backup'
api_key: '%env(AZURE_KEY)%'
api_version: '2024-02-15-preview'
# v0.2 新特性:故障转移平台
production_mix:
failover:
platforms: ['primary_openai', 'backup_azure']
# 2. 代理定义
agent:
# 定义一个翻译助手
translator_bot:
platform: 'ai.platform.production_mix' # 使用上面定义的故障转移平台
model: 'gpt-4o'
prompt:
text: '你是一位精通多国语言的翻译专家,请直接输出翻译结果,不要包含多余解释。'
# 若需动态加载提示词,也可使用 file: '%kernel.project_dir%/prompts/translator.txt'
temperature: 0.3 # 控制输出随机性
3. 业务代码集成
配置完成后,AI Agent 会自动注册为服务。通过依赖注入即可在 Service 或 Controller 中使用。
以下代码展示了一个服务类,它封装了调用逻辑,接收用户输入并返回 AI 响应。
php
namespace App\Service;
use Symfony\AI\Agent\AgentInterface;
use Symfony\AI\Platform\Message\Message;
use Symfony\AI\Platform\Message\MessageBag;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
final readonly class TranslationService
{
public function __construct(
// 通过别名注入配置文件中定义的 translator_bot
#[Autowire(service: 'ai.agent.translator_bot')]
private AgentInterface $translator
) {
}
public function translateText(string $sourceText): string
{
// 构建消息上下文
$conversation = new MessageBag(
Message::ofUser($sourceText)
);
// 执行调用
$result = $this->translator->call($conversation);
// v0.2 支持获取更多元数据,如 Token 消耗(需平台支持)
// $usage = $result->getMetadata()->get('token_usage');
return $result->getContent();
}
}
进阶功能:多智能体协作(Multi-Agent)
这是目前 AI 领域最火的模式。
对于复杂的业务场景,单一 Prompt 往往难以胜任。v0.2.0 优化了多智能体编排配置,能够根据用户意图将请求分发给不同的专业 Agent。
配置示例:
yaml
ai:
multi_agent:
support_team:
# 编排者:负责分析用户意图
orchestrator: 'ai.agent.manager'
# 分发规则:根据关键词自动路由
handoffs:
# 遇到代码、报错等词汇,转交给技术 Agent
ai.agent.tech_lead: ['php', 'exception', 'debug', 'code']
# 遇到发票、退款等词汇,转交给财务 Agent
ai.agent.finance: ['invoice', 'refund', 'payment']
# 默认兜底 Agent
fallback: 'ai.agent.general_faq'
在代码中,直接注入 ai.multi_agent.support_team 即可使用这套智能分发系统,无需手动编写路由逻辑。
常用 CLI 工具
v0.2.0 的 Mate 工具包提供了便捷的命令行调试功能:
- 直接对话测试:无需编写代码,直接在终端测试 Agent 表现。
bash
php bin/console ai:agent:call translator_bot
- 平台连通性测试:验证 API Key 和网络连接是否正常。
bash
php bin/console ai:platform:invoke openai gpt-4o "System check"
安装 Symfony
Symfony 对 PHP 环境是有要求的,需要 PHP 8.4 或更高版本的环境。
这个可以通过ServBay来一键部署。ServBay 支持一键配置 PHP 环境以及 Redis、PostgreSQL 等向量存储所需的后端服务,能有效避免环境配置带来的干扰。

总结
Symfony AI v0.2.0 是一个从实验走向成熟的版本。故障转移机制的加入使其具备了上生产环境的基础,而对旧版本 Symfony 的兼容支持则扩大了其适用范围。配合 ServBay 快速搭建的基础设施,PHP 开发者可以更低成本地在现有项目中落地 AI 功能。