Observed since 21 Oct, 09:01 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Тонкий harness-фреймворк для AI-агентов: сменный провайдер рантайма (API/Claude Code/Codex), middleware-pipeline и слой skills/MCP.
Тонкий harness-фреймворк для AI-агентов: сменный провайдер рантайма (API / Claude Code / Codex), middleware-pipeline и слой skills/MCP.
Один интерфейс — любой агентный рантайм. Yoke (ярмо/упряжь) — это та самая упряжь, что заставляет несколько волов тянуть в одну сторону. agentyoke делает то же с разными агентными рантаймами и моделями: прикладной код агента не знает, кто внутри — собственный цикл над LiteLLM, Claude Code или Codex.
✅ Статус: 0.1.0 — рабочая реализация. Конфиг, middleware-pipeline (logging / cost / rate-limit / guardrails / cache / retry), observability, загрузчик skills,
ApiProvider(agentic-loop) и CLI-провайдеры реализованы и покрыты тестами (ruff+mypy --strict+pytest).
AgentProvider, AgentEvent); Pydantic отвечает за конфиг и
валидацию, а собственный agentic-loop ходит в модель через LiteLLM.AgentProvider (свой цикл / Claude Code / Codex).flowchart LR
App["Агент-приложение<br/>(agents/<name>)"] --> MW["Middleware<br/>pipeline"]
MW --> P{"AgentProvider"}
P -->|api| API["ApiProvider<br/>(собственный цикл + LiteLLM)"]
P -->|claude_code| CC["ClaudeCodeProvider<br/>(Claude Agent SDK / CLI)"]
P -->|codex| CX["CodexProvider<br/>(Codex CLI / SDK)"]
API --> M[("LLM через LiteLLM")]
MW -.->|спаны/метрики| OTel["OpenTelemetry"]
# из PyPI (после первого релиза: тег v0.1.0 публикует пакет через CI)
pip install agentyoke
# опциональные CLI-рантаймы:
pip install "agentyoke[claude-code]"
# для разработки — из исходников
uv venv --python 3.12
uv pip install -e ".[dev]"
# запуск примера агента (нужен ключ модели, напр. ANTHROPIC_API_KEY)
python -m agents.example.run
Высокоуровневый API — класс Agent: загружает конфиг, собирает провайдер и
middleware-цепочку, и отдаёт либо поток событий, либо агрегированный результат.
from agentyoke import Agent, Message, ToolRegistry
tools = ToolRegistry()
@tools.register
def current_time() -> str:
"""Текущее время."""
from datetime import UTC, datetime
return datetime.now(UTC).isoformat()
agent = Agent.from_config("agents/example/config.yaml", tools=tools)
# Поток событий (TextDelta / ToolCallEvent / UsageEvent / ...):
async for event in agent.run_stream([Message(role="user", content="Который час?")]):
print(event)
# Или агрегированный результат целиком:
result = await agent.run([Message(role="user", content="Который час?")])
print(result.text, result.usage)
Сменить рантайм — это поменять одну строку provider: в config.yaml
(api → claude_code → codex). Прикладной код не меняется.
Если выбран
provider: api, ноANTHROPIC_API_KEYне задан, агент прозрачно использует локальную сессию Claude Code (провайдерclaude_code) — удобно для подписочного доступа без API-ключа. Отключается флагомAgent(..., local_session_fallback=False).
| Документ | О чём |
|---|---|
| docs/ARCHITECTURE.md | Архитектурный обзор: два уровня провайдеров, ядро, потоки |
| docs/PROVIDERS.md | Спека AgentProvider, AgentEvent, контракт каждого провайдера |
| docs/MIDDLEWARE.md | Middleware-pipeline, встроенные middleware, 3 уровня политик |
| docs/SKILLS.md | Три слоя: skills (SKILL.md) / AGENTS.md / MCP |
| docs/OBSERVABILITY.md | OpenTelemetry, GenAI semantic conventions |
| docs/ROADMAP.md | Этапы 0–4 с оценками сроков |
| docs/REFERENCES.md | Источники: Omnigent, Pydantic AI, LiteLLM и др. |
agentyoke/
├── src/agentyoke/ # ядро (тонкое): провайдеры, middleware, skills, observability
├── agents/ # агенты-приложения (каждый — свой config.yaml)
├── docs/ # спецификации (источник истины)
├── CLAUDE.md / AGENTS.md # инструкции для агентных инструментов
└── pyproject.toml
agentyoke is a thin harness framework for AI agents. The core idea is a
slim own core rather than a monolithic framework: the core owns the
contracts, while its own agentic loop talks to models through LiteLLM. Providers
are swappable on two levels: the model (via LiteLLM) and
the agent runtime (AgentProvider: own loop, Claude Code, or Codex — "CLI
as a provider"). Cross-cutting concerns (logging, cost tracking, rate limits,
caching, guardrails) live in a composable middleware pipeline. Instructions
and access come in three layers — Skills (SKILL.md) + AGENTS.md + MCP — and
observability follows OpenTelemetry GenAI semantic conventions.
Switching the runtime is a one-line provider: change in config.yaml; the
application agent code stays the same. See docs/ for full specifications.
Status: 0.1.0 — the core is implemented and tested: config loading, the middleware pipeline, observability, the skills loader, the
ApiProvideragentic loop, and the CLI providers.
MIT.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.1 | 1 Jul 2026 | 14 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 21 Oct, 09:01 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:ba939608dc76e3aae0ae01559de064d977ca4cfd7015f2a18a9c102d0f266de8