AI 에이전트 Nanobot 소개

Ultra-Lightweight Personal AI Assistant

AI 에이전트 Nanobot 소개

목차

1. Nanobot 이란
2. Openclaw와 Nanobot의 비교
3. nanobot의 핵심 기능
4. 설정 파일
5. 플러그인 추가 방법
6. 보안관련 주의사항
7. 설치 및 사용
8. 맺음말

1. Nanobot 이란?

nanobot은 AI 에이전트 시장의 선구자 격인 OpenClaw(구 Clawdbot, Moltbot)를 기반으로 2026년 2월 1일 홍콩대학교 데이터 지능 연구소(HKUDS)에서 발표한 초경량 개인용 AI 어시스턴트로 효율성과 코드의 간결성을 극대화한 오픈소스 소프트웨어입니다.

이 도구는 99% 더 적은 코드를 사용하면서도 강력한 에이전트 기능을 제공하며, 낮은 리소스 소모와 빠른 실행 속도가 특징입니다.

사용자는 텔레그램, 디스코드, 슬랙 등 다양한 메시징 플랫폼과 연동하여 AI와 소통할 수 있습니다.

또한 OpenAI, Anthropic, Google Gemini와 같은 주요 LLM 제공업체는 물론, 로컬 모델 및 MCP(Model Context Protocol)를 통한 외부 도구 확장까지 지원합니다.

설치와 설정이 간편하여 연구자와 개발자가 자신만의 맞춤형 AI 환경을 구축하고 확장하는 데 최적화되어 있습니다.

2. Openclaw와 Nanobot의 비교

OpenClaw가 방대한 생태계를 기반으로 한 '엔터프라이즈 플랫폼'을 지향한다면, Nanobot은 불필요한 추상화를 제거한 '경량화된 연구 및 커스텀 최적화 도구'로서의 전략적 가치를 가집니다.

2.1 설계 철학

  • OpenClaw (All-in-one Monolith): '모든 기능을 하나에(Full-stack)' 담는 방식을 취합니다. 텔레그램, 디스코드 통합부터 브라우저 제어, 크론 작업까지 단일 프레임워크 내에서 해결하려 하며, 이는 풍부한 즉시 사용성(Out-of-the-box)을 제공하지만 시스템 의존성을 극도로 높입니다.
  • Nanobot (Unix Philosophy): "하나의 일을 잘하는 작은 도구들을 조합한다"는 철학을 따릅니다. 핵심 에이전트 루프와 최소한의 인터페이스만 유지하고, 나머지는 플러그인이나 외부 MCP(Model Context Protocol)를 통해 확장하는 구조입니다.

2.2 코드 규모

  • OpenClaw (Clawdbot/Moltbot 계보): 코드 라인 수 약 430,000줄, 학습 곡선 매우높음
  • Nanobot (HKUDS): 약 4,000줄, 학습 곡선 매우 낮음 (수일 내 전체 코드 파악)

2.3 권한 모델

  • OpenClaw: 브라우저 자동화와 시스템 제어를 위해 화면 녹화(Screen Recording), 마이크 접근, 알림 권한 등 광범위한 시스템 권한을 요구합니다. 이는 사실상 'sudo' 수준의 관리자 권한을 부여하는 것과 같으며, 에이전트 탈취 시 호스트 시스템 전체의 데이터 유출(Privacy Perimeter Breach)로 이어집니다.

  • Nanobot: '제한적 공격 표면' 전략을 취합니다. 특히 restrictToWorkspace 옵션을 통해 에이전트의 파일 접근 권한을 특정 디렉터리로 엄격하게 가두는 샌드박싱(Sandboxing) 기능을 제공하여 경로 탐색 공격(Path Traversal)을 원천 차단합니다.

2.4 토큰 소모량

  • OpenClaw: 다기능 수행을 위해 시스템 프롬프트에만 수천 개의 토큰(평균 2,000개 이상)을 소모합니다. 이는 OpenClaw가 지원하는 프롬프트 캐싱(Prompt Caching) 기능을 사용하더라도, 고빈도 자동화 수행 시 기본 비용을 높이는 원인이 됩니다.
  • Nanobot: 경량화된 시스템 프롬프트(평균 200개 내외)를 사용하여 토큰 소모를 획기적으로 줄였습니다.

