본문으로 건너뛰기

dora: Go LLM 에이전트 커널

단일 루프와 Model·Tool 인터페이스로 동작하는 Go 기반 경량 LLM 에이전트로, 환경변수 하나로 공급자를 자동 선택해 즉시 실행할 수 있다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

dora는 Go로 구현된 경량 LLM 에이전트 커널로 모델과 도구 인터페이스만 구현하면 바로 CLI에서 실행할 수 있다. 환경변수 기반 자동 공급자 선택, 플랫폼별 Bash/PowerShell 도구, 선택적 스킬 로딩 및 세션 스냅샷이 핵심 기능이다. 릴리스는 태그 기반으로 배포되며 설치 스크립트는 다운로드 검증과 자체 업데이트 메커니즘을 제공한다.

섹션별 상세

dora는 Go로 구현된 경량 LLM 에이전트 커널로 모델과 도구 두 인터페이스만 구현하면 즉시 작동하도록 설계되어 있다. 내부는 단일 루프가 핵심이며 필요에 따라 선택적 스트리밍 이벤트를 지원한다. 이 단순한 구조는 구성 파일 없이 환경 변수 하나만으로 다양한 공급자(OpenAI, DeepSeek, Trust)를 자동 선택해 실행할 수 있게 해 배포와 테스트 진입 장벽을 낮춘다.
근거
  • Dora의 핵심은 단일 루프와 두 인터페이스(Model, Tool)로 구성된 경량 에이전트 커널이라는 점이다. README 첫 부분의 소개 문단과 architecture.md 링크에서 커널 디자인과 인터페이스 경계가 설명됨.
설치와 배포는 플랫폼별 설치 스크립트와 Makefile을 통해 이루어지며 설치 프로그램은 릴리스 아카이브를 다운로드해 SHA-256 체크섬으로 검증한다. macOS·Linux용 인스톨러와 Windows용 PowerShell 스크립트가 제공되어 사용자가 운영체제에 맞는 명령 한 줄로 설치할 수 있다. 릴리스 바이너리는 심볼을 제거한 릴리스/디버그 빌드 옵션을 구분해 제공하므로 개발용과 배포용 빌드를 명확히 나눌 수 있다.
모델 공급자 선택은 환경변수 기반 자동화가 기본이며 하나의 공급자 키만 설정하면 구성 파일 없이 실행된다. 여러 키를 설정하면 모델.provider를 명시해야 하고 필요 시 명령행으로 base_url 또는 model을 오버라이드할 수 있다. 또한 OpenAI 호환 API를 사용하는 써드파티 서비스는 provider를 openai로 두고 base_url과 api_key_env만 바꿔 점프인 방식으로 통합할 수 있다.
근거
  • 기본적으로 환경 변수에 단일 공급자 API 키만 설정하면 dora는 해당 공급자를 자동 선택해 구성 파일 없이 실행할 수 있다. API keys 섹션의 환경 변수 표와 자동 선택 동작 설명; 예시로 DEEPSEEK_API_KEY, OPENAI_API_KEY, TRUST_API_KEY가 명시되어 있음.
도구는 플랫폼 인식 기본값을 가지며 Bash는 macOS·Linux에서, PowerShell은 Windows에서 자동 활성화된다. 스킬 디렉터리에 SKILL.md가 있을 때만 스킬 도구가 활성화되고 모델은 스킬의 이름·설명만 먼저 받아 필요 시 전체 경로를 요청해 파일 내용을 참조한다. 도구 호출은 모델 응답 완료 뒤 순차적으로 실행되며 각 호출은 타임아웃과 출력 크기 제한을 갖는다.
근거
  • 도구 호출은 모델의 현재 응답이 완료된 이후에 순차적으로 실행되며 병렬 실행이나 도구 선호 정책은 내장되어 있지 않다. Scope 섹션에서 도구 호출의 순차 실행과 정책·미들웨어 부재를 명시함.
세션은 버전된 JSON으로 저장되어 대화 연속성을 제공하고 파일에는 사용한 공급자와 모델 정보가 바인딩된다. 최대 라운드 수 같은 실행 안전장치가 기본으로 설정되어 있으며 제한에 도달했을 때 터미널과 파이프 환경에 따라 사용자 확인 또는 자동 중단 동작을 취한다. 세션 파일은 민감 정보를 담을 수 있으므로 기본 권한으로 안전하게 보관하도록 설계되어 있다.
근거
  • 세션 파일은 버전이 붙은 JSON 스냅샷으로 저장되고 공급자·API·모델·base_url 정보를 바인딩한다. Sessions 섹션에서 세션 v3의 바인딩 특성과 저장 위치 및 권한(0600)을 설명한 부분.
릴리스와 배포 파이프라인은 태그 푸시로 트리거되며 GoReleaser를 통해 플랫폼별 정적 아카이브가 만들어진다. 설치 스크립트는 릴리스에 고정되어 있으며 업데이트 기능은 자체 검증 및 롤백 메커니즘을 포함한다. 이런 흐름은 사용자가 안정된 바이너리를 손쉽게 설치하고 필요할 때 강제 덮어쓰기로 개발 빌드를 교체할 수 있게 해준다.
근거
  • 공식 릴리스 배포는 태그 푸시에서 시작하며 GoReleaser로 플랫폼별 정적 아카이브와 체크섬을 생성한다. Releasing 섹션에서 git tag v0.1.0 예시와 릴리스 워크플로우, GoReleaser 사용을 명시한 부분.

용어 해설

