Changelog
View SourceAll notable changes to lemon_agent are documented here.
The format follows Keep a Changelog;
releases follow Semantic Versioning from 0.1.0 onward.
[Unreleased]
First release as a standalone package. lemon_agent is the :lemon_agent
application from the Lemon umbrella; the OTP application name and every
LemonAgent.* module name are unchanged.
Added
LemonAgent.ToolRegistry— runtime tool registration backed by:persistent_term, so a library or satellite package can add tools to an agent without the agent knowing about it at compile time. Built-in tools win on a name collision, which keeps a third-party registration from shadowing core behaviour by accident. This is the tool-side analogue of the channel adapter and engine registries.LemonAgent.Workspace.GoalStore,.KanbanStoreand.HeartbeatStore— the multi-agent work-coordination stores, moved here fromlemon_core. They are built purely on core primitives and every consumer already depended on this package.LemonAgent.ProviderConfigResolver— provider configuration resolution, moved here fromlemon_core, where it had exactly one consumer.LemonAgent.Envdeclares the environment variables this package reads, with types, defaults and documentation.LemonCore.Envaggregates it when present.
Changed
LemonAgent.Security.ExternalContentis the canonical implementation for wrapping untrusted external content. It stays in this package rather than moving tolemon_corebecause it is defined in terms ofLemonAgent.Types.AgentToolResultandLemonAi.Types.TextContent; a package that knows nothing about agents or models cannot host it.- The X/Twitter tools (
x_search,post_to_x,get_x_mentions) are no longer named by this package's built-in tool list. They ship with thex_apisatellite and register themselves throughLemonAgent.ToolRegistry. If you want them, depend onx_api; nothing in the platform mentions X any more.
Notes
- Depends only on
lemon_aiandlemon_core. This is the package to build on if you want an agent loop and tools without a router, channels or a gateway.