feat: add antigravity tools and external agent#8006
Conversation
471e167 to
7618904
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 471e167055
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| event.get("environment_id") | ||
| or interaction_obj.get("environment_id") | ||
| or (interaction_obj.get("environment") or {}).get("id") | ||
| if isinstance(interaction_obj.get("environment"), dict) | ||
| else None |
There was a problem hiding this comment.
Preserve top-level environment_id when parsing SSE frames
The final_env_id assignment is gated by if isinstance(interaction_obj.get("environment"), dict), so when that condition is false the whole expression becomes None and both event["environment_id"] and interaction["environment_id"] are ignored. In streaming runs this can silently drop a valid env id, which prevents session env caching and breaks follow-up features that rely on persisted environment state (reuse/snapshot by session).
Useful? React with 👍 / 👎.
| - `antigravity_session_agentos.py` — same with SQLite-backed sessions | ||
|
|
||
| For the toolkit examples (Antigravity-as-a-tool), see: | ||
| - [`cookbook/91_tools/antigravity_tools.py`](../../91_tools/antigravity_tools.py) — delegate a sub-task to a sandbox |
There was a problem hiding this comment.
Point toolkit README links to the actual antigravity subfolder
The toolkit example links in this README target cookbook/91_tools/*.py, but the new files were added under cookbook/91_tools/antigravity/*.py; following these links lands on non-existent paths and blocks users from running the documented examples.
Useful? React with 👍 / 👎.
7618904 to
e32b4bb
Compare
Adds first-party support for Google's Gemini Agents API ("Antigravity") in
Agno, in two integration shapes mapped to the API's two natural use cases:
- AntigravityAgent (agno.agents.antigravity) — a BaseExternalAgent adapter
so an Antigravity-backed agent can be served through AgentOS with native
sessions, streaming, and UI. Mirrors the existing ClaudeAgent /
LangGraphAgent / DSPyAgent pattern.
- AntigravityTools (agno.tools.antigravity) — a Toolkit so a regular Agno
agent (any model) can delegate a sub-task to a managed Antigravity sandbox
as a single tool call. Mirrors the DaytonaTools / E2BTools pattern.
Mirrored from agno-agi/agno-pvt#1 (squashed).
e32b4bb to
69e4193
Compare
Summary
Adds first-party support for Google's Gemini Agents API ("Antigravity") in Agno, in two integration shapes mapped to the API's two natural use cases:
AntigravityAgent(agno.agents.antigravity) — aBaseExternalAgentadapter so an Antigravity-backed agent can be served through AgentOS with native sessions, streaming, and UI. Mirrors the existingClaudeAgent/LangGraphAgent/DSPyAgentpattern.AntigravityTools(agno.tools.antigravity) — aToolkitso a regular Agno agent (any model) can delegate a sub-task to a managed Antigravity sandbox as a single tool call. Mirrors theDaytonaTools/E2BToolspatternType of change
Checklist
./scripts/format.shand./scripts/validate.sh)Duplicate and AI-Generated PR Check