Добавить в корзинуПозвонить
Найти в Дзене
SkyNet | Новости ИИ

Начало работы с протоколом связи агентов (ACP): создание погодного агента на Python

Начало работы с протоколом связи агентов (ACP): создание погодного агента на Python Протокол связи агентов (ACP) — это открытый стандарт, предназначенный для обеспечения беспрепятственного взаимодействия между агентами искусственного интеллекта (ИИ), приложениями и людьми. Поскольку системы ИИ часто разрабатываются с использованием различных платформ и инфраструктур, они могут оказаться изолированными и несовместимыми, что ограничивает их способность к совместной работе. ACP решает эту проблему, предлагая унифицированный RESTful API, который упрощает: * мультимодальное взаимодействие; * синхронный и асинхронный обмен сообщениями; * потоковую передачу в реальном времени; * поддержку взаимодействий с сохранением и без сохранения состояния агента; * обнаружение агентов, независимо от того, подключены они в данный момент к сети или нет; * выполнение длительных задач. В этом руководстве мы сделаем первые шаги с ACP, создав базовый сервер, который предоставляет информацию о погоде в Лондон

Начало работы с протоколом связи агентов (ACP): создание погодного агента на Python

Протокол связи агентов (ACP) — это открытый стандарт, предназначенный для обеспечения беспрепятственного взаимодействия между агентами искусственного интеллекта (ИИ), приложениями и людьми. Поскольку системы ИИ часто разрабатываются с использованием различных платформ и инфраструктур, они могут оказаться изолированными и несовместимыми, что ограничивает их способность к совместной работе. ACP решает эту проблему, предлагая унифицированный RESTful API, который упрощает:

* мультимодальное взаимодействие;

* синхронный и асинхронный обмен сообщениями;

* потоковую передачу в реальном времени;

* поддержку взаимодействий с сохранением и без сохранения состояния агента;

* обнаружение агентов, независимо от того, подключены они в данный момент к сети или нет;

* выполнение длительных задач.

В этом руководстве мы сделаем первые шаги с ACP, создав базовый сервер, который предоставляет информацию о погоде в Лондоне, и простой клиент, который может взаимодействовать с ним.

Настройка зависимостей

Для начала установим необходимые библиотеки:

```

pip install acp acp-sdk beeai-framework httpx

```

Создание сервера ACP

Начнём с настройки сервера ACP, создав файл `agent.py`.

Импортируем необходимые библиотеки. Чтобы получить данные о погоде в Лондоне, мы будем использовать библиотеку `httpx` для отправки запроса к API Open‑Meteo.

```python

import asyncio

from collections.abc import AsyncGenerator

import httpx

from acp_sdk.models import Message, MessagePart

from acp_sdk.server import Context, RunYield, RunYieldResume, Server

server = Server()

```

Далее определим асинхронную вспомогательную функцию `getlondonweather`, которая извлекает текущую погоду в Лондоне, используя API Open‑Meteo. Эта функция отправляет запрос с координатами Лондона и возвращает форматированную сводку погоды, включая температуру, скорость ветра и код погодных условий.

```python

async def getlondonweather() -> str:

"""Fetch current London weather from the free Open‑Meteo API."""

params = {

"latitude": 51.5072, # Координаты Лондона

"longitude": -0.1276,

"current_weather": True,

"timezone": "Europe/London"

}

url = "https://api.open-meteo.com/v1/forecast"

async with httpx.AsyncClient(timeout=10) as client:

resp = await client.get(url, params=params)

resp.raiseforstatus()

cw = resp.json()["current_weather"]

return (

f"Weather in London: {cw['temperature']} °C, "

f"wind {cw['windspeed']} km/h, code {cw['weathercode']}."

)

```

Этот код определяет агента, совместимого с ACP, используя декоратор `@server.agent()`. Функция `londonweatheragent` обрабатывает входящие сообщения, сначала выдавая сообщение о мысли, затем асинхронно получая текущую погоду в Лондоне с помощью вспомогательной функции `getlondonweather()`. Данные о погоде затем возвращаются в виде простого текстового сообщения. Наконец, `server.run()` запускает сервер ACP и делает агента доступным для обработки запросов.

```py...

Читать далее