Skip to content

Agent-System

Das Doggy Agent-System stellt mehrere intelligente Agents bereit, die über die AgentManager-Facade einheitlich zugänglich sind und Laufzeit-Agents basierend auf symfony/ai-agent unterstützt.

Übersicht

Das Agent-System befindet sich unter src/Service/AI/Agent/ und wird über AgentManager zentral gesteuert:

php
// src/Service/AI/AgentManager.php
class AgentManager
{
    public function getQueryAgent(): NaturalLanguageQueryAgent
    public function getVisionAgent(): VisionAgent
    public function getCodingAgent(): CodingAgent
    public function getPasswordPolicyAgent(): PasswordPolicyAgent
}

Darüber hinaus finden Sie das Laufzeit-Agent-System basierend auf symfony/ai-agent (ReAct-Schleife + Tool-Aufrufe) unter AI-Assistent und die Intent-Erkennung mit Orchestrierung von Szenario-Sub-Agents unter AI-View-Verbesserung.

Coding-Assistent

CodingAgent für allgemeine Code-Generierung:

php
use App\Service\AI\Agent\CodingAgent;

$code = $codingAgent->generateCode('Create a Symfony controller for employee CRUD');

Natürliche-Sprache-Abfrage

NaturalLanguageQueryAgent wandelt natürliche Sprache in DataGrid-Filterbedingungen um und ist eng mit DataGridService integriert:

php
use App\Service\AI\Agent\NaturalLanguageQueryAgent;

$filters = $queryAgent->parseQuery(
    text: '上个月入职的部门经理',
    entityClass: Employee::class,
    currentFilters: []
);
// 返回: { filters: [...], thought_process: "..." }

Unterstützte Beispiele für natürliche Sprache:

  • "Abteilungen mit Status aktiv anzeigen"
  • "Abteilungen, deren Name 'Technik' enthält"
  • "Mitarbeiter, die in der letzten Woche hinzugekommen sind"

Funktionsweise

  1. Schema der Entitätsfelder von DataGridService abrufen
  2. System-Prompt erstellen (inkl. Feldnamen, Typen, Operatoren)
  3. AI-Modell aufrufen, um JSON-Filterbedingungen zu generieren
  4. Zugehörige Felder automatisch korrigieren (z. B. departmentdepartment.name)
  5. AND/OR-Logik-Kombinationen unterstützen
  6. </think>-Tags von DeepSeek-/Reasoning-Modellen verarbeiten

Passwortrichtlinien-Agent

PasswordPolicyAgent wandelt Sicherheitsrichtlinien in natürlicher Sprache in DSL-Ausdrücke um:

php
$policy = $passwordPolicyAgent->parsePolicyInstruction(
    '密码长度至少8位,必须包含数字和大写字母'
);
// 返回: { and: [{field: "length", operator: ">=", value: 8}, {field: "has_number", ...}, {field: "has_uppercase", ...}] }

Visuelle Erkennung

VisionAgent für Bildanalyse (vorbereitete Schnittstelle, multimodale Unterstützung in Arbeit):

php
$result = $visionAgent->analyzeImage($imageUrl, '识别这张发票的信息');

Erweiterung

Neue benutzerdefinierte Agents hinzufügen:

  1. Agent-Klasse erstellen und AiManager injizieren
  2. In AgentManager registrieren

Open Source unter MIT | Copyright © 2026 Doggy