본문으로 건너뛰기
5분 AI.
TRENDSHIFT 딥다이브 · 2026-06-10 최초 분석 · 2026-10-31 재검토

goose 딥다이브
— Rust로 만든 "어디서든 도는" 범용 AI 에이전트

앱·CLI

빠른 판단

무엇
모델 제공자를 바꿔 연결하며 파일·명령·외부 도구를 사용하는 로컬 AI 에이전트 앱과 CLI
이럴 때
내 컴퓨터에서 코드 작성·자료 조사·문서 작업을 맡기고 작업에 쓸 모델과 도구를 직접 고를 때
goose는 내 컴퓨터에서 직접 도는 오픈소스 범용 AI 에이전트입니다. 데스크탑 앱·CLI·HTTP 서버라는 세 가지 얼굴을 모두 갖췄고, 코어는 Rust(64%), 데스크탑 UI는 TypeScript/React(29%)로 짜였습니다. 원래 결제 회사 Block(스퀘어)이 만들었지만 지금은 Linux Foundation 산하 AAIF(Agentic AI Foundation)로 이관된 중립 프로젝트입니다. 여러 LLM 연결 방법과 MCP 확장 시스템, 그리고 "에이전트 설정을 통째로 공유하는" recipe 시스템이 코드 곳곳에 살아 있습니다. (저장소: aaif-goose/goose · Rust+TypeScript · ⭐45.2k · Apache-2.0 · 초판 v1.37.0; 현재 1.57.0 소스 재검토)
읽기 전에 · 동명이인 주의

이 인덱스에는 이름이 같은 goose가 둘 있습니다. 이 문서는 45.2k★ AI 에이전트 goose(aaif-goose/goose)를 다룹니다. WHOOP 5.0 밴드용 건강 앱인 b-nnett/goose는 별도 문서(goose-deep-dive.html)에서 다뤘습니다. 깃허브에서 레포 이름은 얼마든지 겹칠 수 있으니, 항상 owner/repo 풀네임으로 확인하는 습관이 좋습니다.

목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트
  7. 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

한 문장으로 — 이게 뭐 하는 물건인가

"클라우드가 아니라 내 컴퓨터에서 직접 돌면서, 코드 작성부터 자료 조사·문서 작업·자동화까지 시켜먹을 수 있는 오픈소스 AI 에이전트"입니다. AI 에이전트란 단순히 질문에 답하는 챗봇이 아니라, 파일을 읽고·명령을 실행하고·도구를 골라 쓰면서 여러 단계의 작업을 스스로 진행하는 프로그램을 말합니다. goose는 그 에이전트를 macOS·Linux·Windows용 데스크탑 앱, 터미널 CLI, 그리고 어디에든 심을 수 있는 API 서버, 세 형태로 제공합니다.

가장 큰 특징은 "특정 회사에 묶이지 않는다"는 점입니다. Anthropic·OpenAI·Google·Ollama 등 15개 이상의 프로바이더를 API 키로 붙일 수 있고, 심지어 이미 결제 중인 Claude·ChatGPT·Gemini 구독을 ACP라는 프로토콜로 끌어와 쓸 수도 있습니다. 2026년 Block에서 Linux Foundation 산하 AAIF로 이관되면서 "한 회사의 제품"이 아니라 공공 인프라 성격의 에이전트 플랫폼으로 자리를 굳히는 중입니다.

핵심 비유

"아무 통신사 유심이나 꽂아 쓰는 자급제 폰" — 두뇌(LLM)를 갈아끼우는 에이전트 본체

통신사 약정폰은 그 통신사에서만 쓸 수 있지만, 자급제 폰은 아무 유심이나 꽂으면 됩니다. goose가 바로 자급제 폰입니다 — 본체(에이전트 루프·도구·UI)는 goose가 제공하고, 두뇌(LLM)는 Anthropic이든 OpenAI든 내 PC의 Ollama든 마음대로 꽂아 씁니다.

여기에 더해 "이미 쓰는 요금제(Claude·ChatGPT 구독)를 그대로 연결"하는 ACP까지 지원하니, 두뇌 선택의 자유가 이 프로젝트의 정체성입니다.

