Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.agno.com/llms.txt

Use this file to discover all available pages before exploring further.

AntigravityAgent wraps Managed Agents in the Gemini API so a Google-managed, sandboxed agent can be served through AgentOS. A single API call spins up a secure Linux environment where the agent plans, executes code, searches the web, and reads/writes files. AgentOS handles sessions, streaming, and the UI.
from agno.agents.antigravity import AntigravityAgent
from agno.db.sqlite import SqliteDb
from agno.os import AgentOS

agent = AntigravityAgent(name="Antigravity")

agent_os = AgentOS(
    agents=[agent],
    db=SqliteDb(db_file="tmp/agentos.db"),
)
app = agent_os.get_app()

if __name__ == "__main__":
    agent_os.serve(app="antigravity_agent:app", reload=True)

Install

uv pip install pyyaml
export GEMINI_API_KEY=...
pyyaml is only required for from_agent_directory.

Parameters

ParameterTypeDefaultDescription
namestrNoneDisplay name for the agent.
idstrNoneUnique identifier. Auto-generated from name if unset.
api_keystrNoneGemini API key. Falls back to GEMINI_API_KEY.
base_urlstrGemini v1betaAPI base URL.
agentstr"waverunner"Base agent identifier sent to the API, or a custom agent name.
sourcesList[Dict]NoneGCS / repository / inline sources to seed the sandbox on the first turn.
custom_agent_namestrNoneRegister/invoke a named custom agent instead of the base agent.
custom_agent_instructionsstrNoneSystem instructions for the custom agent definition.
custom_agent_descriptionstrNoneDescription for the custom agent definition.
timeoutint600Per-request timeout in seconds.
dbBaseDbNoneDatabase for session persistence. Required for cross-turn sandbox reuse.

Concepts

Sessions and environment persistence

Each interaction provisions a managed Linux sandbox and returns an environment_id. When a db is configured, AntigravityAgent persists that id (and the previous interaction id) in the session, so subsequent turns with the same session_id reuse the same sandbox. Files, installed packages, and state carry over. Without a db, every turn provisions a fresh sandbox (no cross-turn reuse).
from agno.agents.antigravity import AntigravityAgent
from agno.db.sqlite import SqliteDb

agent = AntigravityAgent(name="Antigravity", db=SqliteDb(db_file="tmp/antigravity.db"))

agent.print_response("Write a file notes.txt containing 'hello'.", session_id="s1")
agent.print_response("Read notes.txt back to me.", session_id="s1")  # same sandbox

Seeding the environment with sources

Pass sources to preload files into the sandbox before the agent runs. Three source types are supported: inline content, Google Cloud Storage, and Git repositories.
agent = AntigravityAgent(
    name="Antigravity",
    sources=[
        {"type": "inline", "content": "agno is an agent framework", "target": "/workspace/about.txt"},
        # {"type": "gcs", "source": "gs://my-bucket/data/", "target": "/data"},
        # {"type": "repository", "source": "github://user/repo", "target": "/repo"},
    ],
)
Inline sources are limited to 75 KB per file; use GCS or a Git repo for larger files.

Custom agents

Register a reusable named agent (instructions + sources stored server-side), then invoke it by name. Registration is explicit and idempotent (an already-existing agent is reused).
agent = AntigravityAgent(
    name="Haiku Bot",
    custom_agent_name="agno-haiku-bot",
    custom_agent_instructions="You only ever respond with a single haiku.",
)
agent.ensure_custom_agent()  # POST /agents, idempotent
agent.print_response("Topic: autumn.")

Defining an agent from a directory

from_agent_directory builds an agent from a local folder following the Managed Agents layout: agent.yaml (id, base_agent, description, system_instruction), AGENTS.md (overrides system_instruction), workspace/ (mounted at the sandbox root), and skills/ (mounted under /.agents/skills/). It registers the agent with the API before returning (register=True default).
from agno.agents.antigravity import AntigravityAgent

agent = AntigravityAgent.from_agent_directory("./my-agent")
agent.print_response("Write me a haiku about Python.")

Downloading an environment snapshot

Pull the sandbox filesystem (after a run modified it) as a tar archive.
agent = AntigravityAgent(name="Antigravity", db=SqliteDb(db_file="tmp/antigravity.db"))
agent.print_response("Create /workspace/report.md", stream=False, session_id="s1")
agent.download_environment_snapshot("snapshot.tar", session_id="s1")

Examples

AgentOS deployment

Serve an Antigravity agent through AgentOS with persisted sessions.

Standalone usage

Call the agent directly with .run() and .print_response().

Sessions

Reuse the sandbox across turns with session_id.

Environment sources

Preload files into the sandbox from inline / GCS / repo sources.

Custom agents

Register and invoke a named custom agent.

Agent from a directory

Define an agent from agent.yaml + AGENTS.md + workspace/ + skills/.

Environment snapshot

Download the sandbox filesystem as a tar archive.

Developer Resources