Agent システム
Doggy Agent システムは複数のインテリジェントエージェントを提供し、AgentManager Facade を通じて統一アクセスし、symfony/ai-agent ベースのランタイム Agent をサポートします。
概要
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
}さらに、symfony/ai-agent ベースのランタイム Agent 体系(ReAct ループ + ツール呼び出し)は AI アシスタント を、意図認識 + シナリオ子 Agent のオーケストレーションは AI ビュー拡張 を参照してください。
コーディングアシスタント
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に登録