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