Repository navigation
feat(agents): Antigravity (agy) bots, experimental (A2 of spec 30) - #243
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A2 of spec 30. An
agybot, off unlessexperimental_agents = ["agy"]is inconfig.toml; there is no picker in the app yet (A4), so it is made throughbots.create { agent: "agy" }.What it does
agywithUSERPROFILE/HOMEpointing at<bot folder>\.botloft\agy-home: the bot's ownmcp_config.json(Botloft server, bot token) andsettings.json, none of the owner'sGEMINI.md, settings or MCP servers. The login carries over.AGENTS.mdin the bot folder holds the bot's rules.agy's stream-json (init,step_update,result) into the chat throughchat::sink: replies and live text, tools (shown as Bash/Write/Read/Edit), read receipt, turn end with tokens or error, conversation to resume.denyrules for the same fenced folders as spec 7.5, plus the secrets folder.Limits (experimental, spec 30.3)
-pagycannot ask the owner: onlymcp(botloft/*)is allowed; shell commands are denied byagyitself and file writes inside the allowed folders are not asked about.Also
Agentgainslocate,extra_env,write_launch_files,speaks_controland a per-processOutputDecoder; Botloft no longer writes its control requests to a process that does not answer them.AgentKind::runs()is replaced bySupervisor::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, replyDENIED). 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 inagent/agy.rs; fmt, clippy -D warnings andcargo test --workspacepass.