용어
AI 에이전트 (AI Agent)
LLM(거대 언어 모델)에 도구 사용 능력과 반복 실행 루프를 붙인 프로그램. "답변 생성"에서 멈추지 않고, 파일 읽기·셸 명령·웹 조회 같은 도구를 호출하고 그 결과를 보고 다음 행동을 정하는 과정을 목표 달성까지 반복한다.
용어
MCP (Model Context Protocol)
에이전트와 외부 도구(파일시스템·DB·서비스)를 연결하는 표준 규격. "도구계의 USB 규격"이라 생각하면 된다. goose는 MCP 표준 덕분에 70개 이상의 확장(extension)을 꽂아 쓸 수 있고, 공식 Rust SDK인 rmcp로 구현했다.
용어
ACP (Agent Client Protocol)
에이전트끼리, 또는 에디터와 에이전트가 서로 대화하는 표준 프로토콜. goose는 ACP 서버도 되고(다른 도구가 goose를 부려먹기), ACP 클라이언트도 된다(goose가 Claude Code·Codex 같은 외부 에이전트를 "프로바이더"처럼 흡수). 구독 재사용의 비밀이 바로 이것.

2왜 주목받는가

트렌딩 이유 · 비슷한 도구 대비 위치

goose가 다시 트렌딩에 오른 직접적 계기는 Linux Foundation 산하 AAIF(Agentic AI Foundation)로의 이관입니다. README 첫 줄에 "block/goose에서 이사했다"는 공지가 붙어 있을 만큼 최근 일입니다. 한 기업(Block)의 사이드 프로젝트에서 쿠버네티스처럼 재단이 관리하는 중립 오픈소스로 격이 바뀐 것인데, 기업 입장에선 "벤더 종속 없이 도입할 수 있는 에이전트"라는 신뢰 신호가 됩니다.

두 번째 이유는 구독 재사용(ACP)입니다. 에이전트를 쓰려면 보통 API 키를 새로 발급받아 토큰당 비용을 내야 하는데, goose는 이미 결제 중인 Claude·ChatGPT·Gemini 구독을 ACP로 연결해 쓰는 길을 열었습니다. 개인 개발자에게는 기존 계정의 지원 경로로 데스크톱 에이전트를 연결하는 매력적인 선택지입니다.

비슷한 도구와의 위치

도구성격goose와의 차이
Claude CodeAnthropic의 코딩 CLI 에이전트Claude 전용·터미널 중심. goose는 멀티 프로바이더 + 데스크탑 앱이 기본
OpenHands오픈소스 코딩 에이전트(웹 UI)코딩 작업 특화. goose는 코딩 외 리서치·문서·자동화까지 범용 지향
goose로컬 우선 범용 에이전트데스크탑+CLI+API 서버 3면 제공, Rust 코어, 재단(AAIF) 거버넌스
함정
"에이전트 = 코딩 도구"라고만 생각하면 절반을 놓친다

코딩 에이전트 경쟁이 워낙 뜨겁다 보니 goose도 "또 하나의 코딩 CLI"로 오해받기 쉽다. 하지만 goose의 공식 소개 첫 문장은 "Not just for code"다. 스케줄러(예약 실행), recipe(작업 패키지), 메모리·튜토리얼 같은 내장 확장 구성을 보면 일상 업무 자동화 플랫폼을 목표로 설계됐음이 드러난다.

해결
"로컬에서 도는 범용 비서 + 두뇌 교체 자유"로 읽어야 구조가 보인다

이 관점으로 보면 왜 데스크탑 앱(Electron)에 공을 들이는지, 왜 여러 프로바이더를 연결하는지, 왜 recipe로 "에이전트 구성 공유"를 만들었는지가 한 줄로 꿰어진다. 비개발자 동료에게 "이 recipe 딥링크 눌러" 하고 건네는 시나리오까지 포함한 설계다.

3기술 스택 전체 지도

2026-10-31 고정 소스의 workspace는 1.57.0이며 Rust edition 2021·최소 rust-version 1.94.1을 선언한다. rust-toolchain.toml은 실제 개발 도구 체인 1.99.0을 선택한다. UI manifest도 1.57.0, Node ^24.10.0·pnpm ≥10.30.0이다. 설치 바이너리 사용과 소스 개발의 요구사항은 구분한다.

층현재 경로·역할
실행 코어goose-agent: 상태 머신·추론·도구·효과
통합 기능goose: provider·session·MCP·ACP·recipe·gateway
명령goose-cli: goose 바이너리와 기능 플래그
공통 계층goose-provider-types·goose-providers·goose-context-management
UIElectron·React, ui/goose-acp-client의 TypeScript ACP 클라이언트

