Начало работы с Протоколом Коммуникации Агентов (ACP): Создание Погодного Агента с Помощью Python
В последние годы искусственный интеллект стал неотъемлемой частью бизнеса, позволяя компаниям оптимизировать процессы и улучшать качество обслуживания клиентов. Протокол Коммуникации Агентов (ACP) представляет собой открытый стандарт, который обеспечивает эффективное взаимодействие между различными AI-агентами и приложениями. В этой статье мы разберёмся, как создать простого погодного агента с использованием ACP и Python, подчеркивая его практическое применение, затраты и преимущества.
Что такое ACP?
ACP предлагает единый RESTful API, который позволяет:
- добиваться многомодального общения;
- осуществлять синхронную и асинхронную передачу сообщений;
- поддерживать потоковую передачу данных в реальном времени;
- управлять состоянием агентов;
- разграничивать долгосрочные задачи;
- обнаруживать агентов, находящихся в сети или оффлайн.
Создание погодного агента — это отличный способ продемонстрировать практическое использование ACP и понять, как он может упростить создание AI-приложений.
Настройка окружения
Прежде чем начнём, убедитесь, что у вас установлен Python. Для начала работы вам понадобятся некоторые библиотеки. Установите их с помощью следующей команды:
pip install acp acp-sdk beeai-framework httpx
Создание ACP-сервера
Перейдём к созданию нашего сервера. Начнём с создания файла agent.py
.
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()
Затем мы определим асинхронную функцию get_london_weather
, которая извлечет текущее погодное состояние в Лондоне с помощью Open-Meteo API.
async def get_london_weather() -> str:
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.raise_for_status()
cw = resp.json()["current_weather"]
return (
f"Погода в Лондоне: {cw['temperature']}°C, "
f"ветер {cw['windspeed']} км/ч, код {cw['weathercode']}."
)
Теперь создадим нашего агента, используя декоратор @server.agent()
. Функция london_weather_agent
будет обрабатывать входящие сообщения и возвращать текущую погоду в Лондоне.
@server.agent()
async def london_weather_agent(
input: list[Message], context: Context
) -> AsyncGenerator[RunYield, RunYieldResume]:
for _ in input:
yield {"thought": "Получение погоды в Лондоне..."}
weather = await get_london_weather()
yield Message(
role="agent",
parts=[MessagePart(content=weather, content_type="text/plain")]
)
server.run()
Запуск сервера
Теперь мы можем запустить сервер, выполнив файл agent.py
. После запуска агент будет доступен по адресу http://localhost:8000
.
python agent.py
Чтобы проверить, правильно ли работает ваш агент, откройте новый терминал и выполните следующую команду:
curl http://localhost:8000/agents
Если всё работает правильно, вы получите ответ в формате JSON с информацией о вашем агенте.
Создание клиента ACP
Теперь создадим клиент, который будет взаимодействовать с нашим агентом. Создайте файл client.py
и добавьте следующий код:
import asyncio
from acp_sdk.client import Client
from acp_sdk.models import Message, MessagePart
async def call_london_weather_agent() -> None:
async with Client(base_url="http://localhost:8000") as client:
run = await client.run_sync(
agent="london_weather_agent",
input=[
Message(
parts=[MessagePart(content="Скажи мне погоду", content_type="text/plain")]
)
],
)
print("Ответ от london_weather_agent:")
for message in run.output:
for part in message.parts:
print("-", part.content)
if __name__ == "__main__":
asyncio.run(call_london_weather_agent())
Запуск клиента
В другом терминале запустите клиент:
python client.py
В результате вы должны увидеть ответ сервера с текущей погодой в Лондоне.
Заключение
Создание погодного агента с использованием ACP и Python — это не только увлекательный процесс, но и отличная возможность продемонстрировать, как ACP может улучшить взаимодействие между AI-агентами. Эти знания можно применять в различных сферах, от разработки смарт-приложений до интеграции с существующими системами.
Использование ACP позволяет не только сократить затраты на разработку новых решений, но и повысить эффективность существующих систем, что делает его важным инструментом для бизнеса. Теперь, когда вы знаете, как создать агент, следующий шаг — использовать эти навыки для решения более сложных задач.
Убедитесь, что вы следите за обновлениями и новыми материалами на нашем сайте aidone.ru, чтобы оставаться в курсе последних новостей в мире искусственного интеллекта!