v3.1.5
agno-agi/agnov3.1.5Oct 19, 2026by kausmeows
Upgrading?
AI Summary
This release introduces support for repository workspaces and S3-based checkpoint storage for sandboxed agents, along with a new KeenableTools toolkit. It also includes improvements to on-demand scheduling and fixes several bugs regarding workflow file propagation and FastAPI compatibility.
Key Highlights
- Sandboxed agents now support `Repository` objects to pin specific commits and work within defined repositories.
- New `S3CheckpointStore` enables storing sandbox checkpoints in S3-compatible buckets for multi-replica setups.
- On-demand schedules can now run without a cron expression, triggered only via HTTP routes.
- New KeenableTools toolkit provides keyless web search and page extraction capabilities.
- Bug fixes include workflow file propagation, YouTube URL parsing, and AgentOS form defaults under FastAPI 0.147.
New Features
- Repositories for Sandboxed Agents: Sandboxed `ClaudeAgent` or `CodexAgent` can take `repository=Repository(url, branch="main")` to start sessions in a specific repo.
- S3 Checkpoint Store: `S3CheckpointStore(bucket, prefix=..., endpoint_url=...)` for storing sandbox checkpoints in S3-compatible buckets.
- Open a Run's Sandbox Checkpoint: `open_run_checkpoint(run_id)` / `aopen_run_checkpoint` on sandboxed agents yield verified archives from completed runs.
- On-Demand Schedules: Schedules with empty or omitted `cron_expr` never arm themselves and run only through their trigger route.
- KeenableTools: New toolkit for Keenable web search and page extraction (`web_search`, `fetch_url_content`) with async variants.
Full Release Notes
# Changelog
## New Features:
- **Repositories for Sandboxed Agents**: A sandboxed `ClaudeAgent` or `CodexAgent` takes `repository=Repository(url, branch="main")` and starts every session in that repository at `/workspace/repository`. The first turn pins the exact commit, later turns keep the pin and the engineer's edits across warm reuse and checkpoint restore, and private repositories authenticate with `GITHUB_READ_TOKEN` from the sandbox environment. See [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/frameworks/sandbox/repository_workspace.py). (#11121)
- **S3 Checkpoint Store**: `S3CheckpointStore(bucket, prefix=..., endpoint_url=...)` keeps sandbox checkpoints in an S3-compatible bucket, so sandboxed agents run on several replicas without a shared filesystem. Objects are content-addressed, uploads are verified before `put` returns, and credentials come from the AWS environment. See [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/frameworks/sandbox/docker/sandbox_s3_checkpoints.py). (#11133)
- **Open a Run's Sandbox Checkpoint**: `open_run_checkpoint(run_id)` / `aopen_run_checkpoint` on a sandboxed agent yield the verified archive a completed run committed, so a host process can read what a turn left behind after the container is gone. `checkpoint_store` exposes the store the agent's turns write to. See [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/frameworks/sandbox/docker/open_checkpoint.py). (#11131)
- **On-Demand Schedules**: A schedule with an empty or omitted `cron_expr` never arms itself and runs only through its trigger route, over HTTP and through `ScheduleManager`. `ScheduleResponse.cron_expr` is now optional and reports it as `null`. (#11118)
- **KeenableTools**: New toolkit for Keenable web search and page extraction (`web_search`, `fetch_url_content`, with async variants). It works with no API key and no new dependency, and refuses fetches that resolve to private or loopback addresses. See [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/91_tools/keenable_tools.py). (#9558)
## Improvements:
- **External Agents in the Registry**: `Registry(agents=[...])` accepts `ClaudeAgent` and `CodexAgent`, and AgentOS agent, team and workflow responses carry a `sandboxed` flag. (#11127)
- **Schedule Endpoint Edits**: Changing a schedule's `endpoint` over `PATCH /schedules/{schedule_id}` or through `ScheduleManager` now updates its target columns instead of leaving them stale. (#11118)
## Bug Fixes:
- **AgentOS Form Defaults on FastAPI 0.147**: FastAPI 0.147.0 reads omitted `bool` form fields as `False`, so run and continue routes returned JSON instead of SSE when `stream` was omitted and continues without `regenerate=true` failed with 400. The routes now restore the declared defaults for `stream`, `monitor` and `replace_original`. (#11160)
- **Sandbox Runs Without Redis**: Sandboxed agent runs over `POST /agents/{agent_id}/runs` no longer answer 400 on a Postgres durable queue without Redis. Cross-replica streaming and cancellation still need Redis. (#11161)
- **Workflow Files**: `File` outputs produced inside `Parallel`, `Steps`, `Loop`, `Condition` and `Router` steps now reach the next step and `workflow_run_response.files`. (#10950)
- **YouTubeTools**: Video ids are read from Shorts, live, mobile, music and privacy-enhanced URLs, and empty ids return `No video ID found` before any request. (#10707)
- **PerplexitySearch and PubmedTools**: An explicit `max_results=0` is honoured instead of being replaced by the default. (#10595)
- **InMemoryDb**: `upsert_user_memory` stores a copy, so mutating the `UserMemory` after the upsert no longer changes the stored memory. (#11016)
## What's Changed
* feat: add Company heartbeat routines and sources by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11102
* feat: automate Ready Tasks and bounded Routine acceptance by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11104
* feat: configure repositories for sandboxed harness agents by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11121
* fix: complete Company automation and configuration follow-up by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11118
* fix: stabilize Company Task session ownership and recovery by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11126
* feat: execute Company Tasks with sandboxed harness agents by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11127
* [fix] propagate files through workflow container steps by @Timotty in https://github.com/agno-agi/agno/pull/10950
* [feat] Add KeenableTools for keyless web search and page extraction by @ilya-bogin-keenable in https://github.com/agno-agi/agno/pull/9558
* fix: read the video ID from Shorts, live and mobile YouTube URLs by @devYRPauli in https://github.com/agno-agi/agno/pull/10707
* [fix] Honor explicit max_results=0 in PerplexitySearch and PubmedTools by @ryanakml in https://github.com/agno-agi/agno/pull/10595
* fix: detach the stored user memory from the caller's object by @insuffer in https://github.com/agno-agi/agno/pull/11016
* feat: open a run's committed sandbox checkpoint through the agent by @ysolanky in https://github.com/agno-agi/agno/pull/11131
* feat: add S3CheckpointStore for sandbox checkpoints in object storage by @kausmeows in https://github.com/agno-agi/agno/pull/11133
* fix: allow sandbox API runs on a durable queue without Redis by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11161
* fix: restore AgentOS boolean form defaults under FastAPI 0.147 by @harshsinha03 in https://github.com/agno-agi/agno/pull/11160
* feat: create Company Products and Routines from the OS Manager chat by @ashpreetbedi in https://github.com/agno-agi/agno/pull/11159
* chore: Release v3.1.5 by @kausmeows in https://github.com/agno-agi/agno/pull/11155
## New Contributors
* @Timotty made their first contribution in https://github.com/agno-agi/agno/pull/10950
* @ilya-bogin-keenable made their first contribution in https://github.com/agno-agi/agno/pull/9558
* @ryanakml made their first contribution in https://github.com/agno-agi/agno/pull/10595
* @insuffer made their first contribution in https://github.com/agno-agi/agno/pull/11016
**Full Changelog**: https://github.com/agno-agi/agno/compare/v3.1.4...v3.1.5Related Repositories
public-apis/public-apis★ 491,136
A collective list of free APIs
NousResearch/hermes-agent★ 255,969
The agent that grows with you
yt-dlp/yt-dlp★ 200,062
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,491
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,703
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.