Roadmap
Where agentling is heading: reliability first, then observability and evaluation, then more models.
agentling is a tiny async framework for reliable, observable, tool-using agents: a clean ReAct loop, typed memory, streaming events, recoverable failures, and progressive-disclosure skills, in a codebase small enough to read in one sitting.
Note
This roadmap is directional, not a schedule. Priorities can shift with community feedback, and the versions below are indicative: pre-1.0 milestones may split or merge.
Shipped: v0.1.0#
The first release: the core framework plus a production-hardening pass. Agent and AgentSession, an OpenAI-compatible model adapter, @tool, typed memory with JSON persistence, streaming events, progressive-disclosure skills, timeouts and cancellation, malformed-output recovery, and a runnable examples suite. See the changelog for the full notes.
Next: reliability (v0.2)#
Top priority. Harden and clean up the v0.1 surface before adding features. There is no point building on foundations with sharp edges.
- Session lifecycle. An idle
interrupt()no longer silently kills the next run, and using one session concurrently raises a clear error instead of quietly corrupting memory. - Honest errors. Make the exception hierarchy real: the documented error types are actually raised, so
except AgentlingErrorbehaves as promised. - Broader compatibility. Stop rejecting valid tool calls from OpenAI-compatible backends (some omit ids mid-stream); synthesize them instead.
- Sampling controls. Expose
temperature,max_tokens,seed, and friends on the model, so deterministic evals and cost caps are possible. - Cleaner semantics.
final_answerno longer leaks into the event stream, context-window trimming applies on every path, and resuming a session no longer duplicates the task. - Robustness. Safe, async-capable step callbacks; Python 3.13 and 3.14 in CI; stricter typing; and a batch of small correctness fixes.
Then: observability and evaluation (v0.3)#
Make every run inspectable and testable.
- Lifecycle tracing. A dependency-free tracing layer over the whole lifecycle (run, step, model call, tool call) capturing inputs, outputs, token usage, timing, and errors.
- OpenTelemetry adapter. Emit standard GenAI spans so traces flow to Langfuse, LangSmith, Arize Phoenix, and any OTLP backend through one integration, not a bespoke plugin per vendor.
- Offline testing and evals. A public, deterministic testing model, so you can run and test your agent with no API key, plus an evaluation harness with datasets and evaluators that works locally or against a hosted experiment backend.
Later: more models (v0.4)#
Meet people where their models already are.
- OpenAI-compatible tier. A documented provider matrix and light ergonomics for OpenRouter, Groq, Together, Fireworks, DeepSeek, Mistral, xAI, local servers (Ollama, vLLM, LM Studio), and Azure OpenAI. Most already work by pointing at a base URL.
- Native Anthropic (Claude). A first-class adapter on the Messages API with tool use, streaming, usage, and prompt caching, beyond the lossy compatibility endpoint.
- More. Native Gemini; optionally a litellm bridge and AWS Bedrock or Vertex.
Exploring: beyond the milestones#
Ideas we like but have not committed to a milestone:
- Structured output (JSON mode and response schemas).
- A human-in-the-loop hook to approve, deny, or modify a tool call before it runs (guardrails).
- An MCP bridge recipe: wrap an MCP tool as an agentling tool.
- An exhaustive failure-mode test suite and a trust policy for skill-provided tools.
Toward 1.0#
Once reliability, observability, and the model surface settle, 1.0 is about committing to a stable public API and semantic-versioning guarantees.
Influence the roadmap#
This is an open, early project and the priorities above are open to input. Open an issue to propose something, describe a use case we are missing, or tell us which item matters most to you. Bug reports and small PRs are especially welcome: see the contributing guide.