Skip to content

deepagents==0.7.0b1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:16
a631817

Warning

This is a pre-release version. Install with: pip install deepagents==0.7.0b1

Rolls up alphas 0.7.0a10.7.0a8 plus some additional changes not captured in an a9 release (see footer's Git log summary).

Breaking Changes

  • Agents created with create_deep_agent no longer include TodoListMiddleware by default, so the write_todos tool, todos state channel, and todo-planning prompt are absent unless restored with middleware=[TodoListMiddleware()]. (The OpenAI Codex harness profile still opts in automatically.) (#4929)
  • Default agent prompts are lean: the authored base prompt starts empty, tool-usage prose that duplicates tool schemas is trimmed, and the previous authored base prompt remains available as DEFAULT_AGENT_PROMPT. BASE_AGENT_PROMPT is deprecated and no longer exported at the package top level. (#4859) (#4979)
  • Removed deprecated backend compatibility shims. Callers must pass concrete BackendProtocol instances (not factories), configure StoreBackend with an explicit namespace, and use the current ls / glob / grep / ReadResult APIs. Removed compatibility symbols include BackendFactory, BACKEND_TYPES, FileFormat, and Unset, plus the deprecated runtime parameters on StateBackend and StoreBackend. New files store string FileData.content; older list[str] content remains readable and is converted when overwritten or edited. (#4541)
  • ls and glob empty-result output is now No files found instead of []. Callers that parse empty results should update those checks.
  • read_file no longer renders raw text with a fixed-width cat -n-style line-number gutter and tab separator. Line and continuation markers are dynamically aligned and separated from source content by two spaces. Callers that parse raw tool output should update those parsers. (#4561)

Features

  • Custom middleware passed to create_deep_agent(..., middleware=[...]) can replace a default middleware instance when .name matches, so defaults such as SummarizationMiddleware can be overridden without also excluding the built-in instance. (#4251)
  • Filesystem backends and middleware support delete, including recursive deletes, with a user-facing delete tool and clear unsupported/not-found errors when a backend cannot perform the operation.
  • write_file can overwrite existing files, so agents can replace generated artifacts or apply full-file edits without an intermediate delete. (#4109)
  • FilesystemMiddleware accepts a tool allowlist so callers can expose only selected built-in filesystem tools while keeping read_file available and leaving custom user tools unaffected. Omitted built-in tools are non-executable. (#4325) (#4698)
  • The deepagents[aws] extra includes Bedrock prompt caching support. (#4108)
  • Automatically enable Fireworks prompt-cache session affinity when a compatible langchain-fireworks installation is available. (#4598)
  • grep and glob bound large or slow trees by returning valid partial results with a truncated flag instead of hanging or discarding work on timeout; glob also supports brace expansion such as *.{py,md} on supported backends. (#4063)
  • Agent-facing grep defaults to a 1,000-match cap, streams local ripgrep output, and stops once the cap is reached. Direct FilesystemBackend.grep() callers can request surrounding lines with keyword-only context_lines. (#4570) (#4706)
  • Paginated read_file responses report the returned source-line range, total and remaining line counts, and the next offset, including when reads are shortened by sandbox or middleware limits. (#4540)
  • Optional video frame extraction for read_file when media dependencies are installed. Video files such as .mp4, .mov, .webm, and .mkv are sampled into JPEG frames, with offset and limit interpreted as seconds. (#4094)
  • Sandbox large-result offload for sandbox.execute captures oversized command output directly inside the sandbox artifact path to reduce round trips. (#4230)
  • Built-in NVIDIA adds a built-in Nemotron 3 Ultra harness profile. We also expand with NIM app-origin attribution. (#4455) (#4192)

Bug Fixes

  • Keep fields marked with PrivateStateAttr, including fields declared through create_deep_agent(state_schema=...), out of subagent inputs and returned parent-state updates. (#4587)
  • Preserve ContextT through the create_deep_agent(..., middleware=[...]) type annotation so type checkers accept context-aware middleware when a matching context_schema is passed. (#4055)
  • Accept YAML list values as well as comma-separated strings for skill allowed-tools frontmatter, and make skill truncation warnings actionable with field name, path, length, configured limit, and impact. (#4140) (#4141)
  • Align filesystem instructions with the tools that remain after allowlist and backend-capability filtering, so agents no longer reference hidden grep/glob tools or prohibit equivalent shell search when dedicated search tools are unavailable. (#4920) (#4921)
  • Propagate default-backend failures from CompositeBackend.ls("/") and CompositeBackend.als("/") instead of returning successful route-only listings. (#4925)
  • Correct CompositeBackend.glob / CompositeBackend.aglob routing so explicit default-backend paths such as /tools do not also return files from routed backends such as /memories. (#4531)
  • Constrain sandbox glob and slash-pattern grep searches to their declared search root by treating leading / as search-root-relative, rejecting .. traversal segments, and filtering symlink-resolved matches outside the root. (#4588)
  • Unify grep(..., glob=...) include-glob semantics across filesystem and in-memory backends: basename patterns like *.py match at any depth, and slash-containing patterns like src/**/*.py match relative paths consistently. (#3936)
  • Make grep's literal-only contract clearer in tool descriptions and no-match hints, route slash-containing sandbox include-globs correctly, and shorten default search timeouts so bad patterns and huge trees return guidance faster. (#4168)
  • Align sandbox delete behavior with other backends by returning not-found errors for missing paths, and avoid over-blocking unrelated sibling deletes when deny rules use glob patterns. (#4321)
  • Emit max_iterations_reached as the terminal RubricMiddleware status when the iteration cap is exhausted, instead of a final needs_revision event that will not loop. (#4406)
  • Improve rubric grader failure diagnostics with configured model, structured-output strategy, and integer HTTP status when available. (#4938) (#4967)
  • Handle missing async subagent URLs consistently in check_async_task and cancel_async_task. (#3967)

Thanks to our community contributors: Kavish Kartha (@kavishkartha05) (Twitter, LinkedIn), nv-kasikritc

Internal maintainers: Nick Hollon (@nick-hollon-lc), ccurme (@ccurme), Shrikar Seshadri (@davibinboi), Mason Daugherty (@mdrxy)

Released by: Mason Daugherty (@mdrxy)

Released from beta/deepagents-0-7-0b1 at commit a631817

Git log since deepagents==0.7.0a8

This commit history includes changes to this package. Commits are listed newest first.

  • a631817 hotfix(sdk): beta release 0.7.0b1
  • d9f54fc refactor(sdk,evals): deprecate legacy base agent prompt (#4979)
  • 9340518 feat(sdk,code,quickjs)!: make the ToDoListMiddleware list opt-in (#4929)
  • 9a24baf refactor(sdk): correct prompt docs and harden rubric diagnostics (#4989)
  • d046427 revert(code,sdk): revert SystemPromptConfig (#4969)
  • f51d3a0 fix(sdk): diagnose rubric grader structured output errors (#4938)
  • bca70aa fix(sdk): include HTTP status in rubric grader errors (#4967)
  • a8d1b32 feat(sdk,code,quickjs): lean system prompt by default, restorable (#4859)
  • 540a0fa refactor(sdk)!: remove deprecated backend compatibility shims (#4541)
  • 9f92d2f build(sdk): raise dependency minimums (#4936)