Skip to content

نظام Agent

يوفر نظام Doggy Agent عدة وكلاء أذكياء يمكن الوصول إليها بشكل موحّد من خلال Facade الخاص بـ AgentManager، ويدعم وكلاء التشغيل المبنية على symfony/ai-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 (حلقة ReAct + استدعاء الأدوات) موضحة في AI 助手، بينما يوضح 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. الحصول على مخطط حقول الكيان (Schema) من DataGridService
  2. بناء رسالة النظام الموجهة (تحتوي أسماء الحقول والأنواع والعوامل)
  3. استدعاء نموذج AI لتوليد شروط التصفية بصيغة JSON
  4. إصلاح الحقول المرتبطة تلقائيًا (مثل departmentdepartment.name)
  5. دعم الدمج المنطقي AND/OR
  6. معالجة وسم </think> الخاص بنماذج DeepSeek/نماذج الاستدلال

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 | حقوق النشر © 2026 Doggy