Платформа поддерживает протокол A2A (Agent-to-Agent) на основе JSON-RPC 2.0. Внешние агенты могут отправлять задачи, получать результаты в реальном времени и взаимодействовать со специализированными агентами системы.
Архитектура
Все запросы обрабатывает Orchestrator — главный агент, который анализирует задачу и делегирует её специализированному агенту:
| Агент | Специализация |
|---|---|
| Orchestrator | Анализ задачи, маршрутизация, валидация результата |
| Finance | Счета, платежи, расходы, возвраты, финансовые отчёты |
| Support | Диагностика системы, конфигурация, задачи и проекты |
| Customer | Контакты, звонки, SMS, email, история коммуникаций |
Каждый агент имеет доступ к реальным данным платформы через MCP-инструменты.
Аутентификация
Все запросы требуют API-токен в заголовке Authorization. Токен можно создать в Settings → Connected Apps → API Tokens.
Authorization: Bearer sk_ws_<wsid>_<token>
Быстрый старт
1. Получение Agent Card
curl https://c10r.io/.well-known/agent.json
Возвращает описание агента, поддерживаемые capabilities и навыки.
2. Отправка задачи
curl -X POST https://c10r.io/api/ws/pasv/a2a \
-H "Authorization: Bearer sk_ws_pasv_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/send",
"params": {
"message": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "Сформируй income statement за 2025 год"
}
]
}
}
}'
Ответ:
{
"jsonrpc": "2.0",
"id": "1",
"result": {
"id": "task-uuid",
"status": "working",
"messages": [...]
}
}
3. Получение результата
curl -X POST https://c10r.io/api/ws/pasv/a2a \
-H "Authorization: Bearer sk_ws_pasv_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "2",
"method": "tasks/get",
"params": {
"id": "task-uuid"
}
}'
Ответ при завершении:
{
"jsonrpc": "2.0",
"id": "2",
"result": {
"id": "task-uuid",
"status": "completed",
"messages": [
{ "role": "user", "parts": [{ "kind": "text", "text": "..." }] },
{ "role": "agent", "parts": [{ "kind": "text", "text": "## Income Statement..." }] }
],
"agentsUsed": ["orchestrator", "finance"]
}
}
Методы
message/send
Отправляет задачу агенту. Выполнение происходит асинхронно — метод возвращает задачу в статусе working. Результат получается через tasks/get.
message/stream
Отправляет задачу агенту с real-time стримингом через SSE. Ответ — text/event-stream с событиями:
| Событие | Описание |
|---|---|
status | Статус агента: анализ, делегирование, валидация |
chunk | Фрагмент текстового ответа |
tool_call | Вызов инструмента (имя, аргументы) |
tool_result | Результат выполнения инструмента |
done | Финальный результат с полным ответом |
error | Ошибка выполнения |
Пример:
curl -N -X POST https://c10r.io/api/ws/pasv/a2a \
-H "Authorization: Bearer sk_ws_pasv_..." \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/stream",
"params": {
"message": {
"role": "user",
"parts": [{ "kind": "text", "text": "Покажи все неоплаченные счета" }]
}
}
}'
tasks/get
Получение статуса и результата задачи по ID.
Статусы задачи:
| Статус | Описание |
|---|---|
submitted | Задача принята |
working | Агент работает |
completed | Результат готов |
failed | Ошибка выполнения |
Подключение через Claude Code
Платформа также доступна как MCP-сервер. Claude Code может использовать инструмент ask_agent для взаимодействия с агентами напрямую через существующее MCP-подключение.
Конфигурация MCP в .mcp.json:
{
"mcpServers": {
"kompot": {
"type": "http",
"url": "https://c10r.io/api/ws/pasv/mcp/stream",
"headers": {
"Authorization": "Bearer sk_ws_pasv_..."
}
}
}
}
Примеры задач
| Задача | Агент |
|---|---|
| Сформировать income statement за квартал | Finance |
| Найти все просроченные счета | Finance |
| Проверить конфигурацию воронки продаж | Support |
| Показать все открытые задачи по проекту | Support |
| Найти контакты, с которыми общались на этой неделе | Customer |
| Посмотреть историю звонков клиента | Customer |