LLM 에이전트 커널(LLM agent kernel)
LLM 에이전트 커널은 모델과 도구 인터페이스를 연결해 연속적 상호작용과 도구 호출을 조율한다. dora는 단일 루프와 두 가지 인터페이스(Model, Tool)로 이 흐름을 구현한다. 이런 구조는 경량 실행과 확장성을 유지하면서 다양한 모델 공급자를 추상화하는 데 목적을 둔다.
Model 인터페이스(Model interface)
Model 인터페이스는 동기적 응답을 기본으로 하되 선택적 스트리밍 이벤트를 허용하는 호출 규약이다. 구현체는 메시지를 받고 응답이나 스트리밍 이벤트를 반환하도록 설계되어야 한다. dora는 이 인터페이스로 OpenAI·DeepSeek·Trust 등 다양한 백엔드를 동일하게 다룬다.
Tool(명령 도구)(Tool)
Tool은 모델이 외부 명령이나 스크립트를 실행해 결과를 받아올 때 사용하는 추상화된 호스트 기능이다. dora는 플랫폼별 기본 도구로 Bash 또는 PowerShell을 제공하고 도구 호출은 모델 응답이 완료된 뒤 순차적으로 실행된다. 도구 호출 결과는 exit code, stdout, stderr 등을 JSON 형태로 모델에 반환한다.
Skill(로컬 지시 패키지)(Skill)
Skill은 모델이 관련될 때만 로드되는 로컬 지시 패키지로 SKILL.md의 엄격한 YAML 전면 메타데이터를 포함한다. 모델은 우선 이름과 설명만 받아보고 필요 시 전체 SKILL.md 경로를 요청해 파일 내용을 확인할 수 있다. 스킬 자체는 dora가 직접 실행하지 않으며 실행은 별도의 도구 호출로 이루어진다.
Session(대화 스냅샷)(Session)
세션은 대화 상태를 버전된 JSON 스냅샷으로 저장해 같은 이름으로 이어가는 기능이다. 세션 파일은 공급자·API·모델·base_url 같은 백엔드 연결 정보를 바인딩하며 --fresh로 초기화할 수 있다. 민감한 내용이 포함될 수 있어 기본 파일 권한은 0600으로 관리된다.

코드 예제

go
model := newMyModel()
weather := newWeatherTool()
agent, err := dora.New(model, weather)
if err != nil {
    log.Fatal(err)
}
result, err := agent.Run(ctx, []dora.Message{{Role: dora.RoleUser, Content: "What's the weather?"}})
if err != nil {
    log.Fatal(err)
}
fmt.Println(result.Content)

이 코드는 dora 에이전트의 최소 실행 예시로 모델 구현체와 도구를 생성해 New로 에이전트를 구축하는 흐름을 보인다. Run 호출은 사용자 메시지 리스트를 받아 에이전트의 단일 루프를 실행하며 결과 메시지를 반환한다. 실제 사용에서는 model과 tool 구현체가 dora의 인터페이스를 충족해야 하며 세션이나 추가 옵션을 통해 호출을 조정할 수 있다.

기술

  • Go 1.25 이상이 요구되는 언어 런타임으로 프로젝트는 Makefile을 통해 디버그·릴리스 빌드를 구분한다. 빌드 시 -trimpath 같은 플래그로 심볼을 제거하거나 포함해 배포 형식을 제어할 수 있다. CI는 Go 1.25와 1.26 라인을 모두 검사하도록 설정되어 있어 호환성 유지가 강조된다.
  • OpenAI Chat Completions 프로토콜을 통한 통합이 기본 프리셋으로 제공되며 기본 모델로 gpt-5가 예시로 명시되어 있다. OpenAI 호환 엔드포인트(예: Ollama, vLLM)를 사용하려면 base_url와 api_key_env를 오버라이드하면 된다. Responses API나 Responses 기반 스트리밍은 SSE를 통해 동작한다는 점이 문서에 언급되어 있다.
  • DeepSeek와 Trust가 공식적으로 지원되는 공급자이며 환경변수로 각각 DEEPSEEK_API_KEY와 TRUST_API_KEY를 사용한다. 각 프리셋은 기본 API 엔드포인트와 모델 이름을 포함해 사전 설정되며 필요 시 구성 파일로 값을 덮어쓸 수 있다. 서드파티 OpenAI 호환 서비스는 provider를 openai로 두고 base_url을 맞춰 통합 가능하다.

활용 사례

  • 로컬 시스템 진단과 자동화 작업에서 dora는 셸 도구를 호출해 디스크·프로세스·네트워크 상태를 점검하는 에이전트로 활용될 수 있다. 스킬로 시스템 검사 지침을 제공하고 Bash 도구로 실제 점검 스크립트를 실행해 결과를 모델에 되돌려 분석하도록 구성할 수 있다. 이런 조합은 단일 바이너리 환경에서 운영자 개입을 줄이고 반복적인 점검을 자동화하는 데 유용하다.
  • 개발 워크플로 자동화에서는 git diff와 같은 파이프된 입력을 받아 요약·릴리스 노트 또는 코드 리뷰 초안을 생성하는 용도로 사용할 수 있다. dora는 표준 입력을 그대로 받아 작업을 처리하고 결과를 stdout로 출력해 기존 스크립트와 연동하기 쉽다. CI 파이프라인에서 특정 세션을 이어가며 상태를 유지하는 방식으로 긴 작업도 분할해 처리할 수 있다.
  • 데스크톱 보조용으로는 DoraBar 같은 메뉴바 앱과 연동해 간단한 질의·명령 실행 인터페이스를 제공할 수 있다. GUI에서 CLI를 호출하고 결과를 시각적으로 보여주는 패턴은 로컬 생산성 도구로 적합하다. 이 방식은 민감 데이터가 로컬에 머물도록 하면서도 자연어 인터페이스로 시스템 기능을 활용하는 유스케이스에 맞는다.
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 11.수집 2026. 08. 11.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.