Agent 系统
Doggy Agent 系统提供四种智能代理,通过 AgentManager Facade 统一访问。
概述
Agent 系统位于 src/Service/AI/Agent/,通过 AgentManager 统一调度:
php
// src/Service/AI/AgentManager.php
class AgentManager
{
public function getQueryAgent(): NaturalLanguageQueryAgent
public function getVisionAgent(): VisionAgent
public function getCodingAgent(): CodingAgent
public function getPasswordPolicyAgent(): PasswordPolicyAgent
}编码助手
CodingAgent 通用代码生成:
php
use App\Service\AI\Agent\CodingAgent;
$code = $codingAgent->generateCode('Create a Symfony controller for employee CRUD');自然语言查询
NaturalLanguageQueryAgent 将自然语言转换为 DataGrid 筛选条件,与 DataGridService 深度集成:
php
use App\Service\AI\Agent\NaturalLanguageQueryAgent;
$filters = $queryAgent->parseQuery(
text: '上个月入职的部门经理',
entityClass: Employee::class,
currentFilters: []
);
// 返回: { filters: [...], thought_process: "..." }支持自然语言示例:
- "显示状态为启用的部门"
- "名称包含'技术'的部门"
- "最近一周新增的员工"
工作原理
- 从
DataGridService获取实体字段 Schema - 构建系统提示词(含字段名、类型、操作符)
- 调用 AI 模型生成 JSON 筛选条件
- 自动修复关联字段(如
department→department.name) - 支持 AND/OR 逻辑组合
- 处理 DeepSeek/推理模型的
</think>标签
密码策略 Agent
PasswordPolicyAgent 将自然语言安全策略转换为 DSL 表达式:
php
$policy = $passwordPolicyAgent->parsePolicyInstruction(
'密码长度至少8位,必须包含数字和大写字母'
);
// 返回: { and: [{field: "length", operator: ">=", value: 8}, {field: "has_number", ...}, {field: "has_uppercase", ...}] }视觉识别
VisionAgent 图片分析(预留接口,待实现多模态支持):
php
$result = $visionAgent->analyzeImage($imageUrl, '识别这张发票的信息');扩展
新增自定义 Agent:
- 创建 Agent 类,注入
AiManager - 在
AgentManager中注册