TL;DR
LLM 에이전트는 모델이 도구를 선택하고 실행 결과를 대화 상태에 되돌려 넣는 반복 루프로 작동하며, 언어마다 도구·상태·제어 흐름을 표현하는 방식이 다릅니다. Python은 LangChain을 비롯한 가장 큰 AI 생태계와 SDK 지원으로 빠른 프로토타이핑에 유리하지만, mutable state의 추적과 대규모 동시성 및 장애 복구를 외부 도구와 개발자 코드에 의존합니다. Clojure는 immutable map과 Malli schema를 사용해 상태를 diff·직렬화·재생할 수 있고, Elixir는 GenServer, BEAM VM, OTP Supervisor로 프로세스 격리·동시 실행·자동 재시작·분산 처리를 지원합니다. 따라서 특정 AI 통합이 우선이면 Python, 실행 감사와 재현성이 우선이면 Clojure, 고동시성과 장애 격리가 우선이면 Elixir가 적합하며 프로토타이핑과 운영 계층을 서로 다른 언어로 구성할 수도 있습니다.
섹션별 상세
용어 해설
- ReAct
- — LLM이 대화 내용과 사용 가능한 도구를 확인한 뒤 직접 답하거나 함수를 호출하고, 도구 결과를 다시 대화에 넣어 다음 행동을 결정하는 에이전트 실행 루프입니다. 최종 답변이나 단계 제한에 도달할 때까지 이 과정을 반복합니다.
- Actor Model
- — 각 프로세스가 독립적인 상태를 보유하고 메시지를 주고받으며 동작하는 동시성 모델입니다. Elixir에서는 이 구조가 에이전트 간 통신과 병렬 실행의 기본 단위가 되어 상태 충돌을 줄이고 장애 격리를 지원합니다.
- GenServer
- — Elixir에서 상태를 가진 서버 프로세스를 구현하는 추상화입니다. 에이전트는 질문을 메시지로 받고 도구 호출 루프를 실행한 뒤 결과를 반환하며, 프로세스가 중단되면 Supervisor가 재시작할 수 있습니다.
- Supervision Tree
- — 프로세스의 상태와 장애를 감시하는 감독 계층입니다. Elixir와 Erlang/OTP에서는 Supervisor가 장애가 난 에이전트만 설정된 전략에 따라 재시작하므로 다른 에이전트의 실행에는 영향을 주지 않습니다.
- Global Interpreter Lock
- — Python 프로세스에서 한 번에 하나의 스레드만 Python 바이트코드를 실행하도록 제한하는 구조입니다. LLM API 대기처럼 I/O 중심인 작업에는 영향이 작지만 CPU 중심 병렬 처리나 매우 많은 동시 에이전트에서는 병목이 될 수 있습니다.
기술
- Python
- LangChain
- AutoGen
- CrewAI
- LangGraph
- Elixir
- Clojure
- Erlang/OTP
- GenServer
- Malli
- Nx
- Bumblebee
- Instructor
- Ray
- Celery
- Kubernetes
- Rama
- Agent-o-Rama
- EDN
- ExUnit
활용 사례
- 주간 활성 사용자 통계를 조회하는 분석 에이전트
- SQL 결과를 바탕으로 차트를 생성하는 에이전트
- 실시간으로 협업하는 다중 에이전트 시스템
- 장애가 난 에이전트만 자동 재시작하는 운영 시스템
- 에이전트 실행 상태를 저장하고 사후 재생하는 감사 시스템
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.