Changelog¶
v0.4 (unreleased) — API redesign¶
Breaking changes across four areas, plus the new documentation site.
Top-level API¶
- New
aimu.chat(user_message, *, model, ...)— one-shot chat with a model string or enum. - New
aimu.client(model, *, system=None, **kwargs)— one-lineModelClientfactory. - New
aimu.resolve_model_string("provider:model_id")— model-string parser. - New
ModelClientnow accepts a"provider:model_id"string in addition to enum members.
Model clients¶
- New
ModelSpecfrozen dataclass replaces positional enum tuples. AllModelenums migrated. - New
client.reset(system_message="__keep__")clears history and unlocks the system-message setter. - Breaking
system_messageis immutable after the firstchat()call. The setter raisesRuntimeError; callreset()to unlock. - New
include=[...]stream filter onchat()andgenerate()selects phases ("thinking","tool_calling","generating","done"). - Internal Abstract methods renamed
chat → _chat,generate → _generate. Concretechat/generateon the base class apply theincludefilter and delegate.
Agents¶
- Breaking
Agentconstructor signature changed:Agent(model_client, system_message=None, name=None, tools=None, ...).system_messageis the second positional argument;nameis optional (auto-derived). - Breaking
AgenticModelClientremoved from the public API. Useagent.as_model_client()instead. - Breaking
OrchestratorAgent._setup_orchestratorrenamed to_init_orchestrator. - New
OrchestratorAgent.assemble(client, system_message, workers=[...])factory builds an orchestrator without subclassing. - New Workflow factories:
Chain.from_client(client, prompts),Router.from_client(client, classifier_prompt, handlers),Parallel.from_client(client, worker_prompts, aggregator_prompt=),PlanExecuteEvaluator.from_client(client, ...). - Breaking
BaseAgentandWorkflowABCs removed. All concrete agents and workflows inherit directly fromRunner. The agent-vs-workflow split survives as a conceptual category in the docs. - Breaking
AgentChunkandChainChunkcollapsed intoStreamChunk— no back-compat aliases.chunk.agent_name → chunk.agent;chunk.step → chunk.iteration.
Tools¶
- New
@toolraisesToolSignatureErrorat decoration time on unsupported signatures (*args/**kwargs, params with no type hint and no default). - New
Optional[T]andT | Noneunwrap to the inner type in tool specs. - New Built-in tool subgroups:
builtin.web,builtin.fs,builtin.compute,builtin.misc. - New
MCPClientraisesMCPConnectionError(rather than silently failing) on construction or call failure. Added.ping()method.
Skills¶
- Breaking
SkillManagerraisesSkillLoadErroron malformedSKILL.md(instead of silently skipping). - Breaking
SkillManager.get_skill_body()raisesSkillNotFoundErroron unknown skill name (instead of returning a sentinel string). - New Skill catalogue prompt includes script-derived tool names inline.
- Breaking
Skillrenamed toAgentSkill(no back-compat alias). - New Skills logged at
INFOon discovery.
Documentation¶
- New documentation site built with MkDocs Material and hosted on GitHub Pages.
- Diátaxis structure: tutorials, how-to guides, reference, explanation.
- README slimmed to landing-page size.
Earlier versions¶
This is the first formal changelog entry. Prior versions tracked changes via git history; consult git log on GitHub for v0.3.x and earlier.