effect-uai — скилл
Скилл учит агента писать ИИ-агентов на effect-uai: потоки ходов модели, инструменты, провайдеры и рецепты.
- 77 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Скилл дает инструкции и ссылки на рецепты, сам ничего не запускает.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/effect-uaiОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Скилл дает инструкции и ссылки на рецепты, сам ничего не запускает.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
effect-uai — набор низкоуровневых примитивов на базе Effect: один ход модели это типизированный поток событий, а цикл агента пишет сам разработчик. Скилл объясняет эту философию и основные примитивы, подсказывает подключение провайдеров и отправляет агента к библиотеке рецептов. Вместо отдельного скилла на каждый рецепт внутри лежит каталог сценариев. Он связывает цель, например автоповтор, подтверждение вызова инструмента, гибридный поиск, голосовой цикл или бот для мессенджера, с папкой в `recipes/`. Агент открывает ее разбор и код, затем адаптирует под задачу. Новые рецепты доступны сразу, без выпуска нового скилла.
Для кого. Разработчикам на TypeScript, которые строят агентов поверх Effect и хотят, чтобы кодовый агент знал примитивы библиотеки.
Подходит, если
- Агента собирают на Effect и нужен цикл с собственным состоянием и бюджетом.
- К модели подключают провайдера OpenAI, Anthropic или Gemini через общий слой.
- Вызовы инструментов проходят подтверждение человеком, цикл ставят на паузу.
- Нужен голосовой агент или бот для Telegram, Discord и Slack.
Не подходит, если
- Проект не использует Effect и не собирается на него переходить.
- Нужен готовый фреймворк, который сам ведет цикл агента.
- Требуется стабильный API без изменений между минорными релизами.
Пример запроса к агенту
Собери агента на effect-uai с подтверждением каждого вызова инструмента и автоповтором при лимите запросов.Ограничения
Библиотека помечена как экспериментальная: в ветке 0.x минорные релизы могут ломать совместимость, для каждого выпускается руководство по миграции. Скилл только ориентирует агента, ключи провайдеров и запуск кода остаются на стороне проекта. Знание Effect агенту не гарантировано, поэтому незнакомые конструкции стоит сверять с документацией. Для каждого провайдера нужен собственный ключ и платный доступ к его API.
Как отключить. Удалите папку скилла из каталога навыков агента. Зависимости `@effect-uai/*` в проекте уберите отдельно.
Частые вопросы
Когда скилл включается?
По широким сигналам вроде «строю ИИ-агента на Effect» или «подключи сервис LanguageModel». Агент загружает его, только когда описание совпадает с задачей.
Какие провайдеры подключаются?
Responses и OpenAI, Anthropic, Gemini, Mistral, любой шлюз с `/chat/completions`, а также поиск (Exa, Tavily, Perplexity), чтение страниц (Firecrawl, Jina) и голос (ElevenLabs).
Чем библиотека отличается от фреймворка?
У нее нет рантайма и оркестратора: ход модели отдает поток событий, а состояние и цикл остаются кодом пользователя.
Что такое рецепты?
Готовые решения для совета моделей, автосжатия контекста, паузы и возобновления, гибридного поиска. У каждого есть разбор и исходный код.
Как обновляться между релизами?
Сайт библиотеки публикует руководства по миграции в виде «если видите X, пишите Y». Агенту достаточно показать нужную страницу.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыПлагин с одним скиллом по проектированию, отладке и оценке ИИ-агентов, основанный на книге Bojie Li об инженерии агентов.
Agents Best Practices
agents-best-practices
Скилл проектирования агентных систем без привязки к вендору: архитектура цикла, инструменты, права, память и наблюдаемость
Реестр скиллов с CLI и API: агент описывает задачу и получает рекомендацию с оценкой доверия и командой установки
Скилл превращает расплывчатый запрос в типизированный IntentSpec: сам ищет ответы в репозитории и задает один вопрос, который не решить без вас
Internet Court
Internet Court Skill
Скилл для сделок между агентами: единая точка входа в идентичность, переговоры, контракты, платежи, эскроу и разбор споров
Каталог из почти двухсот скиллов: доставка кода, ревью, отладка, управление ИИ, продуктовая работа и координация агентов.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| effect-uai (эта карточка) | нет | 77 | |
| Effect-TS Skills | да | 115 | учит общим приемам Effect-TS; effect-uai ориентирован на примитивы агентов и каталог рецептов |
| Effect skill | нет | 355 | справка по самому Effect; этот скилл знает провайдеров, потоки ходов модели и рецепты агентов |
Коротко о README
Скилл лежит в папке `skills/` репозитория. Сама библиотека разбита на пакеты: ядро без провайдерских зависимостей и отдельные пакеты для каждого сервиса. Статус проекта экспериментальный, автор записал вводный видеоролик на 47 минут и ведет сервер в Discord.
Бейдж для README
Исходный SKILL.md
---
name: effect-uai
description: Use when building AI agents and AI media workflows with effect-uai (Effect-based primitives for agent loops, tools, streaming, structured output, embeddings, retrieval, reranking, speech, realtime voice and camera sessions, messenger bots, browser chat UIs, music, and image generation). Covers design philosophy, core primitives, provider wiring, and a recipe library for retry, fallback, tool approval, RAG and hybrid retrieval, transcription, speech synthesis, voice loops, realtime voice agents, Telegram/Discord/Slack bots, music generation, image generation and editing, SSE/JSONL, and more.
license: MIT
---
# effect-uai
Low-level Effect primitives for building AI agents as ordinary programs.
The library does not own your control flow; it gives you the pieces and
gets out of the way.
## Design philosophy
Use this mental model when writing or recommending code:
1. **State is a record you own.** History is `ReadonlyArray<Items.HistoryItem>`.
Add whatever else your app needs (turn index, budget, tenant id,
pendingPrompts, ...). The library never inspects it.
2. **One turn is a `Stream<TurnEvent>`.** Text deltas, reasoning, tool
calls, usage updates, and the terminal `TurnComplete` (carrying the
assembled `Turn`) all flow through one typed stream.
3. **The loop is a pull-based combinator.** `loop((state) => Stream<Step<A, S>>)`
threads state across iterations. Each body returns a stream that
forwards values, then ends with `Loop.next(state)` to continue or
`Loop.stop()` / `Loop.stop(state)` to exit.
4. **Tools are typed Effects (or Streams).** A `Tool` declares an input
schema and a `run(input)` returning an Effect, or a Stream of snapshots
of its own output type. Tools are grouped into a name-indexed `Toolkit`,
and `Toolkit.run(toolkit, calls)` returns a stream of `ToolEvent.Partial`
(every stream element, as it is produced) and `ToolEvent.Output` (a typed
`Result`), so the UI sees progress while only the final value goes back
to the model.
5. **Providers are Layers.** `LanguageModel` is a single service; each
provider package (`@effect-uai/responses`, `@effect-uai/anthropic`,
`@effect-uai/google`) ships a `layer({ apiKey })` that implements it.
The program shape stays identical across providers.
When the user asks for a "framework feature" (auto-retry, mid-stream
abort, pause/resume, streaming JSONL, multi-model voting, ...), the
answer is almost always "compose primitives in the loop body", not
"reach for an integration." Recommend the appropriate recipe pattern
(see catalog below) instead of building wrapper layers.
## Install
```sh
pnpm add @effect-uai/core effect
# pick one or more providers:
pnpm add @effect-uai/openai # OpenAI: Responses (language) + embeddings + speech + images