Skip to main content

ember-agent

Готовый к запуску агент на базе ember: настройка в TOML — запуск одной командой.

  • CLI-команда: ember-agent (короткая, удобная в терминале)
  • На PyPI пакет публикуется как: emberio-labs-ember-agent
$ ember-agent --version
ember-agent 0.1.0

Возможности

  • Конфигурация в одном TOML-файле: системный промпт, провайдер LLM (ключ, модель, base_url), MCP-инструменты.
  • Интерактивный диалог в терминале или разовый запрос (--message) для скриптов.
  • Провайдеры: mock (без сети и ключей, для экспериментов и тестов) и openai (OpenAI и любые OpenAI-совместимые API: OpenRouter, Groq, vLLM, LM Studio и т.п.).
  • Модель задаётся провайдеру ([provider] model) — как часть «подключения к LLM».
  • Инструменты по MCP: stdio-процессы и streamable HTTP-серверы.
  • Работает на Python 3.12+.

Установка

Из PyPI:

pip install emberio-labs-ember-agent

Из исходников (Poetry):

git clone https://github.com/emberio-labs/ember-agent.git
cd ember-agent
poetry install

Настройка

Скопируйте пример конфигурации и отредактируйте под себя:

cp config.example.toml config.toml

Все секции конфигурации опциональны: пустой файл создаст агента на MockProvider, который работает без сети и API-ключей.

[agent]
system_prompt = "Ты полезный и краткий помощник."   # как агент себя ведёт

[provider]
type = "mock"                  # "mock" | "openai"
model = "gpt-4o-mini"          # модель подключения LLM (для type = "openai")
api_key_env = "OPENAI_API_KEY" # откуда брать ключ (для type = "openai")

[[mcp.servers]]                       # внешние инструменты (опционально)
transport = "stdio"                   # "stdio" | "http"
command = "python"
args = ["path/to/server.py"]

Полный пример с комментариями — в config.example.toml. Для реального провайдера задайте переменную окружения с ключом, например OPENAI_API_KEY. Если модель не указана, провайдер берёт свою по умолчанию (gpt-4o-mini у OpenAI).

Запуск

Интерактивный диалог (выход: exit, quit, выход или Ctrl+D/Ctrl+C):

ember-agent run

Разовый запрос — без диалога, удобно для скриптов:

ember-agent run -m "Привет! Коротко: кто ты?"

Явно указать файл конфигурации:

ember-agent run -c path/to/config.toml

Альтернативный запуск через Python (без установки в окружение):

python -m ember_agent run -m "Привет"

Разработка

poetry install                      # установка зависимостей (включая dev)
poetry run pytest                   # тесты
poetry run ruff check ember_agent tests   # линтер
poetry run mypy                     # статическая типизация

Код в ember_agent/, тесты — в tests/. Формат конфигурации описан в config.example.toml.

Релиз

Публикация новой версии на PyPI автоматизирована через GitHub Actions (workflow .github/workflows/publish.yml):

  1. Поднимите версию в pyproject.toml (version = "0.1.0") и закоммитьте изменение, например: chore: bump version to 0.1.0.

  2. Создайте и запушьте git-тег, совпадающий с версией:

    git tag v0.1.0
    git push origin v0.1.0
    
  3. Workflow соберёт wheel и sdist (poetry build) и опубликует их на PyPI. Ветка main при этом не нужна — достаточно тега.

Публикация использует Trusted Publishing (OIDC): секреты в GitHub не хранятся. Для этого владельцу нужно один раз настроить publisher на PyPI (и, опционально, на TestPyPI для проверок):

Поля формы одинаковы для PyPI и TestPyPI:

Поле Значение
Project name emberio-labs-ember-agent
GitHub owner emberio-labs
GitHub repository ember-agent
Workflow name publish.yml
Environment (пусто)

После настройки публикацию можно проверить вручную на TestPyPI: GitHub → Actions → Publish → Run workflow. На боевой PyPI пакет уходит только по git-тегу v*.

Лицензия

MIT — см. LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emberio_labs_ember_agent-0.1.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emberio_labs_ember_agent-0.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file emberio_labs_ember_agent-0.1.0.tar.gz.

File metadata

  • Download URL: emberio_labs_ember_agent-0.1.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for emberio_labs_ember_agent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 75bad6693dfe30283f24fe8fac5c3ac45473e7112af551e5eef2b03e32073698
MD5 cca0f377f6253c022737f8f582c96bf7
BLAKE2b-256 d7164419bba5fb2c6a78ad83b586d5a71415ae6ccc8aff2684ddc2fdbe5ff0b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for emberio_labs_ember_agent-0.1.0.tar.gz:

Publisher: publish.yml on emberio-labs/ember-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file emberio_labs_ember_agent-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for emberio_labs_ember_agent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df835e23e8c319c71adbb737b8662bec0e719cd98069f5f4bb64cf3c3d0830a4
MD5 e639210ff1f2d50ffb7cc2a152750e23
BLAKE2b-256 e854811c31c4ea46641c0c4afa96bd24d4d3dcafc21731aef06a9acae69ccacd

See more details on using hashes here.

Provenance

The following attestation bundles were made for emberio_labs_ember_agent-0.1.0-py3-none-any.whl:

Publisher: publish.yml on emberio-labs/ember-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page