Skip to content

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: "..." }

自然言語の例をサポート:

  • "表示状态为启用的部门"
  • "名称包含'技术'的部门"
  • "最近一周新增的员工"

仕組み

  1. DataGridService からエンティティフィールドの Schema を取得
  2. システムプロンプトを構築(フィールド名、型、オペレータを含む)
  3. AI モデルを呼び出して JSON のフィルタ条件を生成
  4. 関連フィールドを自動修正(例: departmentdepartment.name
  5. AND/OR ロジックの組み合わせをサポート
  6. 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 を追加:

  1. Agent クラスを作成し、AiManager を注入
  2. AgentManager に登録

MIT ライセンスでオープンソース | Copyright © 2026 Doggy