Интеграция с Fetch.ai

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Fetch.ai
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с Fetch.ai

Fetch.ai — это не просто ещё один AI-токен проект. Это специфический технический стек: autonomous agents (uAgents), Agentverse (marketplace агентов), ASI Alliance (объединение с SingularityNET и Ocean Protocol). Если ваш продукт требует автономных агентов, которые взаимодействуют друг с другом в экономической сети — это реальный инструмент, а не хайп.

Практический контекст: uAgents используются для автоматизации supply chain (агент-покупатель ведёт переговоры с агентом-поставщиком), DeFi (агент мониторит ончейн условия и выполняет стратегию), IoT (агент управляет умным устройством и монетизирует данные).

uAgents: техническая модель

Структура агента

uAgent — это Python-процесс с встроенным HTTP сервером, крипто-идентичностью (secp256k1 keypair) и протоколом сообщений.

from uagents import Agent, Context, Model

class PriceRequest(Model):
    token: str
    currency: str = "USD"

class PriceResponse(Model):
    token: str
    price: float
    timestamp: int

# Агент-оракул цен
price_oracle = Agent(
    name="price-oracle",
    seed="your-deterministic-seed-phrase-here",  # воспроизводимый адрес
    port=8001,
    endpoint=["http://localhost:8001/submit"],
)

@price_oracle.on_message(model=PriceRequest, replies=PriceResponse)
async def handle_price_request(ctx: Context, sender: str, msg: PriceRequest):
    # Fetch price from external API
    price = await get_price_from_coingecko(msg.token, msg.currency)
    
    await ctx.send(sender, PriceResponse(
        token=msg.token,
        price=price,
        timestamp=int(time.time())
    ))
    
    ctx.logger.info(f"Sent {msg.token} price {price} to {sender}")

Каждый агент имеет уникальный адрес вида agent1q... (Bech32-encoded public key). Адрес детерминирован из seed — воспроизводим между деплоями.

Almanac: регистрация и discovery

Almanac — on-chain (Fetch.ai mainchain) реестр агентов. Агент регистрирует своё endpoint и protocols в Almanac, платя небольшую комиссию в FET. Другие агенты находят нужных через Almanac query.

# Поиск агентов с определённым протоколом
from uagents.query import query
from uagents.envelope import Envelope

# Получить endpoint агента из Almanac
response = await query(
    destination="agent1qxxxxTargetAgentAddress",
    message=PriceRequest(token="ETH"),
    timeout=30
)

Это ключевое отличие от простого REST API: агент не знает заранее URL другого агента — он находит его через децентрализованный registry. Протокол взаимодействия верифицируется через подписи сообщений.

Протоколы и схемы сообщений

Протокол в терминах Fetch.ai — это набор типов сообщений с однозначным digest (SHA256 от Pydantic schema). Два агента могут взаимодействовать только если используют один digest — это обеспечивает совместимость.

from uagents import Protocol

# Определяем протокол явно
defi_protocol = Protocol(name="DeFiStrategy", version="1.0.0")

class ExecuteStrategy(Model):
    strategy_id: str
    params: dict
    max_slippage: float

class StrategyResult(Model):
    success: bool
    tx_hash: str | None
    error: str | None

@defi_protocol.on_message(model=ExecuteStrategy, replies=StrategyResult)
async def execute(ctx: Context, sender: str, msg: ExecuteStrategy):
    # логика выполнения стратегии
    ...

agent.include(defi_protocol)

Интеграция с DeFi и Web3

Агент с on-chain взаимодействием

from web3 import Web3
from uagents import Agent, Context

w3 = Web3(Web3.HTTPProvider("https://arbitrum-one.publicnode.com"))
agent = Agent(name="defi-executor", seed="...")

class ArbitrageOpportunity(Model):
    token_in: str
    token_out: str
    amount: float
    expected_profit: float

@agent.on_message(model=ArbitrageOpportunity)
async def execute_arbitrage(ctx: Context, sender: str, msg: ArbitrageOpportunity):
    if msg.expected_profit < MIN_PROFIT_THRESHOLD:
        ctx.logger.warning(f"Skipping low-profit opportunity: {msg.expected_profit}")
        return
    
    # Формируем и отправляем транзакцию
    tx = build_arbitrage_tx(msg.token_in, msg.token_out, msg.amount)
    signed = w3.eth.account.sign_transaction(tx, PRIVATE_KEY)
    tx_hash = w3.eth.send_raw_transaction(signed.rawTransaction)
    
    ctx.logger.info(f"Executed arbitrage: {tx_hash.hex()}")

Периодические задачи

@agent.on_interval(period=60.0)  # каждую минуту
async def monitor_positions(ctx: Context):
    positions = await fetch_open_positions(WALLET_ADDRESS)
    for pos in positions:
        if pos.health_factor < LIQUIDATION_THRESHOLD:
            # Отправить алерт другому агенту
            await ctx.send(ALERT_AGENT_ADDRESS, LiquidationAlert(
                position_id=pos.id,
                health_factor=pos.health_factor
            ))

Agentverse и деплой

Agentverse — hosted платформа для агентов Fetch.ai. Альтернатива self-hosted деплою: агент живёт в облаке Fetch.ai, платите за compute в FET.

Для production: self-hosted агент в Docker, endpoint за reverse proxy (nginx). Almanac registration делается при старте агента автоматически если передать правильный endpoint.

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install uagents web3
COPY agent.py .
CMD ["python", "agent.py"]

Практические ограничения

Throughput. uAgents — не высокочастотная система. Сообщение через Almanac + HTTP имеет latency 100-500ms. Для HFT-стратегий не подходит. Для мониторинга, управления позициями, оркестрации — достаточно.

Message reliability. Нет built-in retry и delivery guarantees на уровне протокола. Нужно реализовывать self на уровне приложения: timeout handling, acknowledgment паттерны.

FET для Almanac. Регистрация агента в Almanac требует FET токены. Для production системы с десятками агентов — учесть в бюджете.

Процесс работы

Аналитика (3-5 дней). Определяем scope агентов: что каждый делает, как общается, какие on-chain операции выполняет, нужен ли Almanac discovery или прямое адресование.

Разработка (2-6 недель). Создание агентов → интеграция с Web3/backend API → тестирование в локальной сети агентов → деплой на Agentverse или self-hosted.

Мониторинг. Агенты автономны — нужен centralized logging (ELK или Grafana + Loki) и alerting на аномальное поведение (агент перестал отвечать, неожиданные транзакции).

Типичный проект: 2 агента (мониторинг + исполнение) с on-chain интеграцией — 3-4 недели.