에이전트
Prism의 AI 에이전트는 언어 모델이 비결정적인 방식으로 일련의 단계를 실행할 수 있게 합니다. 모델은 대화 컨텍스트, 사용자 입력, 이전 도구 호출 및 결과를 기반으로 도구 호출 결정을 내릴 수 있습니다.
에이전트 구현하기
Prism에서 에이전트를 구현하는 효과적인 접근 방식 중 하나는 LLM이 루프에서 다음 단계를 선택할 수 있도록 하는 것입니다. 도구를 withMaxSteps()
메서드와 결합함으로써, 각 단계에서 추론하고 컨텍스트를 기반으로 결정을 내리는 에이전트를 만들 수 있습니다.
예시: 수학 문제 해결 에이전트
Prism을 사용하여 수학 문제를 해결하는 에이전트를 만들어 보겠습니다. 이 에이전트는 수학 표현식을 평가하기 위해 호출할 수 있는 계산기 도구(PHP의 bcmath
확장을 사용)를 가지게 됩니다.
<?php
use EchoLabs\Prism\Facades\Prism;
use EchoLabs\Prism\Facades\Tool;
$tools = [
Tool::as('weather')
->for('현재 날씨 상태를 검색해야 할 때 유용함')
->withParameter('city', '날씨를 알고 싶은 도시')
// API 호출 시뮬레이션
->using(fn (string $city): string => '날씨는 24°C에 맑을 예정입니다'),
Tool::as('search')
->for('현재 이벤트나 데이터를 검색할 때 유용함')
->withParameter('query', '상세한 검색 쿼리')
// API 호출 시뮬레이션
->using(fn (string $query): string => '타이거즈 경기는 디트로이트에서 오후 3시에 있습니다'),
];
// 에이전트 생성
$response = Prism::text()
->using('anthropic', 'claude-3-sonnet')
->withPrompt("오늘 디트로이트에서 타이거즈 경기는 몇 시이고, 코트를 입고 가야 할까요?")
->withMaxSteps(10)
->withTools($tools)
->generate();
echo "답변: " . $response->text;
이 예시에서:
Tool
파사드를 사용하여weather
와search
도구를 정의합니다. 이 도구들은 서드파티 서비스에 대한 API 요청을 시뮬레이션합니다.- Prism의
text()
메서드를 사용하여 에이전트를 생성하고, 시스템 메시지, 프롬프트를 설정하며, 계산기 도구를 포함시킵니다. withMaxSteps(10)
을 사용하여 에이전트가 추론 과정에서 최대 10단계를 수행할 수 있도록 합니다.- 에이전트는 필요에 따라 도구를 사용하여 질문에 답합니다.
작동 원리
- 에이전트는 프롬프트에서 질문을 받습니다.
- 문제를 분석하고 다음 단계(검색 도구, 날씨 도구 또는 추론)를 결정합니다.
- 도구가 필요한 경우 도구를 사용합니다.
- 에이전트는 결론에 도달하거나 최대 단계 수에 도달할 때까지 이 과정을 계속하며, 잠재적으로 여러 번의 도구 호출과 도구 결과 분석을 수행합니다.
- 마지막으로 답변을 제공합니다.
이 접근 방식을 통해 에이전트는 특정 문제와 중간 결과에 따라 전략을 조정할 수 있는 유연한 문제 해결이 가능합니다.
강건한 에이전트 동작을 위해 도구 구현에서 잠재적인 오류와 엣지 케이스를 처리하는 것을 잊지 마세요.
반응형
'프로그래밍 > Web' 카테고리의 다른 글
Laravel Prism 사용하기(번역) - 6 - (0) | 2024.10.15 |
---|---|
Laravel Prism 사용하기(번역) - 5 - (0) | 2024.10.15 |
Laravel Prism 사용하기(번역) - 3 - (0) | 2024.10.15 |
Laravel Prism 사용하기(번역) - 2 - (1) | 2024.10.15 |
Laravel Prism 사용하기(번역) - 1 - (2) | 2024.10.14 |
댓글