3. nanobot의 핵심 기능 (Key Features)

  • 초경량 (Ultra-Lightweight): OpenClaw를 극도로 가볍게 구현한 버전으로, 기존 프로젝트 대비 코드가 99% 작아졌으며 처리 속도는 훨씬 빠릅니다.
  • 연구용으로 최적화 (Research-Ready): 코드가 깔끔하고 가독성이 높아, 연구 목적으로 내부 구조를 이해하거나 기능을 수정 및 확장하기가 매우 쉽습니다.
  • 매우 빠른 속도 (Lightning Fast): 시스템이 차지하는 용량(footprint)이 최소화되어 있어 구동 시작 속도가 빠릅니다. 또한, 리소스 사용량이 낮아 더 빠른 반복 작업(iteration)이 가능합니다.
  • 사용 편의성 (Easy-to-Use): 원클릭(One-click) 배포를 지원하여 복잡한 설정 없이 즉시 사용할 수 있습니다.

4. 설정 파일

기본 config 디렉토리 (~/.nanobot/workspace) 에 있는 md 파일을 통해 nanobot의 성격을 지정할 수 있습니다.

  • AGENTS.md

    • 개인 비서 에이전트가 어떻게 동작해야 하는지 규정하는 최상위 기본 매뉴얼입니다. 에이전트의 작업 공간, 세션 시작, 메모리 처리, 스킬 활용 등의 규칙을 담고 있습니다.
    • 세션 시작 필수 규칙: 에이전트는 대답하기 전에 반드시 SOUL.md, USER.md 파일과 과거 메모리 기록을 읽고 현재 세션을 파악해야 합니다.
    • 메모리 시스템 운영: 매일의 기록(Daily log)과 장기 기억(Long-term memory)을 어떻게 저장하고 읽어올지에 대한 지침이 포함되어 있습니다.
    • 스킬 및 도구(Tools & skills): 에이전트가 사용할 수 있는 핵심 스킬(예: 브라우저 제어, 이메일, 캘린더, WhatsApp 연동 등)과 환경별 설정 방식이 정의되어 있습니다.
    • 공유 공간 규칙: 그룹 채팅이나 공개 채널에서 사용자의 대변인처럼 행동해서는 안 되며, 사적인 데이터를 유출하지 않도록 주의해야 합니다.
  • HEARTBEAT.md

    • 에이전트가 수행할 주기적인 작업(예약 작업)을 설정하는 파일입니다. 초기 설정 명령어인 nanobot onboard를 실행하면 사용자의 작업 공간(~/.nanobot/workspace/HEARTBEAT.md)에 자동으로 생성됩니다.
    • nanobot의 게이트웨이가 30분마다 깨어나 이 파일을 확인하고, 등록된 작업이 있다면 이를 실행한 뒤 가장 최근에 활성화된 채팅 채널로 결과를 배달합니다
  • SOUL.md

    • 단순한 챗봇이 아닌, 에이전트 본연의 정체성, 성격, 행동 원칙(Who You Are)을 정의하는 파일입니다.
  • TOOLS.md

    • 에이전트가 사용하는 도구(Tools)와 스킬(Skills)이 사용자의 특정 환경에서 '어떻게' 작동해야 하는지를 기록해 두는 로컬 노트(Local Notes) 입니다.
    • 에이전트가 스킬을 실행할 때마다 "우리 집(또는 내 업무 환경)에서는 이 도구를 이런 설정으로 사용해"라고 알려주는 전용 지침서 역할을 합니다.
  • USER.md

    • 에이전트가 도움을 줄 대상인 '사용자(Human)'에 대해 학습하고 기록하는 공간입니다.
    • 본인의 성향에 맞춰 이 파일을 업데이트하려면, 대화를 통해 에이전트가 스스로 학습하여 업데이트하도록 두거나, 직접 파일을 열어 다음의 주요 항목들을 작성해 주면 됩니다.
    • 이름 및 호칭, 나의 개인적인 성향과 업무 스타일, 가치관 및 관심사, 기피 요소 등을 기입하면 됩니다.
    • 이 파일의 궁극적인 목적은 에이전트가 당신에 대해 아는 것이 많아질수록 더 훌륭한 조수가 되도록 만드는 데 있습니다
  • MEMORY.md

    • 에이전트의 '기억'을 담당하는 모듈이자 저장소입니다.
    • 반드시 준수해야 하는 규칙등을 지정하는 곳입니다.
  • SKILL.md

    • nanobot이 기본으로 제공하는 도구 외에 사용자가 에이전트의 능력을 확장하기 위해 추가하는 새로운 '행동 패턴'들을 의미합니다.
    • 복잡한 코드를 작성할 필요 없이 정형화된 포맷으로 작업 스펙을 적어주면, 에이전트가 이를 읽고 적절한 도구를 조합해 지시된 임무를 수행합니다.
  • sessions 디렉토리

    • 사용자와의 대화 세션 상태와 맥락(Context)을 기록하고 관리하는 요소입니다.
    • 다중 인스턴스를 설정할 때 각기 다른 작업 공간(workspace)을 할당하면, 이 세션 상태와 런타임 데이터가 서로 완벽히 격리된 상태로 운영됩니다.

