Skip to content

Agentkit — Release Notes ​

v0.3.5 ​

Release Date: Sep 2026

Semantic memory builders ​

  • agent_config= — build_agent_with_memory now accepts AgentConfig on agent_config=. config= continues to accept MemoryConfig.
  • build_semantic_strategy(...) — create a semantic-memory strategy from an LLM, embedding backend, and vector database configuration
  • build_semantic_strategy_from_env(...) — the same builder, driven by VECTOR_DB_PROVIDER, EMBEDDING_PROVIDER, and provider environment variables

See Memory Overview and Memory API.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.3.5

With A2A support:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.3.5"

With chat-history memory:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[elsai-chat-history]==0.3.5"

v0.3.4 ​

Release Date: Sep 2026

Namespace package ​

  • elsai is now a namespace package — existing imports are unchanged. Other ElsAI packages can add modules under elsai without replacing AgentKit.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.3.4

With A2A support:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.3.4"

v0.3.3 ​

Release Date: Sep 2026

Bedrock prompt cache TTL ​

  • CacheConfig TTL — CacheConfig(strategy="auto", ttl="5m"|"1h") on elsai_model.bedrock.BedrockModel for automatic cache-point injection
  • Usage reporting — Usage includes cacheDetails (per-TTL write breakdown) and requestedCacheTtl
  • Telemetry — model and agent spans stamp OTel cache attributes (gen_ai.usage.cache_creation.input_tokens.5m, .1h, gen_ai.usage.cache.requested_ttl) for correct ARMS cost billing
  • LiteLLM — cachePoint TTL is forwarded as cache_control.ttl when routing through LiteLLM

cache_prompt is deprecated — use cache_config on BedrockModel. See Amazon Bedrock — Prompt caching.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.3.3

With A2A support:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.3.3"

v0.3.2 ​

Release Date: Aug 2026

Permissions ​

Declarative allow / deny / interrupt rules for host file and command tools, evaluated before each tool call. Set filesystem_permissions and execution_permissions on AgentConfig — the SDK registers the plugins; do not attach them manually.

  • elsai.permissions — FilesystemPermission, ExecutionPermission, DenyPolicy, presets, and interrupt constants
  • Filesystem — glob rules for host file_read, file_write, and editor; sandbox read_file / write_file / list_dir are not gated
  • Execution — regex rules for shell, python_repl, and sandbox execute; require_workspace_cwd for cwd checks
  • Aggregation — multi-path and multi-command calls use strict deny > interrupt > allow
  • DenyPolicy — post-deny continue, stop, or guide, with optional per-invocation budgets
  • Sub-agents — None inherits parent rules; [] disables enforcement
  • Audit — structured INFO JSON on elsai.filesystem.audit and elsai.execution.audit

See Permissions and Permissions API.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.3.2

With A2A support:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.3.2"

v0.3.1 ​

Release Date: Aug 2026

Checkpoints ​

Thin ReAct-loop bookmarks under an agent session for mid-tool crash recovery. Enable with AgentConfig(checkpoint=CheckpointConfig(...)) — requires a session_manager. There is no public resume() API: rebuild the Agent with the same session_id + agent_id and invoke again.

  • elsai.checkpoint — stable package (Checkpoint, CheckpointConfig, CheckpointException); elsai.experimental.checkpoint is deprecated
  • Save boundaries — after_tools (default), after_model, or both
  • Auto-resume — active bookmarks that pass the consistency gate finish pending tools before new user text; inconsistent bookmarks fall through to messages-only
  • AgentResult — resumed_from_checkpoint and resume_position
  • Graph / Swarm — dual-layer recovery: orchestrator session for which node next, per-node session + checkpoint for mid-loop resume

See Checkpoints and Checkpoint API.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.3.1

With A2A support:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.3.1"

v0.3.0 ​

Release Date: Jul 2026

Upgrades Agent-to-Agent (A2A) support to A2A Protocol v1.0 via a2a-sdk>=1.0.0 (tested with 1.1.0). Adds the shared sandbox execution model for isolated workspace runs. See Agent-to-Agent (A2A) and Sandbox.

