I Built an Autonomous On-Chain Agent on Solana: Here's the Documentation I Wish I Had Earlier

개요

Solana Devnet에서 AI 에이전트가 의사 결정을 내리고, 자금을 안전하게 이동시키며, 자체적인 워크플로우를 수행할 수 있도록 구축한 내용과 관련 문서화 과정에 대해 설명합니다.

주요 내용

* AI 에이전트와 전통적인 백엔드 서비스의 차이점: LLM 기반 에이전트는 동일한 요청에도 다양한 추론 경로를 통해 같은 목표를 달성할 수 있어, 일반적인 API 문서화와 달리 '무엇이 보장되는가'에 초점을 맞춰야 합니다.
* 구축된 스택: 5일간의 개발을 통해 에이전트 루프(LLM 추론 및 도구 호출), Solana 도구(잔액 확인, SOL 전송), MCP(Model Context Protocol) 서버(도구 재사용성 확보), Policy Engine(거래 전 지갑 보호), 자율 워크플로우(최소한의 인간 개입으로 목표 달성)를 점진적으로 구축했습니다.
* 아키텍처 개요: AI는 의사 결정만 담당하며, 실제 핵심 로직은 에이전트 루프, MCP 서버, Policy Engine 주변에서 발생합니다. 특히 Policy Engine이 시스템의 심장 역할을 합니다.
* Solana 도구: get_balance (읽기 전용, 계정 잔액 조회)와 transfer_sol (SOL 전송, Policy Engine에 의해 보호됨) 두 가지 도구를 사용했습니다.
* Policy Layer의 중요성: 프롬프트, 언어 모델, 추론 방식이 변해도 Policy Engine은 승인된 수신자, 최대 전송 금액, 실행당 최대 지출 등 정의된 규칙에 따라 거래를 검증하며, 모든 알 수 없는 행위는 거부하는 'deny-by-default' 정책으로 지갑을 보호합니다.
* 자율 실행 사례: "저축 지갑에 최소 0.2 SOL 유지"라는 목표를 에이전트가 스스로 달성하는 과정을 보여주었습니다. 잔액 확인, Policy Engine 검증 통과 후 SOL 전송, 최종 잔액 확인 순으로 진행되었습니다.
* 보안 테스트 결과: 전송 한도 초과, 알려지지 않은 지갑으로의 전송 시도는 Policy Engine에 의해 모두 거부되어, 예상치 못한 상황에서도 보안 장치가 작동함을 입증했습니다.
* 배운 점:
* 프롬프트는 보안의 전부가 아니며, Policy Engine이 최종 결정을 내립니다.
* 실행 로그(run-log.json)는 디버깅에 매우 유용합니다.
* AI 에이전트의 비결정론적(non-deterministic) 동작 방식에 대한 이해와 수용이 필요합니다.
* 운영 환경에서는 다중 서명, 인간 확인, 트랜잭션 시뮬레이션 등 더 강력한 보안 조치가 요구됩니다.

시사점

AI 에이전트 구축에서 가장 중요하고 어려운 부분은 AI 자체보다 AI 주변을 둘러싸는 도구, 정책, 로깅, 제약 조건 등의 아키텍처 설계이며, 이를 통해 신뢰할 수 있는 에이전트를 만들 수 있습니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions