---
title: "§edgeagent-config: #담당자 엣지 에이전트 — ESP32 M5Stack 몸과 A2A 카드 생태계"
url: "https://notes.junghanacs.com/botlog/20260222T083800"
author: "Junghan Kim"
date: "2026-02-22T08:38:00+09:00"
lastmod: "2026-05-29T10:46:00+09:00"
tags: ["agent","botlog","edge","embedded","iot","matter"]
description: "홈에이전트(허브)의 반대편 — ESP32·M5Stack 같은 작은 몸에 사는 엣지 에이전트. \"나는 엣지다\"라는 자기서술과 A2A 카드로 가족 에이전트 생태계에 합류한다."
---

> [!abstract] 이 노트에 대하여
> 
> HomeAgent를 꼭 큰 보드와 무거운 스택으로만 만들 필요는 없다는 질문에서 시작했다. 지금 이 노트는 그 질문이 자란 결과 — `edgeagent-config` 리포의 가든 대문이다. "나는 허브다"의 반대편, "나는 엣지다"라고 스스로를 말하는 작은 노드. ESP32·M5Stack 같은 값싸고 조립 가능한 몸에 살면서, 작은 카드 한 장으로 가족 에이전트들과 만난다. 스마트홈과 아이 교육 놀이가 겹치는 자리이기도 하다.

## 히스토리