5. 플러그인 추가 방법

nanobot에서 새로운 소통 채널(예: 사내 메신저, 커스텀 웹훅 등)을 연결하기 위한 커스텀 채널 플러그인을 기존 소스 수정없이 만들 수 있습니다.

구축 방법은 크게 '클래스 생성, 엔트리 포인트 등록, 설치 및 설정'의 단계로 이루어집니다.

구체적인 개발 및 연동 방법은 다음과 같습니다.

  • 1단계: 채널 클래스 생성 (BaseChannel 상속)
    nanobot의 BaseChannel을 상속받아 새로운 채널 클래스(예: WebhookChannel)를 작성해야 합니다. 이 클래스에서는 다음 3가지 필수 메서드를 반드시 구현해야 합니다.

    • async start(): 플랫폼에 연결하고 메시지를 지속적으로 수신하는 무한 루프를 실행합니다. 사용자의 메시지를 수신하면 내장된 _handle_message() 메서드를 호출하여 에이전트에게 전달해야 합니다.

    • async stop(): 게이트웨이가 종료될 때 호출되며, 실행 상태(self._running = False)를 변경하고 연결을 안전하게 정리합니다.

    • async send(msg): 에이전트가 생성한 응답 메시지(OutboundMessage)를 다시 외부 플랫폼으로 전송하는 역할을 합니다.

  • 2단계: 엔트리 포인트 등록 (플러그인 인식)
    nanobot의 게이트웨이가 시작될 때 커스텀 플러그인을 자동으로 찾을 수 있도록, 프로젝트의 pyproject.toml 파일에 Python 엔트리 포인트(Entry point)를 등록해야 합니다.

    • [project.entry-points."nanobot.channels"] 그룹 아래에 채널을 등록합니다.
      여기서 지정한 키(예: webhook)가 향후 config.json에서 사용할 채널 설정의 섹션 이름이 됩니다.
  • 3단계: 설치 및 환경 설정
    작성한 플러그인 패키지를 환경에 설치합니다 (예: pip install -e .)
    사용자의 설정 파일인 ~/.nanobot/config.json을 열고, 앞서 등록한 키 이름으로 채널 설정을 추가합니다.
    반드시 "enabled": true를 설정해야 게이트웨이가 해당 채널을 인스턴스화하고 시작합니다.

  • 4단계: 실행 및 테스트
    터미널에서 nanobot gateway 명령어를 실행하면, nanobot이 설정된 채널 플러그인을 자동으로 스캔하여 불러옵니다.
    정상적으로 연결되면 외부 플랫폼에서 보낸 메시지가 에이전트로 전달되고, 에이전트의 답변이 send() 메서드를 통해 다시 전달됩니다.

  • 권장 명명 규칙
    통일성을 위해 커스텀 채널을 만들 때 다음 규칙을 따르는 것이 권장됩니다.
    PyPI 패키지명: nanobot-channel-{채널명} (예: nanobot-channel-webhook)
    Python 패키지명: nanobot_channel_{채널명}
    엔트리 포인트 키: {채널명} (예: webhook)
    설정 파일 섹션: channels.{채널명} (예: channels.webhook)

  • 플러그인 소스 구조

nanobot-channel-webhook/
├── nanobot_channel_webhook/
│   ├── __init__.py          # re-export WebhookChannel
│   └── channel.py           # channel implementation
└── pyproject.toml

6. 보안관련 주의사항

nanobot의 보안 관련 주의사항 및 설정 방법은 다음과 같습니다.

    1. 샌드박싱 및 권한 제한 (Workspace & Tool Security)
    • 작업 공간(Workspace) 격리: 프로덕션 환경에 배포할 때는 설정 파일(config.json)에서 "restrictToWorkspace": true로 설정하는 것이 권장됩니다.
      이 옵션을 켜면 에이전트가 사용하는 셸(Shell) 실행, 파일 읽기/쓰기/편집 도구가 지정된 작업 공간(workspace) 내에서만 작동하도록 제한되어, 경로 탐색(Path traversal) 공격이나 허용되지 않은 시스템 영역으로의 접근을 방지할 수 있습니다.

    • 셸(Shell) 실행 원천 차단: 에이전트가 시스템 셸 명령어를 아예 실행하지 못하도록 하려면 tools.exec.enable 옵션을 false로 설정하여 셸 권한을 완전히 비활성화할 수 있습니다.

    1. 사용자 접근 제어 (Access Control)
    • 화이트리스트(allowFrom) 설정: 봇과 대화하거나 명령을 내릴 수 있는 사용자를 제한하기 위해 각 채팅 채널 설정에 allowFrom 옵션을 제공합니다.

    • 기본 접근 거부: 보안이 강화된 v0.1.4.post4 버전부터는 allowFrom 값을 비워둘 경우([]) 모든 사용자의 접근이 기본적으로 거부됩니다.
      불특정 다수에게 봇을 공개하려면 명시적으로 ["*"] 값을 입력해야 합니다.

    1. 채널 및 연동 시 주의사항
    • 토큰 보안: Mochat 등 외부 플랫폼과 연동할 때 사용하는 API 토큰(예: claw_token)은 매우 민감한 정보이므로 절대 외부에 노출되지 않도록 비공개로 관리해야 합니다.

    • 이메일 접근 제어: 이메일 채널을 사용할 때는 안전 장치(Safety gate)로서 consentGranted 설정이 적용되어 있습니다.
      이를 true로 설정해야만 봇이 메일함에 접근할 수 있으며, false로 설정하면 권한이 완전히 차단됩니다.

    • 종단 간 암호화(E2EE): Matrix 채널 사용 시 e2eeEnabled 옵션을 true로 설정하면 종단 간 암호화 통신을 활성화하여 메시지를 안전하게 보호할 수 있습니다.

    1. 데이터 프라이버시 보장
    • 로컬 LLM 서버(vLLM, Ollama 등)와 연동하여 사용할 수 있는 기능이 기본으로 내장되어 있습니다.
    • 외부 클라우드 API를 거치지 않고 오프라인 상태에서 AI를 구동할 수 있어, 사적인 파일이나 업무 데이터가 외부로 유출될 우려가 없습니다.
    • nanobot은 모든 권한을 요구하는 무거운 에이전트(OpenClaw)와 달리, 공격 표면(Attack Surface)을 최소화하도록 설계되어 보안에 민감한 환경에서도 더욱 안전하게 운영할 수 있습니다.

7. 설치 및 사용

pypi 이용한 설치

pip install nanobot-ai

초기화

nanobot onboard

기본 설정 파일 (~/.nanobot/config.json)

  • ~/.nanobot/config.json 에 다음 설정들을 추가, 수정할 수 있습니다.
  • default provider 와 api key 설정
  • channel 설정
  • mcp 설정
{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-opus-4-5",
      "provider": "openrouter"
    }
  },
  "channels": {
    "sendProgress": true,
    "sendToolHints": false,
    "telegram": {
      "enabled": false,
      "token": "",
      "allowFrom": [],
      "proxy": null,
      "replyToMessage": false
    },  
    ...
  "providers": {
    "anthropic": {
      "apiKey": "",
      "apiBase": null,
      "extraHeaders": null
    },  
    ...
  "tools": {
    "mcpServers": {}
  }    
}

nanobot CLI 사용법

Command Description
nanobot onboard Initialize config & workspace at ~/.nanobot/
nanobot onboard --wizard Launch the interactive onboarding wizard
nanobot onboard -c <config> -w <workspace> Initialize or refresh a specific instance config and workspace
nanobot agent -m "..." Chat with the agent
nanobot agent -w <workspace> Chat against a specific workspace
nanobot agent -w <workspace> -c <config> Chat against a specific workspace/config
nanobot agent Interactive chat mode
nanobot agent --no-markdown Show plain-text replies
nanobot agent --logs Show runtime logs during chat
nanobot gateway Start the gateway
nanobot status Show status
nanobot provider login openai-codex OAuth login for providers
nanobot channels login <channel> Authenticate a channel interactively
nanobot channels status Show channel status

8. 맺음말

강력한 생태계, 풍부한 문서화, 그리고 모든 메시징 채널을 아우르는 올인원 자동화 도구가 필요하다면 OpenClaw는 대체 불가능한 선택입니다. 하지만 나만의 커스텀 비서를 밑바닥부터 구축하고 싶거나, 최소한의 리소스로 최고의 보안과 효율을 뽑아내고 싶다면 Nanobot이 정답이 될 것입니다.

Subscribe to PAASUP IDEAS

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe