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에 등록