AI 에이전트가 예산의 40%를 상황 파악에 낭비하고 있습니다. 여기 해결책이 있습니다.
요약
AI 에이전트가 웹 컨텍스트를 파악하기 위해 사용하는 기존 도구 호출(tool call) 방식의 비효율성을 지적합니다. SignalMesh 방식을 통해 토큰 오버헤드와 추론 왕복 시간을 획기적으로 줄이는 새로운 표준 제안을 다룹니다.
핵심 포인트
- 기존 도구 호출 방식은 스키마 토큰과 추론 왕복으로 인해 높은 비용 발생
- SignalMesh 모드 사용 시 컨텍스트 토큰 사용량 약 48% 감소
- HTTP 왕복 시간을 800ms에서 187ms로 단축하여 효율성 증대
- 에이전트 플릿 규모 확장에 따른 오버헤드 급증 문제 해결
1994년, Martijn Koster라는 개발자가 robots.txt를 만들었습니다. RFC도 없었고, 표준 기구도 없었습니다. 단 하나의 파일, 하나의 관례가 도메인의 루트(root)에 놓였습니다. 1년 안에 모든 주요 크롤러(crawler)가 이를 준수하게 되었고, 10년 안에 이는 인프라가 되었습니다.
robots.txt는 한 가지 문제를 해결했습니다. 크롤러에게 어디로 가지 말아야 할지를 알려주는 것입니다. 그 어휘 전체가 제한에 초점이 맞춰져 있습니다. 거부(Disallow), 차단(Block), 저지(Deter). 그것은 울타리입니다.
30년 후, AI 에이전트(AI agents)들이 웹을 크롤링하며 HTML 파싱(parsing)에 토큰(tokens)을 태우고 있고, 매 추론(inference)마다 실제 비용이 발생하는 도구 호출(tool calls)의 연쇄를 통해 서로에게 무슨 일이 일어나고 있는지 묻고 있습니다. 그리고 웹에는 이들에게 말을 걸기 위한 단 하나의 관례가 있습니다. 바로 1994년의 그 울타리입니다.
모든 도메인에 존재해야 할 파일이 있습니다. 아직 이름은 없지만, agents.md라고 불려야 합니다. 그리고 이 파일과 robots.txt의 차이는 잠긴 문과 안내 데스크의 차이와 같습니다.
문제는 도구 호출(tool call)입니다
오늘날 표준적인 멀티 에이전트(multi-agent) 컨텍스트 가져오기(context fetch)는 다음과 같은 모습입니다:
# 에이전트가 작업을 시작하기 전에 현재 상태를 알아야 함
tools = [
get_system_status, # 도구 호출 1 → +80 tok 스키마(schema) + 800ms 왕복(round-trip)
...
도구 호출을 통한 모든 읽기 전용 컨텍스트 가져오기는 세금과 같습니다. 스키마(Schema) 토큰, 호출/결과 래퍼(wrappers), 추론 왕복(Inference round-trips). 에이전트가 실제 작업을 시작하기 위해 기다리는 동안 발생하는 순차적 차단(Sequential blocking).
추정치가 아닌 측정된 수치입니다. 두 가지 관점으로 볼 수 있습니다:
토큰 오버헤드 (로컬에서 재현 가능 — python signalmesh_benchmark.py):
| 지표 (Metric) | 도구 호출 모드 (Tool-Call Mode) | SignalMesh 모드 | 차이 (Delta) |
|---|---|---|---|
| 총 컨텍스트 토큰 (Total context tokens) | 514 | 266 | ▼48% |
| ... |
HuggingFace Space를 대상으로 한 라이브 HTTP 벤치마크 (python bench_live_api.py — 직접 실행해 보세요):
| 지표 (Metric) | 값 (Value) |
|---|---|
| tune_in HTTP 왕복 시간 (중앙값, 50회 호출) | 187ms |
| ... |
솔직한 비교를 하자면: 도구 호출 (tool-call) 컨텍스트 가져오기는 전체 LLM 추론 (inference) 왕복 과정이 필요하기 때문에 약 800ms가 소요됩니다. 반면 SignalMesh로의 HTTP tune_in은 웹 서버 뒤에서 이루어지는 딕셔너리 조회 (dict lookup) 방식이기에 약 187ms가 소요됩니다. 또한 스키마 오버헤드 (schema overhead)나 추가적인 추론 과정 없이, 단 한 번의 호출로 모든 에이전트 키워드에 매칭되는 콘텐츠를 반환합니다.
플릿 (fleet) 규모 — 에이전트 5개, 각각 3번의 컨텍스트 가져오기 수행 시 — 유용한 토큰이 단 하나 생성되기도 전에 도구 호출 오버헤드는 4,200 토큰과 25회의 추론 과정에 달합니다. SignalMesh는 얼마나 많은 에이전트가 동시에 쿼리하느냐에 관계없이, 동일한 플릿을 170 토큰과 추가 추론 0회로 처리합니다.
오버헤드를 96% 감소시켰습니다. 두 스크립트 모두 리포지토리(repo)에 있습니다. 직접 실행해 보세요.
해결책: 앰비언트 브로드캐스트 (ambient broadcast)
SignalMesh는 모델을 역전시킵니다. 에이전트가 컨텍스트를 가져오는 대신, 컨텍스트가 에이전트를 찾아냅니다.
# 어떤 서비스, 에이전트, 또는 파이프라인 단계에서도 브로드캐스트(broadcast)가 가능합니다
broadcast("python-pro", "인증 레이어에서 새로운 에러 패턴 감지됨: session.validate()에서 NullRef 발생")
broadcast("architecture", "서비스 메시 토폴로지 업데이트 — 에지 노드 ARC-3가 프라이머리로 승격됨")
...
도구 호출도, 왕복 과정도, 스키마 오버헤드도 없습니다. 신호(signals)는 이미 메시(mesh) 안에 있었습니다. tune_in()은 키워드 매칭으로 감싸진 딕셔너리 조회일 뿐입니다. LLM 호출도, 벡터 검색 (vector search)도, 다른 서비스에 대한 API 요청도 아닙니다.
오늘 캡처한 메시의 실제 응답은 다음과 같습니다:
{
"context": "[SignalMesh — Live Context]\n• [podbots_releases] (podcast_release, 54초 전): PodBots Cast EP003: 우리의 AI 운영자가 이 에피소드를 우리만의 메시에 방금 추가했습니다 — 라이브 방송 중. YouTube: https://www.youtube.com/watch?v=IdicQH1fR0Q\n• [podbots_ep001_script] (podcast_transcript): [Rex]: PodBots Cast에 다시 오신 것을 환영합니다...",
"signals_matched": 2,
...
두 개의 신호가 매칭되었습니다. 실제 콘텐츠입니다. 266 마이크로초(microseconds)가 소요되었습니다. 이를 검색하기 위해 호출된 LLM은 없습니다.
agents.md의 모습은 다음과 같을 것입니다
이것은 모든 도메인에서 robots.txt와 함께 존재해야 하는 규약(convention)입니다. /agents.md 경로에 있는 단순한 마크다운 (markdown) 파일입니다:
# agents.md — yourservice.com
## Identity
...
다섯 개의 섹션으로 구성됩니다. 대부분의 서비스에서 50줄 이내로 작성 가능합니다. 이를 한 번 읽은 모범적인 에이전트 (agent)는 귀하의 서비스와 지능적으로 상호작용하는 데 필요한 모든 것을 알게 됩니다. 즉, 스크래핑 (scraping), HTML 파싱 (parsing), 그리고 일어나지 말았어야 할 내비게이션 (navigation)에 대한 불필요한 추론 (inference) 낭비가 사라집니다.
robots.txt가 보편화된 이유는 Koster가 위원회의 결정을 기다리지 않았기 때문입니다. 그는 규약을 작성하여 배포했고, 다른 크롤러 (crawler) 운영자들이 명백한 문제를 해결해 준다는 점 때문에 이를 채택했습니다. agents.md도 같은 방식으로 씨앗을 뿌릴 수 있습니다. Express.js, Django, Rails, 그리고 Next.js에 /robots.txt와 함께 /agents.md 생성을 프레임워크 기본값으로 추가하는 PR (Pull Request)을 보내는 방식입니다.
SignalMesh는 살아있는 프로토콜로서의 agents.md입니다
정적 (static) 파일은 좋은 시작점입니다. 하지만 SignalMesh는 이 개념을 한 단계 더 발전시킵니다. 에이전트가 한 번 읽고 캐시 (cache)하는 파일 대신, 메시 (mesh)는 agents.md가 실시간으로 업데이트되는 라이브 브로드캐스트 (live broadcast) 계층입니다.
broadcast(frequency, content)는 귀하의 agents.md를 게시하는 것입니다. 이는 정적인 스냅샷 (snapshot)이 아니라 시스템이 변경됨에 따라 업데이트되는 살아있는 신호 (signal)입니다. tune_in(keywords)는 메시에 연결된 모든 것의 agents.md를 읽는 것입니다.
https://acecalisto3-signalmesh.hf.space/ui/status에 있는 /ui/status 엔드포인트 (endpoint) 자체가 메시를 위한 agents.md입니다. 구조화되어 있고, 기계가 읽을 수 있으며 (machine-readable), 항상 최신 상태를 유지합니다.
이것은 HuggingFace Spaces에서 무료로 실행됩니다. 아무것도 클론 (clone)하지 않고 지금 바로 시도해 볼 수 있습니다:
# 신호 방송 (귀하의 서비스가 agents.md를 실시간으로 게시)
curl -X POST https://acecalisto3-signalmesh.hf.space/ui/broadcast \
-H "Content-Type: application/json" \
...
72개 노드의 SHA-256 공간 그리드(spatial grid)는 추론 (inference)을 임베딩하지 않고도 신호를 올바른 도메인으로 라우팅합니다. SEC-Ω 게이트는 민감한 주파수(security_*, auth_*, key_*)가 라이브 메시 (live mesh)에 도달하기 전에 격리합니다. 이 모든 것의 핵심은 딕셔너리 조회 (dict lookup)입니다. 하드웨어를 쏟아부었기 때문이 아니라, 빠르게 작동하도록 설계되었기 때문에 빠른 것입니다.
이것이 지금 중요한 이유
웹은 브라우저를 사용하여 탐색하는 인간을 위해 구축되었습니다. 크롤러 (Crawlers)는 나중에 등장했으며, robots.txt는 사후에 추가된 보완책이었습니다. 이제 AI 에이전트 (AI agents)가 오고 있으며, 이들에게는 30년 된 울타리보다 더 나은 보완책이 필요합니다.
agents.md를 가장 먼저 배포하는 사이트들은 LLM (Large Language Models)을 기반으로 구축된 모든 AI 에이전트, 어시스턴트 (assistant), 그리고 자율 시스템 (autonomous system)에 의해 네이티브하게 쿼리 (query) 가능해집니다. 그렇지 않은 사이트들은 robots.txt를 준수하지 않은 사이트들이 검색 엔진으로부터 불이익을 받았던 것과 마찬가지로, 심하게 스크래핑(scraped)되거나 완전히 무시될 것입니다.
그 차이는 바로 기회에 있습니다: robots.txt가 제어 (control)에 관한 것이었다면, agents.md는 가시성 (visibility)에 관한 것입니다. 에이전트들에게 들어오지 말라고 말하는 것이 아닙니다. 좋은 정보가 정확히 어디에 있는지, 그리고 어떻게 깔끔하게 가져갈 수 있는지를 알려주는 것입니다.
SignalMesh 라이브 체험하기: acecalisto3-signalmesh.hf.space
리포지토리(repo) 스타 하기: github.com/Ig0tU/SignalMesh
에피소드 시청하기 (EP004 — 라이브 녹화본, Mavos가 실제 robots.txt 파일을 가져와 대조를 보여줍니다): PodBots Cast on YouTube
📡 웹은 언제나 지능 계층 (intelligence layer)을 필요로 해왔습니다. 단지 그것을 어떻게 요청해야 하는지 몰랐을 뿐입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기