A2A Protocol v1.0 ​

  • a2a-sdk 1.x — server and client now target a2a-sdk>=1.0.0,<2.0.0 (previously 0.3.x)
  • High-level API unchanged — A2AServer, A2AAgent, as_tool(), and Graph integration work as before for typical usage
  • Compliant streaming by default — enable_a2a_compliant_streaming=True sends artifact updates per the v1 spec
  • client_config — pass a2a.client.ClientConfig to A2AAgent for authenticated endpoints (replaces deprecated a2a_client_factory)
  • Stream normalizer — iter_normalized_responses and A2AStreamNormalizer exported from elsai.multiagent.a2a for custom v1 clients
  • Session isolation — per-context_id agent pooling with configurable max_active_contexts and strict_tool_policy
  • v0.3 backward compatibility — set enable_v0_3_compat=True on A2AServer for legacy wire-format clients

Shared sandbox execution (elsai-agents) ​

  • Sandbox — application-owned workspace with start/stop, flush, attach/detach, and read_write / read_only attach modes
  • AgentConfig(sandbox=...) — multiple agents share one filesystem in-process while keeping separate conversations
  • SandboxPlugin — registers workspace tools: execute, read_file, write_file, list_dir (auto-added on attach when sandbox= is set)
  • SandboxManager — get-or-create sessions keyed by workspace_id, with idle TTL backstop via cleanup_expired()
  • Host tool blocking — in SandboxMode.SANDBOX, host prebuilt tools (shell, python_repl, file_read, file_write, environment) are blocked; use sandbox plugin tools instead
  • Plugin helpers — run_command, read_workspace_file, write_workspace_file, list_workspace_dir for custom @tool functions
  • Structured audit events — lifecycle and mutation logging on elsai.sandbox.audit

Sandbox backends ship in elsai-agents-tools 0.2.0: LocalSandboxBackend (dev), AgentCoreSandboxTemplate (production), DaytonaSandboxTemplate (remote). See Sandbox backends.

Breaking changes (raw HTTP / third-party clients only) ​

If you call an Elsai A2A server with raw HTTP or a third-party v0.3 client, you must either migrate to the v1 wire format (SendMessage, A2A-Version: 1.0 header) or enable enable_v0_3_compat=True on the server. Elsai SDK users (A2AAgent / A2AServer) are not affected.

See Migrating from A2A v0.3.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.3.0
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents-tools==0.3.0

With A2A support:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.3.0"

Sandbox backends (optional extras):

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[agent-core-code-interpreter]==0.3.0"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[sandbox-daytona]==0.3.0"

Documentation ​


v0.2.1 ​

Release Date: June 2026

Bugfix release for A2A session isolation — stateful tools and conversation history no longer leak across concurrent context_id values on the same A2AServer.

A2A session isolation (elsai-agents) ​

  • A2ASessionStore — One Agent + SessionManager per A2A context_id.
  • Agent factory mode — Pass a callable (A2AContextContext) -> Agent for per-context custom configuration.
  • Default storage — FileSessionManager under $ELSAI_A2A_SESSION_DIR/<context_id>/.
  • max_active_contexts — LRU eviction of in-memory context agents (default 100); in-flight contexts are protected.
  • strict_tool_policy — Fail startup when warnlisted tools are not PER_CONTEXT-safe.
  • A2AToolSessionScope — SHARED, CONTEXT_KEYED, and PER_CONTEXT tiers for custom tools.
  • A2ASessionStoreMetrics — cache_hits, cache_misses, and evictions for observability.

Stateful prebuilt tools (elsai-agents-tools) ​

Prebuilt tools now declare PER_CONTEXT scope and implement clone_for_a2a_context() so mutable state does not leak across A2A context_id values:

ToolPer-context state
python_replREPL namespace + pickle under …/<context_id>/repl/
shellDefault work_dir under …/<context_id>/shell/
use_computerScreenshots under …/<context_id>/use_computer/screenshots/
code_interpreterSandboxed sessions namespaced by context_id (AgentCoreCodeInterpreter)
browserBrowser profile under …/<context_id>/browser/user_data/ (LocalChromiumBrowser, AgentCoreBrowser)
mcp_clientIn-process MCP connection pool per context
graphGraph IDs prefixed with context_id
workflowWorkflow files under …/<context_id>/workflows/
mem0_memoryFAISS store under …/<context_id>/mem0/faiss/

