Agents configuration¶
Paths in the tables are relative to the profile heading. Keep model
credentials in protected files or environment variables. Check the profiles
with gdsgate --config <PATH> delegate --list-agent-profiles or
gdsgate --config <PATH> delegate --list-profiles. See the
delegation guide.
agent_profiles[].checked agent_profiles[].config_args agent_profiles[].config_dir_env agent_profiles[].config_env agent_profiles[].config_format agent_profiles[].config_path agent_profiles[].model_config_key agent_profiles[].model_url_env agent_profiles[].model_url_path agent_profiles[].name agent_profiles[].note agent_profiles[].source agent_profiles[].tools_entry agent_profiles[].tools_key delegation_profiles[].agent_profile delegation_profiles[].can delegation_profiles[].env delegation_profiles[].exec delegation_profiles[].exec_args delegation_profiles[].model delegation_profiles[].name delegation_profiles[].renewable delegation_profiles[].sandbox delegation_profiles[].sandbox_allow delegation_profiles[].sandbox_cpu delegation_profiles[].sandbox_listen delegation_profiles[].sandbox_memory delegation_profiles[].sandbox_processes delegation_profiles[].ttl_secs
[[agent_profiles]]¶
How gdsgate delegate --exec configures a named agent: the environment
variable for its model address, and the format and location of its MCP
configuration. See Agent profiles.
The binary ships built-in profiles. A row here with the same name replaces
the built-in one; a row with a new name is added.
| Key | Type | Default | Meaning |
|---|---|---|---|
name |
string | unset, required | Matched against the file name the --exec program was invoked under, or named directly by --agent-profile. |
source |
string | unset, required | URL of the agent documentation the row is based on. |
checked |
date string | unset, required | Date that page was checked, YYYY-MM-DD. |
model_url_env |
array of strings | [] |
Environment variables set to the model endpoint's base URL. Empty for an agent that takes the address from its configuration. |
model_url_path |
string | "" |
Suffix appended to http://127.0.0.1:<port>, for example /v1. |
model_config_key |
string | "" |
Dotted key in the written configuration that receives the base URL, for an agent without a variable for it. |
config_path |
string | "" |
Location of the agent's configuration, relative to its $HOME. Written only under a cage, where $HOME belongs to the run. |
config_env |
string | "" |
Variable the agent reads an additional configuration file path from. Use it only when the agent merges that file with its own; it is set with and without a cage. |
config_dir_env |
string | "" |
Variable the agent reads its configuration directory from. Under a cage it is set to a directory in the run's home, which is created. Required on Windows, where a sandboxed program cannot look up its profile directory. The built-in codex row sets CODEX_HOME. |
config_args |
array of strings | [] |
Arguments placed before yours, for an agent that takes a configuration file by flag. ${config} is replaced with the written file's path. Printed with the run. |
config_format |
string | "" |
json or toml. |
tools_key |
string | "" |
Dotted key of the MCP server map: mcpServers, mcp_servers, mcp.servers, mcp. |
tools_entry |
string | "" |
One server entry as a JSON object. ${url}: the endpoint's Streamable HTTP address. ${endpoint}: its host:port. ${command}: this binary's path, for agents that reach the endpoint through gdsgate mcp bridge. |
note |
string | "" |
Printed with the run: what the profile cannot configure and what to do by hand. |
# An agent that dials Streamable HTTP and reads its model address from
# the environment.
[[agent_profiles]]
name = "acme-agent"
source = "https://acme.example/docs/configuration"
checked = "2026-08-03"
model_url_env = ["ACME_BASE_URL"]
model_url_path = "/v1"
config_env = "ACME_CONFIG"
config_format = "json"
tools_key = "mcpServers"
tools_entry = '{"type": "http", "url": "${url}"}'
# An agent whose MCP client can only start a program: it gets the bridge.
[[agent_profiles]]
name = "stdio-agent"
source = "https://stdio.example/docs/mcp"
checked = "2026-08-03"
config_path = ".config/stdio-agent/config.json"
config_format = "json"
tools_key = "mcpServers"
tools_entry = '{"command": "${command}", "args": ["mcp", "bridge", "${endpoint}"]}'
source, or with a checked value that is not a date, is
refused when the command starts.
[[delegation_profiles]]¶
A named, saved gdsgate delegate invocation: capabilities, cage, extra paths,
and environment. See Saved delegations.
[[agent_profiles]] describes how to configure an agent
program; this section describes what to delegate and under which cage.
| Key | Type | Default | Meaning |
|---|---|---|---|
name |
string | "" |
What --profile names. |
can |
array of strings | [] |
Capabilities, in the --can spelling. A --can on the command line replaces these. |
exec |
string | "" |
The program a bare --exec runs. |
exec_args |
array of strings | [] |
Its arguments, as -- would pass them. Used only when the command line gives none. |
agent_profile |
string | "" |
Agent profile to use when the program's file name does not match one. |
model |
enum | "" |
gateway, direct or off. Empty follows the grant. |
sandbox |
enum | "" |
none, basic or strict. |
sandbox_allow |
array of strings | [] |
Paths the caged program may also read and execute. A --sandbox-allow on the command line replaces these. |
sandbox_listen |
array of integers | [] |
Ports the caged program listens on that this machine may reach, as --sandbox-listen. A --sandbox-listen on the command line replaces these. |
sandbox_memory |
optional string | unset | Memory ceiling for a strict run. |
sandbox_processes |
optional u64 | unset | Process ceiling for a strict run. |
sandbox_cpu |
optional string | unset | CPU ceiling for a strict run. |
ttl_secs |
optional u64 | unset | Grant lifetime. Unset takes the command's own default. |
renewable |
optional bool | unset | Whether the agent-bound certificate is renewed within the grant window. |
env |
table of strings | {} |
Environment for the program, added to what its agent profile sets. |
sandbox, model and agent_profile are read only when a program is run.
Without --exec the same profile issues a grant id for an agent started
elsewhere. --sandbox on the command line without --exec is refused.
A value under env may be ${env:NAME} (from the caller's environment) or
${file:/path} (file contents, trailing newline removed). Use them for
secrets. A plain string is used as is. A reference that resolves to nothing
stops the run before the grant is issued.