GitHub - microsoft/agent-lightning: The absolute trainer to light up AI agents.
핵심 포인트
- 1Agent Lightning은 LangChain, OpenAI Agent SDK 등 다양한 agent framework와 호환되며, 거의 코드 변경 없이 AI agent를 최적화할 수 있도록 설계된 trainer입니다.
- 2이 플랫폼은 `agl.emit_xxx()` 헬퍼를 통해 프롬프트 및 툴 호출 같은 agent 이벤트를 수집하여 `LightningStore`에 저장하고, Reinforcement Learning, Automatic Prompt Optimization 등 다양한 알고리즘을 활용하여 agent를 학습시킵니다.
- 3`Trainer`가 데이터 스트리밍과 자원 업데이트를 관리하며, 유연한 아키텍처를 통해 사용자가 agent를 손쉽게 훈련하고 지속적으로 성능을 개선할 수 있도록 지원합니다.
Agent Lightning은 AI 에이전트를 훈련하고 최적화하기 위한 플랫폼입니다. 이 플랫폼의 핵심 목표는 사용자가 최소한의 코드 변경(zero code change)으로 AI 에이전트를 최적화 가능한 형태로 만들 수 있도록 지원하는 것입니다. LangChain, OpenAI Agent SDK, AutoGen, CrewAI, Microsoft Agent Framework 등 어떤 에이전트 프레임워크를 사용하든 호환되며, 프레임워크 없이 Python OpenAI를 직접 사용하는 경우에도 적용 가능합니다. 특히, 다중 에이전트 시스템(multi-agent system) 내에서 특정 에이전트 하나 또는 여러 에이전트를 선택적으로 최적화할 수 있는 유연성을 제공합니다. 강화 학습(Reinforcement Learning), 자동 프롬프트 최적화(Automatic Prompt Optimization), 지도 미세 조정(Supervised Fine-tuning)과 같은 다양한 최적화 알고리즘을 지원합니다.
핵심 방법론은 Agent Lightning이 에이전트의 내부 작동 방식을 건드리지 않으면서, 에이전트의 활동 데이터를 수집하고 이를 기반으로 최적화를 수행하는 아키텍처에 있습니다. 사용자의 에이전트는 평소와 같이 실행되며, 사용자는 agl.emit_xxx()와 같은 경량 헬퍼 함수를 삽입하거나, 또는 트레이서(tracer)를 사용하여 모든 프롬프트(prompt), 툴 호출(tool call), 보상(reward) 같은 이벤트를 자동으로 수집합니다. 이렇게 수집된 이벤트들은 구조화된 스팬(span) 형태로 변환됩니다.
이 스팬들은 LightningStore라는 중앙 허브로 흘러 들어가, 태스크(task), 리소스(resource), 트레이스(trace)를 동기화된 상태로 유지합니다. LightningStore의 다른 쪽에는 사용자가 선택하거나 직접 작성한 알고리즘(algorithm)이 위치합니다. 이 알고리즘은 LightningStore로부터 스팬들을 읽어 들여 학습하고, 학습된 결과를 바탕으로 정제된 프롬프트 템플릿(prompt template)이나 새로운 정책 가중치(policy weight)와 같은 업데이트된 리소스들을 다시 LightningStore에 게시합니다.
이 모든 과정을 Trainer가 조율합니다. Trainer는 데이터셋을 러너(runner)에 스트리밍하고, LightningStore와 알고리즘 간의 리소스를 전달하며, 개선 사항이 적용될 때 추론 엔진(inference engine)을 업데이트합니다. 이러한 아키텍처는 에이전트의 코드를 다시 작성할 필요 없이, 첫 롤아웃(rollout)부터 지속적인 개선으로 이어지는 명확한 경로를 제공합니다.