python_repl additionally replaces the former process-wide global REPL singleton with PythonReplTool. Registry name stays python_repl.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.2.1
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.2.1"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents-tools==0.1.0

Documentation ​

Environment variables ​

VariableDescription
ELSAI_A2A_SESSION_DIRRoot for A2A session files and on-disk tool state
PYTHON_REPL_PERSISTENCE_DIRStandalone python_repl persistence root
A2A_SESSIONS_BUCKETS3 bucket for production A2A sessions (deployment convention)
A2A_SESSIONS_PREFIXS3 key prefix for A2A contexts
A2A_PUBLIC_URLPublic URL for the agent card

Full reference: A2A — Environment variables.


v0.2.0 ​

Release Date: Jun 2026

Compatible with elsai-model v2.0.0 from elsai Core.

elsai-agents now works with the unified *Model provider API. Pass any supported model directly to the agent:

python
agent = Agent(model=OpenAIModel(...))

Supported providers include OpenAI, Azure OpenAI, Amazon Bedrock, Anthropic, Gemini, LiteLLM, Ollama, Mistral, Writer, Meta Llama API, llama.cpp, OpenAI Responses, and SageMaker. See Model Providers.

Migration from connector API ​

If you used OpenAIConnector, BedrockConnector, or GeminiService, see the migration table in Core release notes.

Agent-as-tool concurrency modes ​

  • Agent.as_tool(mode=...) — control parallel invocation when the same sub-agent tool is called twice in one turn:
    • reject (default) — fail fast with Agent '…' is already processing a request
    • queue — wait until the shared agent is free
    • spawn — isolated worker per call (parallel-safe)
  • AgentAsToolMode exported from elsai.agent
  • Built-in plugins and conversation managers support spawn cloning via supports_spawn() / clone_for_spawn()
  • tools=[researcher] auto-wraps with mode="reject"; non-default modes require an explicit .as_tool(mode=...)

See Agent as Tool.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.2.0

Optional extras:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.2.0"
pip install --extra-index-url https://core-packages.elsai.ai/root/elsai-model/ elsai-model==2.0.0

v0.1.0 ​

Release Date: 2026

Initial release of the Agentkit Framework, built on the Strands Agents SDK.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents==0.1.0

Optional extras:

bash
# With A2A support
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents[a2a]==0.1.0"

Core agent runtime ​

  • Agent class — Single entry point for creating and running agents with any supported LLM
  • Agent loop — Automatic tool-call/response cycle with configurable max iterations
  • Streaming — Token-by-token and event-stream output
  • Structured output — Typed responses via Pydantic models

Tools ​

  • @tool decorator — Convert any Python function into an agent tool
  • MCP Tools — Connect agents to any MCP server
  • Directory tools — Auto-load tools from ./tools/

Multi-agent ​

  • Graph — DAG-based agent pipelines with conditional routing
  • Swarm — Dynamic agent handoffs with shared context
  • Workflow — Sequential and parallel agent pipelines
  • Agent as Tool — Nest agents inside other agents
  • Agent-to-Agent (A2A) — Remote agent calls over HTTP via A2AServer and A2AAgent

Memory and sessions ​

  • SessionManager — Persist and restore agent conversation state across runs
  • File and S3 storage backends for session persistence

Lifecycle and control ​

  • Hooks — BeforeAgentCallEvent, AfterAgentCallEvent, BeforeToolCallEvent, AfterToolCallEvent
  • Interrupts — Pause and resume agent execution mid-loop
  • Retry strategies — ModelRetryStrategy with exponential backoff

Plugins ​

  • AgentSkills — Load reusable skill sets from SKILL.md files
  • AgentsMdPlugin — Hierarchical AGENTS.md discovery and system-prompt injection (cached at init; default keeps 3 nearest ancestor files)
  • LLMSteeringHandler — Pre/post-call LLM guardrails (Proceed / Guide / Interrupt)
  • ContextOffloader — Automatic offloading of large context to external storage

