Skip to content

feat(agents): Antigravity (agy) bots, experimental (A2 of spec 30) - #243

Merged
httpsphl merged 2 commits into
mainfrom
feat/agy-agent
Oct 9, 2026
Merged

httpsphl merged 2 commits into
mainfrom
feat/agy-agent

Conversation

@httpsphl

@httpsphl httpsphl commented Oct 9, 2026

Copy link
Copy Markdown
Owner

A2 of spec 30. An agy bot, off unless experimental_agents = ["agy"] is in config.toml; there is no picker in the app yet (A4), so it is made through bots.create { agent: "agy" }.

What it does

  • Runs agy with USERPROFILE/HOME pointing at <bot folder>\.botloft\agy-home: the bot's own mcp_config.json (Botloft server, bot token) and settings.json, none of the owner's GEMINI.md, settings or MCP servers. The login carries over.
  • AGENTS.md in the bot folder holds the bot's rules.
  • Reads agy's stream-json (init, step_update, result) into the chat through chat::sink: replies and live text, tools (shown as Bash/Write/Read/Edit), read receipt, turn end with tokens or error, conversation to resume.
  • Isolation by deny rules for the same fenced folders as spec 7.5, plus the secrets folder.

Limits (experimental, spec 30.3)

  • In -p agy cannot ask the owner: only mcp(botloft/*) is allowed; shell commands are denied by agy itself and file writes inside the allowed folders are not asked about.
  • No context meter, compaction, plan share, owner's connected tools or model/effort choice.

Also

  • Agent gains locate, extra_env, write_launch_files, speaks_control and a per-process OutputDecoder; Botloft no longer writes its control requests to a process that does not answer them.
  • AgentKind::runs() is replaced by Supervisor::agent_enabled.

Verified with the real agy 1.3.1 (dev daemon, scratch home): the bot listed the Botloft MCP tools, and refused to read secrets\owner.token (the read failed, reply DENIED). Details and what was not seen are in spec 30.4.

Tests: agy_bot.rs (launch files, chat from agy's output, failed turn, resume) and unit tests in agent/agy.rs; fmt, clippy -D warnings and cargo test --workspace pass.

An agy bot runs with its own home as USERPROFILE (MCP config with the bot's
token, settings with deny rules for the fenced folders, no personal
GEMINI.md), reads AGENTS.md for its rules, and its stream-json becomes the
chat through chat::sink. Off unless experimental_agents lists agy.
Agent gains locate, extra_env, write_launch_files, speaks_control and a
per-process OutputDecoder. Checked with the real agy 1.3.1 in a dev daemon:
the bot used the Botloft MCP tools and could not read owner.token.
@httpsphl
httpsphl merged commit d61ebee into main Oct 9, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant