Changelog

Copy Markdown

0.1.0-rc.1 (2026-10-30)

  • Durable agents that run a model and its tools in a loop, kept in any DurableServer backend. They pick up where they left off after a crash. WardrikCore.Backends.MemoryStore keeps them in memory for tests.
  • Capabilities that hand an agent its tools, and middleware that wraps every turn, model call and tool call. Middleware can answer a step, or park it until a person resumes it.
  • Tool annotations, like read_only and idempotent. A call lost in a crash is repeated only if its tool is idempotent, and parks as :in_doubt otherwise.
  • Principals, as in IAM. The turn that answers a message acts on behalf of whoever sent it, and each step's span says so as enduser.id.
  • WardrikCore.Credentials and WardrikCore.Keys, which give tools and model calls the credentials and keys of whoever the agent works for. A credential not yet granted parks the call on a WardrikCore.Authorization.
  • WardrikCore.subagent/3, which runs a subagent on its parent's model, middleware and tools.
  • WardrikCore.Event, which sends each event to :telemetry and to the agent's WardrikCore.Events sink. Text streams as [:wardrik_core, :message, :delta].
  • Every turn a trace and every step a span, with what each tool reports it cost. WardrikCore.evaluate/4 asks an evaluation model questions about a step.