trpc-agent-go
무엇인가
tRPC-Agent-Go는 Go 서비스 안에 에이전트 실행을 붙이기 위한 프레임워크다. LLM 에이전트, 그래프 워크플로, 도구 호출, 세션·메모리 상태, 지식 검색, 자기 진화, 평가, OpenTelemetry 관측성을 하나의 Go 스택으로 묶는다. 파이썬 에이전트 스택을 별도 프로세스로 띄우지 않고 기존 Go 백엔드에 에이전트 런타임을 내장하는 자리를 차지한다.
어떻게 동작하나
실행은 스트리밍 러너가 맡는다. 러너가 LLM 호출과 도구 호출을 이벤트 스트림으로 내보내고, 컨텍스트 취소로 실행을 멈춘다. LLMAgent는 단일 모델 에이전트를, GraphAgent는 타입이 지정된 그래프 노드와 다중 조건 라우팅으로 워크플로를 실행한다. 여러 에이전트는 체인·병렬·순환 형태로 조합한다. 상태는 세션, 메모리, 아티팩트, 지식 검색 계층에 나뉘어 유지된다. 도구는 함수 도구, MCP 도구, 웹 검색, 코드 실행, 사용자 정의 서비스로 등록한다. 스킬은 SKILL.md 파일로 정의하고 NewFSRepository로 로드하며, 이 저장소는 HTTP(S) URL의 zip·tar.gz 아카이브를 받아 로컬에 캐시하고 여러 루트를 동시에 받을 수 있다. 완료된 세션은 비동기로 검토되어 품질 게이트를 통과한 뒤 재사용 가능한 스킬로 게시된다.
무엇과 다른가
파이썬 진영의 LangGraph에 대응하는 위치지만 실행 기반이 Go다. 고루틴과 컨텍스트 취소를 그대로 쓰므로 동시 실행과 타임아웃이 Go 서비스 관례를 따른다. 프런트엔드 연동은 AG-UI, 에이전트 간 상호운용은 A2A, 도구 연결은 MCP로 분리되어 있다. 관측성은 OpenTelemetry 트레이스·메트릭으로 내보내고 Langfuse 예제를 함께 제공한다. 프롬프트 캐싱을 켜면 캐시된 콘텐츠에 대한 비용이 줄어든다.
어떻게 쓰나
Go 1.21 이상과 LLM 제공자 API 키(OpenAI, DeepSeek 등)가 필요하다. 저장소 예제는 도구 사용, LLM 전용 에이전트, 멀티 에이전트 러너, GraphAgent, 메모리, 지식, 텔레메트리, MCP 연동, AG-UI 데모, 평가, 스킬, 자기 진화, 아티팩트, A2A 상호운용, 게이트웨이 서버를 다룬다. 실행 중인 러너는 취소 API로 중단한다. 장기 실행 프로세스에서는 스킬을 설치·삭제·이름 변경한 뒤 repo.Refresh()를 호출해야 다음 턴에 반영된다.
전제와 한계
Go 1.21 이상이 전제다. LLM 제공자 API 키가 없으면 에이전트를 실행할 수 없다. LLMAgent에 llmagent.WithCodeExecutor(...)를 연결하고 skill_run을 쓰는 경우, llmagent.WithEnableCodeExecutionResponseProcessor(false)를 함께 지정하지 않으면 어시스턴트 텍스트 안의 Markdown 펜스 코드 블록이 자동 실행된다. 스킬 저장소는 원격 아카이브를 받을 때 로컬 캐시를 거치므로 캐시 디렉터리 쓰기 권한이 필요하고, 캐시 위치는 SKILLS_CACHE_DIR로 바꾼다.
관련 논문 4
유사 도구
- WeKnora원시 문서를 수집해 검색 가능한 RAG 지식베이스와 자율 추론 에이전트, 자체 유지 위키로 바꾸는 Go 기반 자체 호스팅 LLM 지식 플랫폼이다.
- adk-python그래프 기반 워크플로 런타임과 멀티에이전트 구성을 파이썬 코드로 정의해 여러 모델과 배포 환경에 올리는 에이전트 개발 프레임워크다.
- ragflow비정형 문서를 파싱·청킹해 검색 증강 생성 파이프라인과 에이전트 워크플로를 한 엔진에서 돌리는 오픈소스 RAG 서버다.
- deer-flow샌드박스·메모리·서브에이전트·스킬을 묶어 수 분에서 수 시간 걸리는 작업을 수행하는 오픈소스 슈퍼 에이전트 하네스다.
- difyLLM 애플리케이션을 워크플로·RAG·에이전트·모델 관리·관측까지 한 워크스페이스에서 만들고, 클라우드나 셀프호스팅으로 배포하는 오픈소스 플랫폼이다.
- openllmetryOpenTelemetry 기반으로 LLM 호출·프레임워크·벡터 DB를 계측해 표준 트레이스로 내보내는 Python SDK다. 벤더 종속 없이 기존 관측 백엔드에 연결한다.