루트 rmcp는 3.4.1, agent-client-protocol은 2.2.0이다. 선택 기능과 배포 방식에 따라 사용할 수 있는 도구가 달라지므로 단순 폴더 수나 모든 provider의 기능 동등성을 보장하는 숫자로 설명하지 않는다.

4아키텍처 심화 분석

데스크톱 UI → gooseServe.ts └─ goose serve 자식 프로세스 ├─ 준비 상태 확인 └─ /acp WebSocket + 토큰 → ACP 클라이언트 CLI → goose-cli → goose 통합 기능 └─ goose-agent 상태 머신 ├─ Operation 단계 ├─ Inference 단계 └─ 효과·이벤트·취소 신호

기존 초판의 별도 goose-server crate·goosed 중심 설명은 현재 tree와 다르다. 데스크톱 gooseServe.ts는 goose 바이너리를 찾아 serve 인자로 실행하고 준비 상태를 기다린다. 로컬 접속 URL은 ACP WebSocket과 토큰을 포함하며 로그용 주소는 따로 가린다. 자식 프로세스 수명·실패 진단·인증과 대화 규약을 함께 읽는 구조다.

goose-agent의 StateMachine은 Step::Operation과 Step::Inference를 구분한다. 각 operation이 도구·프롬프트 기여를 모으고 중복 도구 이름은 오류로 처리한다. 취소 신호는 tokio::select!로 실행과 경쟁하며, 중단된 미완료 도구 요청은 응답과 연결할 수 있도록 별도로 처리한다.

// machine.rs를 읽기 위한 개념 축약
for step in steps {
    if cancelled { return Cancelled; }
    match step { Operation(op) => run(op), Inference(model) => infer(model) }
}

효과와 추론을 나눈 것은 모델 호출 없이 순수 상태 규칙을 검토하기 쉽게 한다. 이 문서에서는 설치·모델·MCP 실행을 수행하지 않았다.

5디렉토리 구조 해부

crates/ ├─ goose-agent/ machine·operation·inference·tool ├─ goose/ 통합 agent·provider·session·recipe·ACP ├─ goose-cli/ goose CLI ├─ goose-provider-types/ 공통 데이터 ├─ goose-providers/ provider 구현 ├─ goose-context-management/ 컨텍스트 관리 ├─ goose-mcp/ MCP 확장 └─ goose-roaming/ roaming 구성 ui/ ├─ desktop/src/gooseServe.ts 로컬 serve 프로세스 관리 └─ goose-acp-client/ TypeScript ACP 클라이언트 workflow_recipes/ 작업 구성 예시

읽는 순서는 workspace manifest → goose-agent/src/machine.rs → ui/desktop/src/gooseServe.ts → goose-cli/Cargo.toml이다. UI는 별도 프로세스를 쓰지만 초판의 goosed.ts 경로는 현재 존재하지 않는다. core와 어댑터가 어떻게 나뉘는지 파일의 존재부터 확인한다.

6학습 포인트 (기술별)

각 기술에서 무엇을 배울 수 있나 + 실습 아이디어

① Rust 워크스페이스로 큰 프로젝트 쪼개기

여러 crate가 "코어 라이브러리 / CLI / 서버 / SDK"로 책임을 나눠 갖고, 의존성 버전은 루트의 [workspace.dependencies] 한 곳에서 관리됩니다. 실습: 작은 Rust 프로젝트를 lib + cli + server 3-crate 워크스페이스로 쪼개고, 공통 의존성을 workspace로 끌어올려 보기.

② trait 기반 추상화 — "두뇌 교체"의 코드화

Provider trait로 여러 LLM 서비스를 갈아끼우는 구조는 전략 패턴(Strategy Pattern)의 대규모 실전 사례입니다. 실습: "텍스트 요약기" trait를 정의하고 OpenAI 호환 API용 구현과 로컬 더미 구현 두 개를 만들어, 런타임에 골라 쓰는 미니 레지스트리 작성하기.

③ MCP/ACP — 에이전트 생태계의 두 표준

goose는 MCP(도구 연결)와 ACP(에이전트 간 대화)를 모두 1급으로 구현한 드문 레포입니다. 특히 ExtensionConfig enum이 stdio·HTTP 스트리밍·내장·인라인 파이썬 등 7가지 연결 방식을 하나의 타입으로 다루는 부분이 교재감입니다. 실습: rmcp(Rust)나 공식 Python SDK로 "오늘 날씨를 알려주는" MCP 서버를 만들어 goose에 stdio 확장으로 연결해 보기.

④ Electron + 사이드카 — 웹 UI와 네이티브 코어의 동거

