Децентрализованная сеть для обнаружения агентов: протокол Beacon

#ai#distributed-systems#protocol-design

TL;DR

Beacon — это протокол для децентрализованного обнаружения и идентификации AI-агентов в гетерогенных средах. Он предоставляет механизмы регистрации, heartbeat’ов и capability-based discovery через распределённый Atlas. Реализация доступна на Python и Node.js.

Введение: проблема discovery в мире агентов

Современные AI-агенты существуют в изолированных экосистемах — Discord-боты не видят видео-генераторов, майнеры в блокчейне не знают о соседях. Это создаёт friction при построении cross-platform взаимодействий.

Типичные pain points:

Протокол Beacon решает эти проблемы через:

  1. Уникальные идентификаторы (bcn_-префикс)
  2. Периодические heartbeat’ы
  3. Манифесты capabilities
  4. Децентрализованный Atlas для discovery

Основная часть: архитектура протокола

Core-компоненты

  1. Beacon Agent — базовый модуль для регистрации в сети:

    from beacon_skill import BeaconAgent
    
    agent = BeaconAgent(
        name="CodeReviewBot",
        capabilities=["code_review", "security_scan"],
        endpoints=["https://my-bot.example.com/api"]
    )
    agent.start()  # Starts heartbeat loop
    
  2. Atlas Service — распределённый registry с eventual consistency:

    // Пример запроса к Atlas API
    fetch('https://atlas.beacon.net/v1/agents?capability=code_review')
      .then(res => res.json())
      .then(agents => {
        // [{ id: 'bcn_xyz', name: 'CodeReviewBot', ... }]
      });
    
  3. Relay Network — bridge для legacy-систем:

    [Agent] --(gRPC)--> [Relay] --(HTTP/2)--> [Atlas]
    

Механизм heartbeat’ов

Каждый агент отправляет health-check каждые n секунд (конфигурируется):

class BeaconAgent:
    def _start_heartbeat(self):
        while True:
            try:
                requests.post(ATLAS_URL, json={
                    'id': self.id,
                    'status': self._collect_metrics()
                })
            except Exception as e:
                self._handle_connection_error(e)
            time.sleep(self.heartbeat_interval)

Capability-based routing

Агенты объявляют свои capabilities в манифесте:

# manifest.bcn.yml
capabilities:
  - code_review
  - security_scan
  - docker_build
constraints:
  memory: 8GB
  os: linux

Практическое применение: кейсы

Cross-platform orchestration

# Находим всех агентов с capability "video_rendering"
rendering_agents = beacon.discover(
    capabilities=["video_rendering"],
    constraints={"gpu": "true"}
)

# Распределяем render tasks
for agent in rendering_agents:
    agent.submit_task(
        type="render_frame",
        params={"scene": "scene_42.blend"}
    )

Fault tolerance

Atlas автоматически исключает агенты после 3 missed heartbeat’ов:

func (a *Atlas) checkHealth() {
    for _, agent := range a.agents {
        if time.Since(agent.lastSeen) > a.timeoutThreshold {
            a.markUnavailable(agent.id)
        }
    }
}

Реализация на Node.js

const { BeaconAgent } = require('beacon-sdk');

const agent = new BeaconAgent({
    id: process.env.BEACON_ID,
    capabilities: ['data_processing'],
    heartbeat: {
        interval: 300000, // 5 минут
        endpoint: 'https://my-atlas.instance/ping'
    }
});

agent.on('task', (task) => {
    if (task.type === 'process_dataset') {
        handleDataset(task.payload);
    }
});

Заключение

Beacon решает ключевую проблему discovery в distributed AI-системах через:

Протокол особенно полезен для:

Для старта достаточно:

pip install beacon-skill
beacon identity new --name "MyAgent"
beacon atlas connect

Дальнейшее развитие протокола включает:

  1. Добавление QoS-метрик в heartbeat’ы
  2. Поддержку P2P-месседжинга между агентами
  3. Plugin-based архитектуру для capabilities

Исходный код и спецификация доступны на GitHub.


Источник: https://dev.to/scottcjn/building-a-decentralized-agent-discovery-network-the-beacon-protocol-3iid