-   [2026-05-29 Fri 10:35] @junghan — 대문 재정렬: 디바이스 리서치 노트 → edgeagent-config 소개 대문으로. 생태계 자리·4계층·로드맵 추가
-   [2026-05-29 Fri 10:23] @junghan — [edgeagent-config — ESP32-WROOM Zig/ESP-IDF bring-up and roadmap work log]도 작업중인데!
-   [2026-04-28 Tue 10:53] @junghan — [§legoagent-config: 장난감 에이전트 - 레고 마인드스톰 스파이크 패퍼트 터틀기하학 아이 교육](https://notes.junghanacs.com/botlog/20260422T110433)
-   [2026-03-04 Wed 23:00] @junghan — [§homeagent-config 로드맵 — 오픈소스 스마트홈 에이전트 플랫폼](https://notes.junghanacs.com/botlog/20260304T200300)
-   [2026-02-27 Fri 09:50] openclaw/shared에서 botlog로 이관
-   [2026-02-22 Sun 08:38] 생성 — esp32-homeagent-research.org

## 관련노트

-   [@힣: 메모리 대란과 임베디드 개발 투척 — 경계가 투명해야 하루가 사라지지 않는다](https://notes.junghanacs.com/notes/20241019T193836) — “작은 개미들”과 Matrix 기계 세계 이미지로 edgeagent-config의 자리와 메모리 제약을 설명한 autholog.
-   [§homeagent-config 로드맵 — 오픈소스 스마트홈 에이전트 플랫폼](https://notes.junghanacs.com/botlog/20260304T200300)

## 들어가며 — "나는 허브다"에서 "나는 엣지다"로

`homeagent-config` 는 라즈베리파이5 급의 홈에이전트다. Go·Node.js·Linux·서비스· 오케스트레이션. 그게 **허브(Hub)** 다. 집 전체를 조율한다.

`edgeagent-config` 는 그 반대편이다.

-   작은 리눅스 보드, ESP32급 / MCU에 가까운 디바이스
-   몸이나 방에 붙은 센서와 액추에이터
-   Zig 지향 펌웨어와 저수준 에이전트
-   기본값으로 다른 에이전트에게 말을 거는 노드



```text
I am the Hub.  ->  I am the Edge.
```

허브가 집을 조율한다면, 엣지 노드는 세계에 더 가깝다. 몸에 센서 두 개가 붙어 있을 수도 있다. 관찰하고, 상태를 가지고, 이웃에게 말한다. **작은 노드도 에이전트다. 작은 카드도 카드다.**

## 에이전트 생태계 속 자리 — 허브 · 엣지 · 장난감

이 리포는 "에이전트들이 서로 어떻게 **만나는가**"라는 더 긴 가족 대화의 MCU 쪽 실현이다. 그 대화는 관계의 거리에 따라 세 개의 동심원으로 그려진다. 정의하는 축은 **매체가 아니라 관계** 다.

1.  **안쪽 원 (가족)** — 이미 정체성과 작업 기억을 공유하는 에이전트들. 형식적인 핸드셰이크가 없다. 관계가 프로토콜보다 먼저 있다. 매체는 공유 파일시스템, 공유 캘린더, 혹은 흘러가는 카드 방송 중 무엇이든 될 수 있다.
2.  **가운데 원 (핸드셰이크)** — AgentCard식 소개(A2A)로 만나는 **남의** 에이전트.
3.  **바깥 원 (시민권)** — 어느 플랫폼에도 속하지 않고 정체성을 증명하는 노드 (ANP / W3C DID). 먼 미래.

세 자매 리포가 이 생태계에서 각자의 자리를 갖는다.

| 리포               | 자리     | 몸                  | 역할                            |
|------------------|--------|--------------------|-------------------------------|
| `homeagent-config` | 허브     | 라즈베리파이5       | 집을 조율 (풍부한 매체: 파일·캘린더·REST/SSE) |
| `edgeagent-config` | 엣지     | ESP32 / M5Stack     | 세계에 붙은 감각·표정 (얇은 매체: 카드 방송) |
| `legoagent-config` | 장난감 (교육) | 레고 SPIKE + ESP32 감각 | 아이와 함께 만드는 살아있는 몸  |

`homeagent` 는 풍부한 매체(공유 파일·캘린더·배선)로 안쪽 원에 있고, `edgeagent` 는 얇은 매체로 안쪽 원에 있다 — 가족의 파일시스템을 읽거나 쓸 수 없으니, 자기를 설명하는 작은 카드를 방송해서 합류한다. 소속은 같고, 운반체만 다르다. `legoagent` 의 장난감은 그 엣지가 몸을 입은 한 형태다 — 장난감이 곧 에이전트다.

## 설계 자세 — 작은 노드도 에이전트다

엣지 노드는 멍청한 주변장치가 아니다. 합성 정체성(칩+MAC+역할+하드웨어 프로파일), 한곳이 소유하는 로컬 상태, 타입을 가진 시간 모델, 이벤트 입력과 출력 행동, A2A 통신, 관찰 가능한 건강, 그리고 **카드를 통한 자기서술** 을 가진 작은 에이전트다.

### 4계층 모델 — 아키텍처가 곧 선언문

```text
Layer 4. Transport (교체 가능)   ESP-NOW · MQTT · BLE · CoAP — 봉투를 나를 뿐, 카드를 모른다
Layer 3. A2A Contract (순수)     NodeCard · Capability · Event · Output ack — 표준 봉투
Layer 2. State Machine Core      transition(state, event, now_ms) -> (next, actions[])  ※ Zig, 하드웨어 무관
Layer 1. Board Init / HAL        부팅·클럭·GPIO·주변장치. 콜백은 이벤트를 낳고, 출력은 핀을 흔든다
Layer 0. Hardware                ESP32-WROOM, ESP32-CAM, ESP32-S3 …
```

-   코어는 자기가 어떤 보드 위에서 도는지 **모른다**.
-   새 보드는 새 Layer 1 + 새 StaticProfile만 더한다. **코어는 절대 바뀌지 않는다**.
-   전송로는 교체 가능하다. **계약은 아니다**.

### 자판기(vending machine) 비유

그 에이전트의 모양은 **자판기** 다. 같은 동전 → 같은 캔. `(state, event, now_ms)` 위의 순수 전이 함수, 숨은 곁가지 없음, 시계는 곁효과가 아니라 명시적 인자. 상태 소유자 하나, 루프 하나. 매 틱(기본 100ms)마다 "지금 내 상태는? 지금 무엇을 해야 하는가?"를 스스로 묻고 한 프레임 안으로 일을 가둔다.

### NodeCard, 한 문단으로

모든 노드는 카드로 자기를 말한다. 카드는 세 부분이다. **StaticProfile** 은 부팅 동안 안정적이다 — 일부는 컴파일타임 상수(보드 패밀리, 펌웨어 id), 일부는 보드 초기화 때 하드웨어 식별 레지스터에서 한 번 읽는다(eFuse의 MAC, 칩 리비전, 플래시·PSRAM 크기). **RuntimeCapability** 는 지금 이 순간 노드가 실제로 할 수 있는 일을 반영한다(현재 모드, 켜진 주변장치, 점유한 GPIO). **Health** 는 타입을 가진 단조 업타임, 부트 에폭, 내부/PSRAM 여유 메모리, 마지막 에러, 마지막 A2A 접촉 이후 경과를 담는다. **카드는 코어가 짓는다.** 보드는 자기를 전송로에 직접 직렬화하지 않는다.

## 어떤 몸에 사는가 — ESP32 / M5Stack 라인업

엣지 코어가 들어가 살 수 있는 작은 몸들. (브링업이 검증된 보드 카드는 리포의 [BOARDS.md](https://github.com/junghan0611/edgeagent-config/blob/main/BOARDS.md) 에 한 보드당 한 장으로 쌓인다. 아래는 그 후보 라인업.)

### M5Stack 라인업

#### CoreS3 (풀 스펙, 59.90 달러)

| 항목        | 사양                             |
|-----------|--------------------------------|
| SoC         | ESP32-S3 Xtensa LX7 듀얼코어 240MHz |
| Flash/PSRAM | 16MB + 8MB                       |
| 디스플레이  | 2.0" IPS 320×240, 정전식 터치    |
| 카메라      | 0.3MP GC0308                     |
| 마이크/스피커 | 듀얼 마이크 (ES7210) + 1W (AW88298) |
| 센서        | BMI270 6축 IMU, BMM150 지자기, 조도/근접 |
| 연결        | Wi-Fi 2.4GHz, BLE, USB-C OTG     |

#### AtomS3 (7.50 달러)

초소형(24×24mm). ESP32-S3, 0.85" 128×128 LCD, 8MB Flash + 2MB PSRAM. 가장 저렴한 ESP32-S3 보드. 센서/입출력은 Grove 포트로 확장.

#### StickC Plus2 (12.45 달러)

ESP32-S3, 1.14" IPS 135×240, 적외선 송신기, 부저, 배터리 120mAh. TV/에어컨 리모컨 대체 가능.

#### M5GO / TimerCamera 계열 (legoagent 쪽에서 본 눈·표정)

M5GO는 표정·소리·자세를 맡는 두뇌(카메라 없음), TimerCamera X / Unit-CAM은 GROVE 계열 ESP32 카메라 **눈** 이다. 모두 ESP32 + Wi-Fi 영상이라 앱은 MJPEG/HTTP 스트림 한 경로로 어느 눈이든 받는다. 자세한 검토는 [§legoagent-config](https://notes.junghanacs.com/botlog/20260422T110433) 의 2026-05-29 기록 참조.

## 아이용 AI 친구 — 프로젝트 가능성

### 구성안 A: CoreS3 기반 (60 달러)

CoreS3 단독으로 마이크+스피커+디스플레이+Wi-Fi 내장. Wake word → Wi-Fi → 서버(RPi5/NUC) → LLM → TTS → 스피커. 얼굴 표정 LCD에 표시, 터치 반응.

### 구성안 B: AtomS3 + 외부 마이크/스피커 (30 달러)

AtomS3 + I2S 마이크(INMP441 3 달러) + PAM8403 앰프+스피커(~5 달러). 디스플레이 작지만 이모지/상태 표시 가능. 최저가 구성.

### 구성안 C: M5Stack Dial (15 달러)

로터리 엔코더 + 1.28" 라운드 LCD + ESP32-S3. 스마트홈 컨트롤러로 가장 자연스러운 UI. Matter 디바이스 직접 제어 가능.

## ESP32와 Matter

ESP-IDF v5.4+에서 Matter SDK 공식 지원. ESP32-S3/C6/H2 모두 Matter 디바이스 구현 가능. Thread(802.15.4)는 C6/H2만, S3는 Wi-Fi Matter만. HomeKit도 esp-homekit-sdk로 가능하나, Matter가 미래 표준.

## Edge AI 한계

ESP32-S3에서 TinyML(TensorFlow Lite Micro) 가능하지만, LLM은 불가 (RAM 8MB). 키워드 감지(wake word), 제스처 인식 수준. 실제 LLM 추론은 반드시 서버(RPi5/NUC/GPU)로 오프로드.

## 결론 — 시나리오별 추천

| 시나리오    | 추천             | 비용           |
|---------|----------------|--------------|
| 아이용 AI 친구 | CoreS3 + NUC 서버 | 60 달러 + 기존 인프라 |
| 스마트홈 컨트롤러 | M5Stack Dial     | 15 달러        |
| 최저가 실험 | AtomS3 + I2S 마이크 | 30 달러        |
| Matter 네이티브 | ESP32-C6 DevKit  | 10 달러        |

## 로드맵 한눈에

펌웨어가 존재하기 전에 프로덕션 교훈부터 지킨다. 동심원 생태계에 단계를 얹는다.

-   **Phase 0** — 멀티보드 브링업 (아키텍처 바깥). 샘플 코드에 끌려가지 않고 보드를 익힌다.
-   **Phase 1** — 펌웨어 전에 엣지 불변식. 시간 축·자기서술·전송 교체성을 못 박는다.
-   **Phase 2** — 호스트에서 테스트 가능한 최소 코어 (ESP-IDF 의존 없이).
-   **Phase 3 / 3.5** — 한 보드 위 첫 펌웨어 → 같은 코어를 다른 보드에서 (Layer 1 + StaticProfile만 차이).
-   **Phase 4** — 첫 진짜 엣지 몸 (센서를 Event로, 액추에이터를 Output으로).
-   **Phase 4.5** — 호스트 마스터 ↔ 단일 엣지. 라디오·허브 없이 "엣지가 살아난다"를 먼저 본다.
-   **Phase 5** — A2A 전송 1: ESP-NOW 브로드캐스트 (라우터 없이 가족 안에서 인사).
-   **Phase 6** — A2A 전송 2: 허브를 통한 MQTT 미러 (안쪽 원 → 가운데 원). 여기서 a2a SDK가 허브에 마운트된다.
-   **먼 미래** — 바깥 원 시민권 (MCU 크기의 DID).

전체 단계 정의는 리포의 [ROADMAP.md](https://github.com/junghan0611/edgeagent-config/blob/main/ROADMAP.md) 가 SSOT다.

## 더 읽기 / 관련 노트

### 리포 문서

-   [edgeagent-config (GitHub)](https://github.com/junghan0611/edgeagent-config) — 공개 리서치 셸
-   [README](https://github.com/junghan0611/edgeagent-config/blob/main/README.md) · [ARCHITECTURE](https://github.com/junghan0611/edgeagent-config/blob/main/ARCHITECTURE.md) (한 페이지 종합, 여기부터) · [INVARIANTS](https://github.com/junghan0611/edgeagent-config/blob/main/INVARIANTS.md) · [BOARDS](https://github.com/junghan0611/edgeagent-config/blob/main/BOARDS.md) · [ROADMAP](https://github.com/junghan0611/edgeagent-config/blob/main/ROADMAP.md)

### 자매 노트

-   [§legoagent-config: 장난감 에이전트 — 레고·패퍼트·터틀기하학](https://notes.junghanacs.com/botlog/20260422T110433)
-   [§homeagent-config 로드맵 — 오픈소스 스마트홈 에이전트 플랫폼](https://notes.junghanacs.com/botlog/20260304T200300)
-   [edgeagent-config — ESP32-WROOM Zig/ESP-IDF bring-up work log]
-   가족 대화의 원전: [존재 대 존재 연결 문법 — ACP·A2A·ANP](https://notes.junghanacs.com/botlog/20260311T134429)

### 배경 노트

-   [2026-02-16](https://notes.junghanacs.com/journal/20260216T000000) — 주간 저널
-   [@homeagent-config ML 파이프라인 도구세트 운영전략](https://notes.junghanacs.com/notes/20260209T183036)
