본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 22. 01:39

'오프라인 브레인(Offline Brain)' 구축하기: Android를 위한 첫 번째 커스텀 에이전트 스킬(Agent Skill) 작성기

요약

Google AI Edge Gallery의 에이전트 스킬 지원을 활용하여 Android 기기 내에서 동작하는 온디바이스 에이전트 'Offline Brain'을 구축하는 방법을 소개합니다. LiteRT-LM 엔진과 Gemma-4-E2B-it를 사용하여 데이터 유출 없이 로컬에서 노트를 저장하고 검색하는 프라이버시 중심의 에이전트 구현 가이드를 제공합니다.

핵심 포인트

  • Google AI Edge Gallery를 통한 온디바이스 에이전트 런타임 활용
  • LiteRT-LM 및 Gemma-4-E2B-it 기반의 로컬 추론 구현
  • JSON 매니페스트를 이용한 모바일 최적화 스킬 정의 방식
  • 데이터 서버 전송 없는 제로 트러스트 프라이버시 보안 확보

이 글은 Google I/O Writing Challenge인 'The Sandbox Revolution'에 제출하는 글입니다. 🚀 Google I/O 2026 키노트가 공개되었을 때, 인터넷은 즉시 Gemini와 클라우드 규모의 모델 추론(model reasoning)에 대해 떠들썩해졌습니다. 하지만 모바일 개발자로서 가장 패러다임을 바꾸는 발표는 훨씬 조용하게 이루어졌습니다. 바로 Google AI Edge Gallery에서의 에이전트 스킬(Agent Skills) 지원입니다. 우리는 이제 단순히 챗봇에 대해서만 이야기하는 것이 아닙니다. Google은 새로운 LiteRT-LM 엔진과 Gemma-4-E2B-it를 통한 거대한 32K 컨텍스트 윈도우(context window)를 활용하여, 완전한 에이전트 런타임(agent runtime)을 우리 주머니 속으로 직접 가져다 놓았습니다. 저는 이 기술이 얼마나 깊게 파고들 수 있는지 확인하고 싶었습니다. 단순히 내장된 통합 기능을 테스트하는 대신, 직접 하나를 만들어 보기로 했습니다. 여기 단 1바이트의 데이터도 서버에 닿지 않고 개인 개발 노트를 저장하고 검색하는 커스텀 온디바이스(on-device) 에이전트 스킬인 "Offline Brain"을 어떻게 구축하고 사이드로딩(sideloaded)했는지에 대한 실습 가이드가 있습니다.

왜 로컬 에이전트(Local Agents)가 게임의 판도를 바꾸는가 🔒 코드를 작성하기 전에, 이것이 왜 중요한지 이해해야 합니다. 역사적으로 AI가 당신의 일기를 읽거나 개인 건강 기록을 확인하게 하려면, 해당 데이터를 API를 통해 프록시(proxy)해야 했습니다. Edge Gallery의 새로운 아키텍처를 사용하면 기기 저장소에서 로컬 스킬(Local Skill)을 직접 가져올 수 있습니다. 추론(inference)은 당신의 실리콘(silicon, 프로세서)에서 일어납니다. 도구 실행(tool execution)은 당신의 로컬 샌드박스(sandbox) 내에서 이루어집니다. 이것이 바로 프라이버시의 성배인 제로 트러스트 에이전트(Zero-Trust Agents)입니다.

1단계: 스킬 매니페스트(The Skill Manifest) Edge Gallery를 위한 스킬을 구축하는 것은 Android APK를 컴파일할 필요가 없습니다. 대신, Google은 Model Context Protocol (MCP)과 매우 유사하지만 모바일 샌드박스 실행에 최적화된 개방형 표준을 채택했습니다. 모든 것은 단 하나의 JSON 파일에서 시작됩니다.

저는 offline-brain.json을 생성했습니다: { "skill_id" : "com.developer.offline_brain" , "name" : "Offline Brain" , "description" : "암호화된 개발 노트를 로컬에 저장하고 검색합니다." , "version" : "1.0.0" , "permissions" : [ "storage.read_local" , "storage.write_local" ], "tools" : [ { "name" : "save_note" , "description" : "마크다운 노트를 로컬 저장소에 저장합니다." , "parameters" : { "type" : "object" , "properties" : { "topic" : { "type" : "string" }, "content" : { "type" : "string" } }, "required" : [ "topic" , "content" ] } }, { "name" : "search_notes" , "description" : "주제별로 저장된 로컬 노트를 검색합니다." , "parameters" : { "type" : "object" , "properties" : { "query" : { "type" : "string" } }, "required" : [ "query" ] } } ] }

permissions (권한) 블록을 주목하세요. Edge Gallery는 스킬을 마이크로 앱 (micro-apps)처럼 취급합니다. 만약 제 스킬이 calendar.read 권한을 요청하지 않고 기기의 캘린더를 읽으려 시도한다면, LiteRT-LM이 이를 가로채어 도구 호출 (tool call)을 완전히 차단할 것입니다.

2단계: 로직 레이어 (Logic Layer, JavaScript 런타임)
서버 없이 오프라인에서 도구가 실제로 무언가를 수행하게 만들기 위해, 저는 Edge Gallery가 로컬 스킬을 위한 경량 V8 JavaScript 런타임을 지원한다는 것을 발견했습니다. 파일 I/O (File I/O)를 처리하기 위해 매니페스트 (manifest)와 함께 스크립트 번들 (script bundle)을 추가했습니다:

// brain_logic.js
export async function save_note ( args ) {
const timestamp = new Date (). toISOString ();
const data = ${ timestamp } \n\n ${ args . content } ;
// Edge Gallery가 노출하는 샌드박스 FileSystem API 사용
await SandboxFS . writeFile ( notes/ ${ args . topic } .md , data );
return { status : " success " , message : Note saved under ${ args . topic } };
}

export async function search_notes ( args ) {
const files = await SandboxFS . listFiles ( ' notes/ ' );
const matches = files . filter ( f => f . includes ( args . query ));
if ( matches . length === 0 ) return { result : " No notes found. " };
const content = await SandboxFS .

readFile(notes/${matches[0]}); return { result: content }; }

Step 3: Edge Gallery로 사이드로딩(Sideloading)하기
이 부분이 바로 마법이 일어나는 지점입니다. 저는 JSON 매니페스트(manifest)와 JS 스크립트를 offline-brain.skill로 압축했습니다. 그리고 Edge Gallery 내부에서 Gemma-4-E2B-it (2.6 GB) 모델을 다운로드했습니다. (반드시 Gemma 4 변체(variant)가 필요합니다. Gemma 3와 같은 이전 모델들은 에이전트 스킬(Agent Skills)에 필요한 도구 호출(tool-calling) 미세 조정(fine-tunes)이 부족합니다). 저는 Agent Skills 탭으로 이동하여 플로팅 액션 버튼(floating action button)을 누르고

커스텀 에이전트 스킬 (Agent Skills)과 로컬 MCP 서버 (local MCP servers)로 가는 문을 열어줌으로써, 그들은 우리의 AI 어시스턴트가 완전히 오프라인 상태에서, 그리고 완전히 보안이 유지된 상태로 우리를 실제로 이해하는 세상의 단면을 보여주었습니다. 만약 최신 Android 기기를 사용하고 있다면, 스스로를 위해 다음을 실천해 보세요. Edge Gallery를 다운로드하고, Gemma 4 모델을 내려받은 뒤, 여러분만의 로컬 스킬 (local skill)을 직접 작성해 보세요. 그것은 여러분이 모바일 개발 (mobile development)에 대해 생각하는 방식을 바꿔 놓을 것입니다. 즐거운 해킹 (Happy Hacking) 되시길 바랍니다! ✨

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0