v0.3.0 — Chat layer + three-layer SDK
Release notes (markdown):
EasyAgent v0.3.0 is the biggest release since the SDK started. The runtime is
rebuilt around three layers, and a brand-new chat layer is the recommended
entry point for multi-agent collaboration.
Highlights
- 🆕
easyagent.chat— write multi-agent flows as plainawaitcalls. Wrap
anyBaseAgentwithLLMTalker, drop into a preset (sequential/fanout/
chatroom/groupchat/debate), or compose your ownOrchestratoralong
four pluggable axes (routing / turn-taking / stop / summarize). Containers nest
natively becauseOrchestratoritself implementsTalker. - 🧱 Three-layer SDK — a single-agent ladder (
Agent→ReactAgent→
SkillAgent/SandboxAgent), a tick-drivenruntimelayer for autonomous
group simulation, and the newchatlayer for everyday multi-agent work. - 📚 Examples ladder rebuilt — 15 single-concept examples, 00 through 14:
model call → memory/context → tools → skills → sandbox → custom tool → two-agent
talk → sequential → chatroom → groupchat → debate → nested → shared state →
advanced runtime.
What's new
Single-agent layer
BaseAgent/Agent/ReactAgent/SkillAgent/SandboxAgentclean
inheritance chain, with loop logic now inagent.step().AgentSession(renamed fromAgentRuntime) with anon_events(events)hook
for multi-agent participation.BaseAgent.observe(msg)— read-only memory absorption without triggering a
reply.Message.namefield andMessage.to_api_dict(include_reasoning=...).
Tools
EndTool— the canonical "I'm done" tool, on by default inReactAgent.ThinkTool— side-effect-free scratch pad, on by default inReactAgent.ToolManager/SkillManagerare now plain registries instead of
constructor-level singletons.
Events & runtime (easyagent.events, easyagent.runtime)
MessageEvent(visibility viato="*"orto=frozenset(...)),WaitEvent,
EventBus, telemetry events.BaseRuntime,TickBasedRuntime, presets (ParallelRuntime/
SequentialRuntime/ShuffledRuntime), policies (StepPolicy/
SchedulePolicy/StopPolicywith all built-ins).
Chat layer (easyagent.chat)
ChatMessage/Identityprimitives.Talkerprotocol with adapters:LLMTalker,HumanTalker,RuntimeTalker.Orchestrator+ strategies along four axes — see the README and
docs/architecture.md.MultiAgentFormatter— folds others' messages into a<history>block so an
agent never mistakes them for its own; auto-installed byLLMTalker.SharedState— versioned KV blackboard with subscriptions and async
wait_for.
Removed
easyagent/loop/(SingleTurnLoop/ReActLoop) — loop logic now lives in
agent.step().easyagent/pipeline/(Team/BaseNode/BasePipeline) — superseded by
chat.sequentialandOrchestrator.
Install
pip install -U easy-agent-sdk==0.3.0
Optional extras: [sandbox] (Docker sandbox), [web] (SerperSearch), [all].
Full changelog
See https://github.com/SNHuan/EasyAgent/blob/v0.3.0/CHANGELOG.md
---