FFI 대신 자식 프로세스 + HTTP를 택한 trade-off(결합도↓ vs 프로세스 관리 비용↑)를 ui/desktop/src/gooseServe.ts에서 직접 확인할 수 있습니다. 실습: 아무 언어로 짠 로컬 HTTP 서버를 Electron(또는 Tauri)에서 spawn하고, 종료 시 자식 프로세스를 깨끗이 정리하는 수명주기 코드 작성하기.

⑤ ACP 클라이언트와 계약 기반 풀스택

Rust 규약 → ACP → TypeScript 클라이언트로 이어지는 단일 진실원 파이프라인은 어떤 풀스택 프로젝트에도 이식 가능한 패턴입니다. 실습: FastAPI나 axum+utoipa로 작은 API를 만들고, 그 OpenAPI 스펙에서 프론트엔드 클라이언트를 자동 생성해 수동 fetch 코드와 비교하기.

7시스템 요구사항

목적확인한 조건
배포 앱·CLI 사용README의 macOS·Linux·Windows 설치 안내와 선택 provider 인증
Rust 소스 개발workspace 최소1.94.1; 저장소 toolchain1.99.0
UI 개발Node ^24.10.0·pnpm ≥10.30.0
모델 연결API·로컬 모델·ACP 경로에 따른 계정과 런타임 조건

범용 에이전트가 로컬에서 실행된다는 말은 모델이 항상 로컬에서 처리된다는 뜻이 아니다. provider별 데이터 전송·접근 범위와 도구 승인을 확인한다. 구독 연결은 지원 경로이며 무제한 사용이나 모든 작업의 추가 비용 0원을 보장하지 않는다. 정확한 RAM·디스크 최소값은 이 조사에서 확인하지 못했다.

8직접 해볼 수 있는 실습 과제

난이도별 — 사용 → 코드 읽기 → 재구현 순서로
난이도 ★☆☆ 입문

데스크탑 앱으로 첫 에이전트 작업 돌려보기

데스크탑 앱을 설치하고 프로바이더 하나를 연결한 뒤, "이 폴더의 파일들을 정리해 README 초안을 써줘" 같은 멀티스텝 작업을 시켜 본다. 에이전트가 도구를 고르고 반복하는 과정을 화면에서 관찰하며 4장의 흐름도와 대조하기.

난이도 ★☆☆ 입문

recipe 해부하기

workflow_recipes/의 YAML 레시피 하나를 열어 instructions·extensions·파라미터가 어떻게 선언되는지 분석하고, 내 업무 하나(예: 주간 보고 초안)를 recipe로 작성해 goose recipe validate로 검증해 본다.

난이도 ★★☆ 중급

나만의 MCP 확장 연결

Python 공식 MCP SDK로 도구 1개짜리 MCP 서버(예: 사내 위키 검색 흉내)를 만들고, goose에 stdio 확장으로 등록해 에이전트가 실제로 호출하게 만든다. 어떤 스키마를 줘야 LLM이 도구를 "잘 고르는지" 설명문을 다듬어 보기.

난이도 ★★☆ 중급

declarative 프로바이더 추가

crates/goose-providers/src/declarative/의 JSON 하나를 본떠, OpenAI 호환 API를 제공하는 다른 서비스(또는 로컬 vLLM)를 코드 수정 없이 JSON만으로 등록해 본다. "쉬운 확장 경로"가 어떻게 설계됐는지 체감하는 과제.

난이도 ★★★ 고급

Agent::reply() 루프 정독·도식화

agents/agent.rs의 reply() → reply_internal()을 읽고, max_turns·컨텍스트 압축·도구 호출 분기를 포함한 상태 다이어그램을 직접 그린다. tokio::select!로 알림과 결과를 한 스트림에 합치는 tool_stream()까지 따라가면 비동기 Rust 실전 독해 완성.

난이도 ★★★ 고급

미니 에이전트 루프 재구현

아무 언어로 "LLM 호출 → 도구 호출 파싱 → 실행 → 결과 재투입"을 도는 100줄짜리 에이전트 루프를 짜 본다. goose가 왜 스트리밍 우선 trait·이벤트 enum·세션 영속화를 뒀는지, 직접 만들며 결핍으로 배우는 과제.

9관련 기술 심화 학습 로드맵

