diff --git a/.env.example b/.env.example index be0ed2f..6ce661a 100644 --- a/.env.example +++ b/.env.example @@ -2,4 +2,4 @@ PROVIDER_URL=http://localhost:8000/v1 PROVIDER_API_KEY=your-api-key PROVIDER_MODEL=gpt-4 COMPOSIO_API_KEY=your-api-key -AGENT_ID=user-12345 \ No newline at end of file +AGENT_ID=my_agent \ No newline at end of file diff --git a/README.md b/README.md index e69de29..3e63a73 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,53 @@ +# Lambda Agent Backend + +#### Это headless агент, предназначенный для запуска на удаленном сервере. Используется через [agent_api](https://git.lambda.coredump.ru/platform/agent_api) + +## Запуск +### 1. Agent_api +Для локальной разработки и запуска нужен [модуль с API](https://git.lambda.coredump.ru/platform/agent_api). +Склонируйте его в любую директорию: +```bash +git clone https://git.lambda.coredump.ru/platform/agent_api agent_api +``` + +Далее нужно добавить путь до этой директории в переменную окружения: +```bash +export AGENT_API_PATH=C:/Users/User/agent_api +``` + +### 2. Environment +Заполните файл `.env` по примеру `.env.example`. +- `COMPOSIO_API_KEY` заполняется, если нужно подключить внешние инструменты из сервиса [Composio.dev](https://composio.dev/) + +### 3. Make (опционально) +Чтобы было удобнее работать с проектом, желательно установить утилиту `make`. + +### 4. Запуск +Через **Make**: +```bash +make up-dev +``` + +Без **Make**: +```bash +docker compose --profile dev up +``` + +### 5. Подключение и использование +Подключиться к агенту можно через скрипт [manual.py](https://git.lambda.coredump.ru/platform/agent_api/src/branch/master/tests/manual.py) из репозитория `agent_api`. +В качестве `base_url` необходимо указать `ws://localhost:8000/`. + +Данные агента хранятся в директории `data`: +- `data/internal` - служебная информация: история чатов и т. д. +- `data/workspace` - рабочее пространство агента. Тут он сохраняет все файлы, +сюда же они попадают с поверхностей. + +#### Отправка файлов в агента: +- Необходимо вручную добавить файл в директорию `data/workspace` +- Перед отправкой сообщения через скрипт в `agent_api` запрашиваются вложения: +`Attachments (comma-separated, empty for none): `. Необходимо через запятую перечислить пути до файлов внутри директории `workspace`. +Например, файл `data/workspace/my_dir/file.txt` -> `my_dir/file.txt` + +## Субагенты +В директории `subagents` можно создавать собственных субагентов. +Подробнее в [SUBAGENTS.md](SUBAGENTS.md) \ No newline at end of file diff --git a/SUBAGENTS.md b/SUBAGENTS.md new file mode 100644 index 0000000..b0781dc --- /dev/null +++ b/SUBAGENTS.md @@ -0,0 +1,73 @@ +# SubAgents + +## Структура + +``` +subagents/ # В корне репозитория +├── media-agent/ +│ ├── SUBAGENT.md # Метаданные + системный промпт +│ ├── image-gen/ # Skill (формат Deep Agents) +│ │ └── SKILL.md +│ └── meme-maker/ +│ └── SKILL.md +└── researcher/ + ├── SUBAGENT.md + └── web-search/ + └── SKILL.md +``` + +Папка `subagents/` монтируется в `/subagents/` через `docker-compose`. + +## SUBAGENT.md + +```markdown +--- +name: media-agent +description: Генерирует медиа-контент. Использовать для создания картинок, мемов, видео. +--- + +Ты субагент для генерации медиа-контента. +Описание задач, инструментов, формата ответа... +``` + +**Поля:** +- `name` - уникальный ID (используется в `task()`) +- `description` - когда основной агент должен делегировать задачу этому субагенту + +Всё после закрывающего `---` улетает в системный промпт. + +## SKILL.md (навыки) + +```markdown +--- +name: image-gen +description: Генерация изображений по текстовому описанию +--- + +# Image Generation +## When to Use +... +## How to Use +... +``` + +Каждый навык - отдельная папка с файлом `SKILL.md`. Находятся на одном уровне с `SUBAGENT.md`. +В папке навыка могут находиться дополнительные скрипты. + +## Как добавить субагента + +1. Создать папку в `subagents/` с именем субагента +2. Добавить `SUBAGENT.md` с YAML frontmatter и промптом +3. (Опционально) добавить папки со скилами +4. Перезапустить контейнер + +## Инструменты + +Субагенты наследуют все тулзы основного агента (Composio + custom tools). + +## Docker Compose + +```yaml +volumes: + - ./subagents:/subagents +```