NovaAgents
NovaAgents (novaagents) is a production-oriented agent harness for building stateful AI agents with managed sessions, context management, skills, subagents, and long-term memory.
Provenance: NovaAgents is derived from Deep Agents (LangChain). It keeps compatibility where practical, but it is an independent package with Nova-specific APIs and behavior.
Installation
Install from PyPI (recommended, once published):
pip install novaagents
# or
uv add novaagents
For local development, run from the repository root:
uv sync --all-groups
Optional extras:
pip install "novaagents[aws]" # AWS Bedrock support
pip install "novaagents[video]" # video/media helpers (av, pillow)
Quickstart
Use create_nova_agent for the Nova graph. create_deep_agent is a separate compatibility factory with the inherited behavior.
from novaagents import create_nova_agent
from langchain.chat_models import init_chat_model
model = init_chat_model("anthropic:claude-sonnet-4-6")
agent = create_nova_agent(
model=model,
system_prompt="You are a concise, reliable assistant.",
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "Summarize this repository."}]}
)
print(result["messages"][-1].content)
Managed Sessions (Nova-specific)
NovaSession supervises local background tasks and serializes parent invocations. Pass it a compiled Nova graph:
import asyncio
from novaagents import NovaSession
async def main():
# Use the agent constructed in the quickstart above.
async with NovaSession(agent, thread_id="demo-001") as session:
result = await session.ainvoke({
"messages": [{"role": "user", "content": "List files in / and summarize the project."}],
})
print(result["messages"][-1].content)
await session.wait_until_idle()
asyncio.run(main())
See MANAGED_SESSIONS.md for lifecycle, resume, and background-task behavior. Persistence across restarts requires a persistent checkpointer and the appropriate backend. Local background workers live only for the current process.
Nova Features
NovaAgents includes capabilities layered on the Deep Agents foundation:
create_nova_agent: Nova graph assembly with Nova middleware defaults.NovaSession: local background task supervision and serialized conversation execution.- Context & managed skills middleware: Nova-specific context loading/handling and skill behavior (see
novaagents.middleware). - Subagents / delegation: task decomposition via LangGraph subagent patterns.
- Filesystem & stateful workflows: tool-driven file operations and checkpointed agent state.
- Long-term memory patterns: memory-backed workflows depending on configured backend/tools.
Compatibility APIs from the upstream lineage may still exist; prefer Nova APIs for new integrations and verify behavior against this repository's tests/docs.
Development
# install dev/test deps (example)
uv sync --group test
# lint / type / test (requires deps)
make lint
make type
make test
See DEVELOPMENT.md for development and PUBLISHING.md for PyPI releases.
Security & Threat Model
See THREAT_MODEL.md. NovaAgents inherits the general agent/tool risk profile of Deep Agents-derived systems: treat tool outputs, files, web content, and model outputs as untrusted inputs to policy decisions; enforce least privilege and human approval for sensitive actions.
Changelog & License
- CHANGELOG.md
- LICENSE (MIT)
Upstream Attribution
NovaAgents is derived from the Deep Agents project by LangChain:
- Upstream source: https://github.com/langchain-ai/deepagents
- Upstream docs: https://docs.langchain.com/oss/python/deepagents/overview
Security
NovaAgents follows a "trust the LLM, enforce at the tool boundary" model: the agent can do anything its tools allow. Enforce boundaries via sandboxing, least-privilege tools, and human approval for sensitive actions (see THREAT_MODEL.md). Upstream Deep Agents security guidance: Deep Agents security policy.
Contributing
Contributions are welcome (features, fixes, docs, tests). Before opening changes, run available checks and record blocked validation honestly. If your work touches upstream-derived behavior, keep Nova-specific intent and compatibility clear; upstream project context: Deep Agents.
Metadata
Release files for novaagents 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| novaagents-0.8.0.tar.gz | 397.5 kB | Without provenance | Details for novaagents-0.8.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| novaagents-0.8.0-py3-none-any.whl | Python 3 | none | any | Details for novaagents-0.8.0-py3-none-any.whl |
Total release size: 797.1 kB
Release files / novaagents-0.8.0.tar.gz
| Download URL | novaagents-0.8.0.tar.gz |
|---|---|
| Size | 397.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
00a86aaba5db06715af207dd3ae350a16ebcdebe0801a06daede3574ba9aebb5
|
|
BLAKE2b-256 checksum How to use checksums |
ea9ea4865065dcad67f5b0e42dc82776f4e624b5c3e13249bc7cf9e966d2e13f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Release files / novaagents-0.8.0-py3-none-any.whl
| Download URL | novaagents-0.8.0-py3-none-any.whl |
|---|---|
| Size | 399.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9941abbeddf98c68084f392251bb589b47f00c42cfa0bf7fd331b439abd81a94
|
|
BLAKE2b-256 checksum How to use checksums |
c391bffbb7d9df88e3c74c335e85088a672957d0d246b2e34b5e390ce8750b5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.13
|
Security for novaagents 0.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.