주차별 — 이 레포를 발판으로 더 멀리
주차학습 주제실천 목표
1주차에이전트 개념·goose 사용데스크탑+CLI 설치, 프로바이더 연결, 멀티스텝 작업 5개 실행
2주차MCP 표준MCP 스펙 읽기, 도구 1개짜리 서버 제작·연결
3주차비동기 Rust 기초tokio·async-stream 튜토리얼, 작은 스트리밍 CLI 작성
4주차goose 코어 정독agent.rs·providers/base.rs·extension_manager.rs 독해·도식화
5주차axum 서버 패턴SSE 스트리밍 엔드포인트 + utoipa OpenAPI 생성 실습
6주차Electron 사이드카웹 UI + 네이티브 백엔드 프로세스 관리 미니앱
7주차ACP·에이전트 상호운용goose acp 모드 실험, 에디터(Zed 등)와 연결 구조 이해
8주차나만의 에이전트recipe+MCP 확장 조합으로 실제 업무 자동화 1건 완성

10핵심 키워드 사전

이 프로젝트에 등장하는 주요 용어
용어
goosed
초판에서 설명한 서버 실행 파일. 현재 구조는 goose serve·ACP 경로를 먼저 확인한다. 데스크탑 앱의 백엔드이자, 외부 시스템이 goose를 API로 쓰는 관문. 이름은 "goose daemon"의 줄임.
용어
MCP (Model Context Protocol)
에이전트와 도구를 잇는 표준 규격. goose는 rmcp(공식 Rust SDK)로 구현하며 stdio·HTTP 스트리밍·내장 등 7가지 연결 방식을 지원한다.
용어
ACP (Agent Client Protocol)
에이전트-클라이언트 간 표준 대화 프로토콜. goose는 ACP 서버(부려지기)와 클라이언트(Claude Code 등 외부 에이전트를 프로바이더로 흡수) 양방향을 모두 구현.
용어
프로바이더 (Provider)
LLM 연결 어댑터. trait 기반 정적 등록 34종 + JSON 선언형 29종. "두뇌 교체 자유"를 코드로 구현한 계층.
용어
recipe
프롬프트·확장·파라미터를 YAML/JSON 한 벌로 묶은 "에이전트 구성 패키지". 딥링크로 설치 공유가 가능해 비개발자에게 작업 자동화를 배포하는 통로가 된다.
용어
extension (확장)
goose에 도구를 더하는 단위(= MCP 서버). developer(셸·파일), memory, computercontroller 같은 내장 확장과 외부 MCP 서버 모두 포함.
용어
compaction (컨텍스트 압축)
대화가 길어져 LLM 컨텍스트 한도에 가까워지면 과거 내용을 요약해 줄이는 기법. context_mgmt 모듈이 담당하며, 긴 에이전트 세션의 생존 비결.
용어
사이드카 (Sidecar)
메인 앱 옆에 보조 프로세스를 별도로 띄워 협력시키는 구조. Electron 앱이 goosed를 spawn해 HTTP로 통신하는 방식이 전형적 예.
용어
SSE (Server-Sent Events)
서버가 클라이언트로 텍스트 이벤트를 실시간으로 흘려보내는 HTTP 표준. goosed가 에이전트 진행 상황을 UI에 중계하는 수단.
용어
AAIF (Agentic AI Foundation)
Linux Foundation 산하의 에이전틱 AI 재단. goose가 Block에서 이관된 곳으로, 중립 거버넌스가 기업 도입의 심리적 장벽을 낮춘다.
용어
uniffi
Rust 코드에서 Python·Kotlin 등 다른 언어 바인딩을 자동 생성하는 Mozilla 도구. goose-sdk가 이를 옵션으로 지원해 타 언어에서 goose 코어를 재사용할 길을 연다.

11참고 링크

현재 정본: SHA 6ec4e9a의 README·Cargo.toml·rust-toolchain.toml·ui/desktop/package.json·gooseServe.ts·crates/goose-agent/src/machine.rs. 초판 수치와 1.37.0 분석 범위는 당시 기록입니다.

더 깊이 파고들 때
링크설명
GitHub 저장소소스 전체. Justfile·crates/goose/가 출발점
공식 Quickstart설치·첫 실행 가이드
ACP 프로바이더 가이드Claude/ChatGPT/Gemini 구독 연결 방법
AAIF (Agentic AI Foundation)goose가 속한 Linux Foundation 산하 재단
MCP 공식 사이트도구 연결 표준 스펙·SDK
GOVERNANCE.md재단 이관 후의 프로젝트 운영 구조
CUSTOM_DISTROS.md나만의 goose 배포판 만들기(프로바이더·브랜딩 프리셋)