AI 뉴스

Go Micro - Go 언어로 에이전트를 구축하는 새로운 하네스

노동1호 2026. 7. 1. 02:01

Go Micro - Go 언어로 에이전트를 구축하는 새로운 하네스

Go 생태계에서 LLM 기반 에이전트를 만들 때 매번 도구 등록, 메모리 관리, 가드레일, 외부 프로토콜 통합을 처음부터 짜야 했던 번거로움을 한 번에 해소해 주는 프레임워크가 등장했습니다. 바로 Go Micro v6 입니다. 이 글에서는 Go Micro가 에이전트 하네스로서 어떤 문제를 풀고, 어떤 구조로 동작하는지 핵심만 짚어 드립니다.

go programming agent runtime

Go Micro란 무엇인가

Go Micro는 원래 Go용 마이크로서비스 프레임워크로 출발했지만, v6에 들어서 에이전트/서비스/워크플로우를 하나의 런타임 위에서 통합하는 방향으로 진화했습니다. 핵심 아이디어는 단순합니다.

  • 에이전트에 필요한 도구(tool), 메모리, 가드레일, 워크플로우 트리거, 의존 서비스, 외부 노출 프로토콜을 하나의 하네스로 묶음
  • 일반 마이크로서비스의 모든 엔드포인트를 AI가 호출 가능한 도구로 자동 변환
  • 변환된 도구는 MCP(Model Context Protocol)와 A2A(Agent-to-Agent) 두 표준 프로토콜로 외부에서 그대로 접근 가능

덕분에 기존 Go 서비스를 그대로 두면서, 그 위에 AI 에이전트 인터페이스를 얹는 구조를 코드 한 줄 변경 없이 만들 수 있습니다.

핵심 기능 살펴보기

프롬프트 기반 서비스 생성

가장 인상적인 기능입니다. 시스템에서 원하는 동작을 자연어로 입력하면 AI가 아키텍처를 설계하고 핸들러 코드를 생성·컴파일·실행까지 해 줍니다.


// "shipping 추적이 필요한 에이전트 만들어줘" 라고 프롬프트를 주면
// 아래와 같은 핸들러가 자동 생성됨
package shipping

import "go-micro.dev/v6"

type Service struct{}

func (s *Service) Track(ctx *micro.Context, req *TrackingRequest) (*TrackingResponse, error) {
    // 생성된 로직 — 필요하면 직접 수정해도 재실행 시 보존됨
    return micro.Reply(&TrackingResponse{Status: "in_transit"})
}

대화 중간에 "shipping 추적이 필요해"라고 던지면 즉석에서 shipping 서비스가 생성되어 붙고, 개발자가 코드를 다듬어도 다음 재실행 때 변경사항이 그대로 유지됩니다.

모든 에이전트에 내장된 `plan`/`delegate`

멀티스텝 작업을 직접 코드로 풀어 쓰는 대신, Go Micro는 두 가지 기본 도구를 모든 에이전트에 제공합니다.

  • plan: 작업을 순서가 있는 계획으로 기록해 순차·병렬 실행
  • delegate: 서브태스크를 다른 에이전트에 위임. 이미 등록된 에이전트가 있으면 RPC로 넘기고, 없으면 격리된 서브에이전트를 새로 생성

이 조합만으로도 단순한 ReAct 루프부터 복잡한 멀티 에이전트 오케스트레이션까지 같은 API로 다룰 수 있습니다.

내구성 워크플로우와 지속 메모리

go programming agent runtime

운영 환경에서 에이전트가 죽으면 곤란한데, Go Micro는 이를 두 겹으로 대비합니다.

  • 체크포인트된 워크플로우: 알려진 경로는 flow로, 동적 경로는 에이전트 디스패치로 처리. 크래시 후에도 멈춘 지점부터 자동 재개
  • store 기반 지속 메모리: File/Postgres/NATS KV 중 선택 가능. AgentCompactMemory로 오래된 대화는 요약 압축, 최근 대화는 원문 유지, 필요 시 보관 대화를 회수해 컨텍스트 길이 문제를 완화

가드레일이 실행 지점에 위치

에이전트가 무한 루프를 돌거나 비용이 폭주하는 걸 막기 위해 가드레일을 런타임에 직접 박아 둡니다.

  • MaxSteps: 최대 호출 횟수 제한
  • LoopLimit: 진전이 없는 반복 중단
  • ApproveTool: 특정 도구는 사람 승인 후에만 실행

개발·배포 워크플로우

운영 관점에서 특히 매력적인 부분입니다. CLI 한 줄로 개발-빌드-배포를 모두 처리합니다.


# 핫 리로드 개발
micro run

# 프로덕션 바이너리 빌드
micro build

# Docker 없이 SSH + systemd 배포
micro deploy user@server

7개 LLM 프로바이더(Anthropic, OpenAI, Gemini, Groq, Mistral, Together, Atlas Cloud)를 지원하고, registry(mDNS → Consul → etcd), 브로커(NATS / RabbitMQ), store는 모두 Go 인터페이스로 추상화되어 있어 코드 변경 없이 교체할 수 있습니다.

전망과 요약

Go Micro v6는 "에이전트를 짜기 위한 코드보다 에이전트가 사용할 서비스를 짜는 코드"에 집중하게 해 주는 프레임워크입니다. 프롬프트 기반 생성, plan/delegate, 내구성 워크플로우, 가드레일, 7개 LLM 프로바이더, MCP/A2A 노출까지 한 묶음으로 제공하기 때문에 Go 기반 팀이 에이전트 제품을 빠르게 검증하고 운영하기에 좋은 선택지입니다.

핵심 정리:

  • 한 런타임에서 에이전트·서비스·워크플로우 통합
  • 모든 서비스 엔드포인트가 MCP/A2A로 자동 노출
  • 프롬프트로 서비스 생성, plan/delegate 기본 내장
  • 체크포인트 워크플로우 + store 메모리로 내구성 확보
  • Apache 2.0 오픈소스

> 원문: go-micro.dev · 긱뉴스 토픽