Agent configuration ​

  • Pass plugins, hooks, session_manager, agent_id, and other metadata through AgentConfig — direct Agent(...) keyword arguments for these fields are deprecated

elsai-agents-tools v0.3.0 ​

Release Date: Jul 2026

  • write_todos — session task tracking on agent.state["todos"] for complex multi-step agent work; distinct from the disk-based journal tool. See Agents and Workflows API.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents-tools==0.3.0

Requires elsai-agents>=0.3.0.


elsai-agents-tools v0.2.0 ​

Release Date: Jul 2026

Companion release for elsai-agents 0.3.0:

  • Sandbox backends — AgentCoreSandboxTemplate ([agent-core-code-interpreter]), DaytonaSandboxTemplate ([sandbox-daytona]), plus LocalSandboxBackend in elsai-agents for local dev. See Sandbox backends.
  • A2A client tools — A2AClientToolProvider, a2a_discover_agent, a2a_send_message upgraded to A2A Protocol v1.0 via a2a-sdk>=1.0.0. Public tool API unchanged.
bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents-tools==0.2.0
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[a2a-client]==0.2.0"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[agent-core-code-interpreter]==0.2.0"
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ "elsai-agents-tools[sandbox-daytona]==0.2.0"

Requires elsai-agents>=0.3.0 for sandbox execution and elsai-agents[a2a]>=0.3.0 when using A2A client tools.


elsai-agents-tools v0.1.0 ​

Release Date: 2026

Initial release of the elsai Prebuilt Tools package — a Python companion to elsai-agents that ships ready-made agent tools for file I/O, shell access, web search, AWS integrations, multi-agent orchestration, and more. Import namespace: elsai_tools.

Installation ​

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ elsai-agents-tools==0.1.0

Requires Python 3.10+ and elsai-agents>=0.2.1.

Optional extras:

bash
pip install --extra-index-url https://elsai-agents.elsai.ai/root/ \
  "elsai-agents-tools[mem0-memory,local-chromium-browser,diagram]==0.1.0"

What's included ​

Tool categories (base package) ​

  • RAG and memory — retrieve, memory, agent_core_memory, mem0_memory, elasticsearch_memory, mongodb_memory
  • File operations — editor, file_read, file_write
  • Shell and system — environment, shell, cron, use_computer
  • Code interpretation — python_repl, code_interpreter
  • Web and network — http_request, slack, browser, tavily_*, exa_*, mcp_client, rss, and more
  • Multimodal — generate_image, image_reader, speak, diagram, chat_video, search_video
  • AWS services — use_aws
  • Utilities — calculator, current_time, load_tool, sleep, stop
  • Agents and workflows — graph, swarm, workflow, batch, a2a_*

Class-based tool providers ​

  • LocalChromiumBrowser / AgentCoreBrowser — Browser automation
  • AgentCoreCodeInterpreter — Sandboxed code execution on Bedrock AgentCore
  • AgentCoreMemoryToolProvider — Bedrock AgentCore Memory
  • A2AClientToolProvider — Agent-to-Agent client tools

Registration model ​

  • Function tools — from elsai_tools.<module> import <tool> then Agent(tools=[...])
  • Class-based tools — instantiate provider, register .code_interpreter, .browser, or *provider.tools
  • Direct invocation — agent.tool.<name>(...) bypasses the LLM

Optional pip extras ​

Extras gate optional dependencies: mem0-memory, elasticsearch-memory, mongodb-memory, local-chromium-browser, agent-core-browser, agent-core-code-interpreter, rss, use-computer, diagram, twelvelabs, a2a-client.

A2A session isolation (requires elsai-agents 0.2.1+) ​

Stateful prebuilt tools declare PER_CONTEXT scope for multi-tenant A2A servers: python_repl, shell, use_computer, code_interpreter, browser, mcp_client, graph, workflow, mem0_memory. See Stateful tools on A2A.

Sensitive tools prompt for user confirmation before running. Set BYPASS_TOOL_CONSENT=true to skip prompts in CI or automated environments.

Documentation ​

Copyright © 2026 elsai foundry.