Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design, implement, and debug autonomous AI agents and multi-agent systems in Rust using the Google Antigravity (AGY) Rust SDK. ACTIVATE this skill when the user wants to create, configure, or orchestrate Google Antigravity agents in Rust.
.claude/skills/bilal140202-google-antigravity-sdk-rust/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 199% | 0% |
This skill provides comprehensive instructions, architectural guidelines, and reference examples for building autonomous AI agents in Rust using the Google Antigravity SDK.
Ensure the following prerequisites are met before building or running agents:
Cargo.toml:toml [dependencies] antigravity-sdk-rust = { path = "path/to/antigravity-sdk-rust" } tokio = { version = "1", features = ["full"] }
GEMINI_API_KEY environment variable or supply it programmatically via GeminiConfig:localharness binary is accessible either on your system PATH or configured via AgentConfig::binary_path.When designing and deploying agents to WebAssembly targets such as wasm32-wasip1 (e.g., inside Spin or standard WASI runtimes):
sh cargo check --target wasm32-wasip1
WasmConnectionStrategy / WasmConnection) to connect to a host-side localharness WebSocket server.#[async_trait] attribute macro. The SDK uses native async traits (stable since Rust 1.75 / Rust 2024). Standard traits like Connection, Hook, Tool, and Trigger are implemented as native async traits (using impl Future + Send returns for trait-level Send bounds). For dynamic dispatch and runtime storage (e.g. Arc<dyn DynHook>), the SDK provides companion object-safe traits (DynHook, DynTool, DynTrigger) which are automatically implemented via blanket implementations for any type implementing the base trait.sh cargo test wasm::tests
0 to allocate a free TCP port dynamically, record that port, configure WasmConnectionStrategy to point to it, and mock standard JSON frames (StepUpdate, TrajectoryStateUpdate, etc.) to verify client state transitions.Use the links below to navigate specific topics and code configurations:
See architecture.md.
See agent_configuration.md.
See built_in_tools.md.
See safety_policies.md.
See error_handling.md.
See observability.md.
See mcp_integration.md.
See hello_world.md.
Tool trait.See custom_tool.md.
See persona_config.md.
See multimodal.md.
See subagents.md.
See mcp_tools.md.
See periodic_trigger.md.
See hooks.md.
conversation_id.See persistence.md.
See app_data_dir_override.md.
See structured_output.md.
See agent_skills.md.
See policies.md.
See streaming.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,970 | 8,636 | -33% | 1 | 1 | 0% | 2,698 | 3,737 | +39% | 0 | 0 | — |
case-02 | fail→pass | 17,136 | 12,342 | -28% | 1 | 1 | 0% | 3,328 | 4,527 | +36% | 0 | 0 | — |
case-03 | fail→pass | 13,954 | 5,751 | -59% | 1 | 1 | 0% | 2,660 | 3,288 | +24% | 0 | 0 | — |
case-04 | fail→pass | 14,202 | 4,597 | -68% | 1 | 1 | 0% | 2,370 | 2,935 | +24% | 0 | 0 | — |
case-05 | fail→pass | 4,923 | 2,850 | -42% | 1 | 1 | 0% | 848 | 2,536 | +199% | 0 | 0 | — |
case-06 | fail→pass | 10,532 | 2,384 | -77% | 1 | 1 | 0% | 1,809 | 2,461 | +36% | 0 | 0 | — |
case-07 | fail→pass | 11,954 | 1,476 | -88% | 1 | 1 | 0% | 2,132 | 2,257 | +6% | 0 | 0 | — |
case-08 | fail→pass | 6,827 | 1,947 | -71% | 1 | 1 | 0% | 1,310 | 2,446 | +87% | 0 | 0 | — |
case-09 | fail→pass | 11,810 | 3,735 | -68% | 1 | 1 | 0% | 2,000 | 2,480 | +24% | 0 | 0 | — |
case-10 | fail→pass | 9,940 | 3,178 | -68% | 1 | 1 | 0% | 1,760 | 2,617 | +49% | 0 | 0 | — |
case-11 | fail→pass | 10,326 | 2,974 | -71% | 1 | 1 | 0% | 2,231 | 2,644 | +19% | 0 | 0 | — |
case-12 | fail→pass | 15,241 | 5,038 | -67% | 1 | 1 | 0% | 3,225 | 3,311 | +3% | 0 | 0 | — |
case-13 | fail→pass | 10,974 | 1,799 | -84% | 1 | 1 | 0% | 2,085 | 2,320 | +11% | 0 | 0 | — |
case-14 | fail→pass | 7,794 | 2,097 | -73% | 1 | 1 | 0% | 1,605 | 2,373 | +48% | 0 | 0 | — |
case-15 | fail→pass | 11,952 | 3,746 | -69% | 1 | 1 | 0% | 2,369 | 2,791 | +18% | 0 | 0 | — |
case-16 | fail→pass | 12,225 | 5,805 | -53% | 1 | 1 | 0% | 2,402 | 3,216 | +34% | 0 | 0 | — |
case-17 | fail→pass | 13,368 | 2,166 | -84% | 1 | 1 | 0% | 2,339 | 2,473 | +6% | 0 | 0 | — |
case-18 | fail→pass | 10,334 | 3,157 | -69% | 1 | 1 | 0% | 2,247 | 2,655 | +18% | 0 | 0 | — |
case-19 | fail→pass | 7,140 | 3,558 | -50% | 1 | 1 | 0% | 1,527 | 2,743 | +80% | 0 | 0 | — |
case-20 | pass→pass | 12,459 | 7,046 | -43% | 1 | 1 | 0% | 2,649 | 3,497 | +32% | 0 | 0 | — |
case-21 | pass→pass | 9,585 | 3,665 | -62% | 1 | 1 | 0% | 2,086 | 2,884 | +38% | 0 | 0 | — |
case-22 | pass→pass | 6,639 | 4,575 | -31% | 1 | 1 | 0% | 1,347 | 3,003 | +123% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +86 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.