Skip to main content
공개 노트

datasette-agent-micropython 0.1a0: AI 에이전트에게 "작은 실행 공간"을 주는 법

Views 3약 4분생성형 AI 활용
Summary

datasette-agent-micropython 0.1a0: AI 에이전트에게 "작은 실행 공간"을 주는 법

AI 에이전트가 SQLite 데이터에 대해 답하려면 SQL 질의만으로는 부족할 때가 있습니다. 숫자를 다시 계산하거나, 문자열을 파싱하거나, 중간 결과를 검증하는 작은 코드 실행 공간이 필요할 수 있습니다.

datasette-agent-micropython 0.1a0은 바로 그 용도를 겨냥한 Datasette Agent용 플러그인입니다. 핵심은 AI에게 “무엇이든 실행할 수 있는 Python 환경”을 주는 것이 아니라, 데이터 작업에 필요한 만큼의 작고 제한된 실행 공간을 제공하는 데 있습니다.

Datasette Agent 위에 붙는 작은 코드 실행 도구

Datasette Agent는 Datasette 안에 LLM을 통합해 SQLite 데이터베이스와 대화하듯 상호작용하게 해주는 오픈소스 AI 어시스턴트 플러그인입니다.1 OpenAI, Anthropic, Google Gemini 같은 상용 모델뿐 아니라 자체 하드웨어에서 실행하는 오픈 웨이트 모델도 사용할 수 있고, 도구 호출을 지원하는 모델과 함께 동작합니다.1

datasette-agent-micropython은 이 환경에 execute_micropython 도구를 추가합니다.2 에이전트는 이 도구를 통해 MicroPython 코드를 실행할 수 있습니다. 용도는 거창한 애플리케이션 실행이 아니라, 순수 계산, 파싱, 데이터 변환, 알고리즘 확인처럼 대화 중간에 필요한 작은 작업에 가깝습니다.

여기서 중요한 구분이 있습니다. MicroPython은 CPython과 다른 경량 Python 구현입니다. 따라서 복잡한 외부 패키지를 마음껏 설치해 실행하는 환경으로 이해하기보다는, 제한된 범위의 코드 조각을 안전하게 실행하는 수단으로 보는 편이 적절합니다.

핵심은 “더 많은 권한”이 아니라 “더 뚜렷한 경계”

AI가 생성한 코드를 실행한다는 말은 곧 위험을 동반합니다. 코드가 파일을 읽거나, 네트워크에 접근하거나, 끝나지 않는 루프에 빠질 수 있기 때문입니다. 그래서 이 플러그인의 의미는 기능 자체보다 실행 경계에 있습니다.

기반이 되는 micropython-wasm은 MicroPython을 WASI WebAssembly 모듈로 패키징하고 Wasmtime에서 실행합니다.3 기본적으로 네트워크 권한이 없으며, 호스트 파일시스템도 명시적으로 열어주지 않으면 접근할 수 없습니다.3

또한 메모리, fuel, wall-clock timeout을 설정할 수 있습니다.3 여기서 fuel은 실행량 예산에 가깝습니다. 코드가 너무 오래 실행되거나 멈추지 않을 때 중단할 수 있는 안전장치입니다.

즉, 이 접근은 “AI가 Python을 실행할 수 있다”보다 “AI가 제한된 샌드박스 안에서 필요한 계산만 수행할 수 있다”에 가깝습니다.

대화별 상태와 읽기 전용 SQL

datasette-agent-micropython은 각 Datasette Agent 대화마다 별도의 지속 MicroPython 인터프리터를 둡니다.2 한 대화 안에서 만든 변수, import, 함수는 다음 도구 호출에서 다시 사용할 수 있지만, 다른 대화와는 공유되지 않습니다.2

이 구조는 실용적입니다. 에이전트가 같은 분석 흐름 안에서 중간 함수를 재사용할 수 있으면서도, 대화 간 상태가 섞이는 문제를 줄일 수 있기 때문입니다.

또 하나 중요한 기능은 read_only_sql_query()입니다. MicroPython 코드 안에서 Datasette 데이터베이스를 읽기 전용으로 질의할 수 있으며, 현재 사용자의 execute-sql 권한을 따릅니다.2

데이터 에이전트 관점에서 이 조합은 유용합니다. SQL로 데이터를 가져오고, MicroPython으로 후처리하거나 검증하되, 데이터베이스 변경 권한은 열어두지 않는 방식이기 때문입니다.

알파 릴리스가 보여주는 방향

datasette-agent-micropython 0.1a0은 알파 단계의 릴리스로 보는 것이 맞습니다. 하지만 방향은 분명합니다. 데이터와 대화하는 AI 에이전트가 강력해질수록, 필요한 것은 무제한 실행 권한이 아니라 더 작은 권한, 더 명확한 샌드박스, 더 통제 가능한 도구입니다.

Datasette Agent는 이미 SQLite 데이터에 질문하고 답을 얻는 대화형 인터페이스를 제공하며, 추가 플러그인을 통해 시각화나 사용자 정의 도구로 확장될 수 있습니다.1 datasette-agent-micropython은 그 확장 가능성에 “제한된 코드 실행”이라는 실용적인 층을 더합니다.

결론적으로 이 릴리스의 가치는 Python을 붙였다는 사실 자체가 아닙니다. AI 에이전트에게 필요한 계산 능력을 주면서도, 그 능력이 작동할 경계를 함께 설계했다는 점에 있습니다.

1Datasette Agent, an extensible AI assistant for Datasette

2GitHub - datasette/datasette-agent-micropython

3GitHub - simonw/micropython-wasm

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기