Skip to main content
Glama

Update agent config

agents_update
Destructive

Replaces an active agent's config without restarting its conversation and returns the new agent_config. Model, instruction, and tool changes apply at the agent's next model call; machine changes apply immediately, stopping processes on removed machines and deleting the agent's machines from removed pools. Send the complete config, not a patch.

Input Schema

NameRequiredDescriptionDefault
orgIDYesOrganization ID (org_...).
sourceYesAgent config source as YAML or JSON text, or, with source_format json, as a JSON object.
agentIDYesAgent ID (agt_...).
projectIDYesProject ID (proj_...).
source_formatYesFormat of source: yaml or json.
expected_current_config_idNoAgent config ID (acfg_...).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / $defs / AgentConfigDefinitionGitCredentials / properties / read_only
      Added value: +{
      +  "description": "Prevents pushing, even if the integration allows it.",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / AgentConfigDefinitionGitCredentials / properties / repository_ids
      Added value: +{
      +  "description": "GitHub repository IDs the credentials can access. Defaults to every repository the installation can access.",
      +  "items": {
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  "maxItems": 500,
      +  "minItems": 1,
      +  "type": "array",
      +  "uniqueItems": true
      +}
  2. Changed5 schema fields changed
    • addedInput schema / properties / agentID / description
      Added value: +"Agent ID (agt_...)."
    • addedInput schema / properties / expected_current_config_id / description
      Added value: +"Agent config ID (acfg_...)."
    • addedInput schema / properties / orgID / description
      Added value: +"Organization ID (org_...)."
    • addedInput schema / properties / projectID / description
      Added value: +"Project ID (proj_...)."
    • addedInput schema / properties / source_format / description
      Added value: +"Format of source: yaml or json."
  3. Changed6 schema fields changed
    • addedInput schema / $defs / AgentConfigDefinitionModel / properties / context_window_tokens / description
      Added value: +"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit."
    • addedInput schema / $defs / AgentConfigDefinitionModel / properties / context_window_tokens / maximum
      Added value: +2147483647
    • changedInput schema / $defs / AgentConfigDefinitionModel / properties / context_window_tokens / minimum
      Previous value: -1New value: +2
    • addedInput schema / $defs / AgentConfigDefinitionSubagentModel / properties / context_window_tokens / description
      Added value: +"Context budget for input and output tokens. Triggers compaction when estimated input exceeds the remaining budget after output and safety reserves. The turn fails if compaction cannot make it fit."
    • addedInput schema / $defs / AgentConfigDefinitionSubagentModel / properties / context_window_tokens / maximum
      Added value: +2147483647
    • changedInput schema / $defs / AgentConfigDefinitionSubagentModel / properties / context_window_tokens / minimum
      Previous value: -1New value: +2
  4. Changed6 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "AgentConfigDefinition": {
      +    "additionalProperties": false,
      +    "description": "An agent config as a JSON object. This schema is the source of truth for agent configs: the server compiles YAML and JSON configs against it.",
      +    "properties": {
      +      "event_webhook": {
      +        "$ref": "#/$defs/AgentConfigDefinitionEventWebhook"
      +      },
      +      "git_credentials": {
      +        "$ref": "#/$defs/AgentConfigDefinitionGitCredentials"
      +      },
      +      "instruction": {
      +        "minLength": 1,
      +        "pattern": "\\S",
      +        "type": "string"
      +      },
      +      "interaction_handlers": {
      +        "$ref": "#/$defs/AgentConfigDefinitionInteractionHandlers"
      +      },
      +      "machine_sources": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMachineSources"
      +      },
      +      "max_depth": {
      +        "maximum": 8,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "max_subagents": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "mcp": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMCPServers"
      +      },
      +      "memory_stores": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMemoryStores"
      +      },
      +      "model": {
      +        "$ref": "#/$defs/AgentConfigDefinitionModel"
      +      },
      +      "skills": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSkills"
      +      },
      +      "subagents": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSubagents"
      +      },
      +      "tools": {
      +        "$ref": "#/$defs/AgentConfigDefinitionTools"
      +      },
      +      "version": {
      +        "enum": [
      +          "v1"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "instruction",
      +      "model"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionEventWebhook": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "events": {
      +        "items": {
      +          "enum": [
      +            "agent_input",
      +            "model_output",
      +            "tool_result",
      +            "context_checkpoint",
      +            "tool_call_update"
      +          ]
      +        },
      +        "minItems": 1,
      +        "type": "array",
      +        "uniqueItems": true
      +      },
      +      "signing_secret_id": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "url": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url",
      +      "events"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionGitCredentials": {
      +    "additionalProperties": false,
      +    "description": "Integration whose git credentials the agent's machines use.",
      +    "properties": {
      +      "integration": {
      +        "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,31}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "integration"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionInteractionHandler": {
      +    "additionalProperties": false,
      +    "description": "Enables an integration's interaction handler. Takes no settings.",
      +    "type": "object",
      +    "x-go-type": "agentconfig.AgentConfigIntegrationCapabilitySource",
      +    "x-go-type-import": {
      +      "path": "github.com/omnara-ai/omnara/internal/agentconfig"
      +    }
      +  },
      +  "AgentConfigDefinitionInteractionHandlers": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionInteractionHandler"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,31}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "description": "Interaction handlers keyed by integration name.",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPAuth": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "region": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "secret_id": {
      +        "minLength": 1,
      +        "pattern": "^sec_[a-z2-7]{26}$",
      +        "type": "string"
      +      },
      +      "service": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "bearer",
      +          "oauth",
      +          "sigv4"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "secret_id"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPServer": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "auth": {
      +        "$ref": "#/$defs/AgentConfigDefinitionMCPAuth"
      +      },
      +      "default_enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "deferred": {
      +        "type": "boolean"
      +      },
      +      "permission": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolPermission"
      +      },
      +      "tools": {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMCPTool"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,63}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "url": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "url"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPServers": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMCPServer"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[a-zA-Z][a-zA-Z0-9-]{0,31}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMCPTool": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "deferred": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "permission": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolPermission"
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMachineSource": {
      +    "additionalProperties": false,
      +    "oneOf": [
      +      {
      +        "required": [
      +          "machine_name"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "required": [
      +          "machine_pool_name"
      +        ],
      +        "type": "object"
      +      }
      +    ],
      +    "properties": {
      +      "cwd": {
      +        "maxLength": 4096,
      +        "type": "string"
      +      },
      +      "delete_after_idle_minutes": {
      +        "anyOf": [
      +          {
      +            "const": 0
      +          },
      +          {
      +            "maximum": 2147483647,
      +            "minimum": 5,
      +            "type": "integer"
      +          }
      +        ]
      +      },
      +      "description": {
      +        "maxLength": 4096,
      +        "type": "string"
      +      },
      +      "env_overlay": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "propertyNames": {
      +              "$ref": "#/$defs/EnvironmentVariableName"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "initial_num_machines": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "machine_cpu": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "machine_memory_mb": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "machine_name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "machine_pool_name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "machine_provider_options_overlay": {
      +        "anyOf": [
      +          {
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "max_machines": {
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "secret_env_overlay": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": {
      +              "anyOf": [
      +                {
      +                  "pattern": "^sec_[a-z2-7]{26}$",
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "propertyNames": {
      +              "$ref": "#/$defs/EnvironmentVariableName"
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMachineSources": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMachineSource"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMemoryStore": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "access": {
      +        "enum": [
      +          "read",
      +          "read_write"
      +        ],
      +        "type": "string"
      +      },
      +      "name": {
      +        "$ref": "#/$defs/MemoryStoreName"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "access"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionMemoryStores": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "$ref": "#/$defs/AgentConfigDefinitionMemoryStore"
      +        },
      +        "type": "array"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionModel": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cache_retention": {
      +        "enum": [
      +          "none",
      +          "short",
      +          "long"
      +        ]
      +      },
      +      "context_window_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "default_max_output_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "provider_config": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "reasoning": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "effort": {
      +            "minLength": 1,
      +            "pattern": "\\S",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "effort"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "provider_config",
      +      "name"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSkills": {
      +    "anyOf": [
      +      {
      +        "items": {
      +          "pattern": "^skl_[a-z2-7]{26}$",
      +          "type": "string"
      +        },
      +        "type": "array",
      +        "uniqueItems": true
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagent": {
      +    "additionalProperties": false,
      +    "else": {
      +      "not": {
      +        "required": [
      +          "profile"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "if": {
      +      "properties": {
      +        "type": {
      +          "const": "profile"
      +        }
      +      },
      +      "required": [
      +        "type"
      +      ],
      +      "type": "object"
      +    },
      +    "properties": {
      +      "archive_after_idle_minutes": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "description": {
      +        "type": "string"
      +      },
      +      "instruction": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSubagentInstruction"
      +      },
      +      "max_instances": {
      +        "maximum": 2147483647,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "model": {
      +        "$ref": "#/$defs/AgentConfigDefinitionSubagentModel"
      +      },
      +      "profile": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "type": {
      +        "enum": [
      +          "profile",
      +          "self"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "then": {
      +      "required": [
      +        "profile"
      +      ]
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagentInstruction": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "append": {
      +        "type": "string"
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagentModel": {
      +    "additionalProperties": false,
      +    "dependentRequired": {
      +      "name": [
      +        "provider_config"
      +      ],
      +      "provider_config": [
      +        "name"
      +      ]
      +    },
      +    "properties": {
      +      "cache_retention": {
      +        "enum": [
      +          "none",
      +          "short",
      +          "long"
      +        ]
      +      },
      +      "context_window_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "default_max_output_tokens": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "name": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "provider_config": {
      +        "$ref": "#/$defs/ResourceNameReference"
      +      },
      +      "reasoning": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "effort": {
      +            "minLength": 1,
      +            "pattern": "\\S",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "effort"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionSubagents": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionSubagent"
      +        },
      +        "propertyNames": {
      +          "pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$",
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionTool": {
      +    "additionalProperties": false,
      +    "else": {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "required": [
      +              "description"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "required": [
      +              "input_schema"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      }
      +    },
      +    "if": {
      +      "properties": {
      +        "type": {
      +          "const": "custom"
      +        }
      +      },
      +      "required": [
      +        "type"
      +      ],
      +      "type": "object"
      +    },
      +    "properties": {
      +      "deferred": {
      +        "type": "boolean"
      +      },
      +      "description": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "enabled": {
      +        "anyOf": [
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "input_schema": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolInputSchema"
      +      },
      +      "permission": {
      +        "$ref": "#/$defs/AgentConfigDefinitionToolPermission"
      +      },
      +      "type": {
      +        "enum": [
      +          "built_in",
      +          "custom"
      +        ]
      +      }
      +    },
      +    "then": {
      +      "required": [
      +        "description",
      +        "input_schema"
      +      ]
      +    },
      +    "type": "object",
      +    "x-go-type": "agentconfig.AgentConfigToolSource",
      +    "x-go-type-import": {
      +      "path": "github.com/omnara-ai/omnara/internal/agentconfig"
      +    }
      +  },
      +  "AgentConfigDefinitionToolInputSchema": {
      +    "additionalProperties": true,
      +    "description": "A JSON Schema for the tool's input. Keywords beyond those listed, such as additionalProperties or description, are allowed.",
      +    "properties": {
      +      "properties": {
      +        "additionalProperties": {
      +          "type": "object"
      +        },
      +        "type": "object"
      +      },
      +      "required": {
      +        "items": {
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "type": {
      +        "const": "object"
      +      }
      +    },
      +    "required": [
      +      "type"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionToolPermission": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "mode": {
      +        "minLength": 1,
      +        "pattern": "\\S",
      +        "type": "string"
      +      },
      +      "parameters": {
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "mode"
      +    ],
      +    "type": "object",
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "AgentConfigDefinitionTools": {
      +    "anyOf": [
      +      {
      +        "additionalProperties": {
      +          "$ref": "#/$defs/AgentConfigDefinitionTool"
      +        },
      +        "propertyNames": {
      +          "allOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$",
      +                  "type": "string"
      +                },
      +                {
      +                  "maxLength": 64,
      +                  "pattern": "^int__[a-zA-Z][a-zA-Z0-9-]{0,31}__[a-zA-Z][a-zA-Z0-9_-]*$",
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            {
      +              "not": {
      +                "pattern": "^mcp__",
      +                "type": "string"
      +              }
      +            }
      +          ]
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ],
      +    "x-go-type": "json.RawMessage"
      +  },
      +  "EnvironmentVariableName": {
      +    "minLength": 1,
      +    "pattern": "^[^=\\x00]+$",
      +    "type": "string"
      +  },
      +  "MemoryStoreName": {
      +    "description": "Machine-readable memory store identifier consisting of lowercase ASCII segments separated by single hyphens.",
      +    "maxLength": 64,
      +    "minLength": 1,
      +    "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +    "type": "string"
      +  },
      +  "ResourceNameReference": {
      +    "description": "Name of an existing resource, resolved when the config is compiled.",
      +    "maxLength": 64,
      +    "minLength": 1,
      +    "pattern": "^\\S(?:.*\\S)?$",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / source / anyOf
      Added value: +[
      +  {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  {
      +    "$ref": "#/$defs/AgentConfigDefinition"
      +  }
      +]
    • addedInput schema / properties / source / description
      Added value: +"Agent config source as YAML or JSON text, or, with source_format json, as a JSON object."
    • removedInput schema / properties / source / minLength
      Removed value: -1
    • removedInput schema / properties / source / type
      Removed value: -"string"
    • addedInput schema / properties / source / x-go-type
      Added value: +"json.RawMessage"
  5. First observed

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the destructiveHint/idempotentHint annotations by specifying exactly what is destroyed: processes stopped on removed machines and machines deleted from removed pools. It also discloses deferred-vs-immediate apply semantics and that the new agent_config is returned, which is the information an agent needs before committing an irreversible change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with the action and scope, then the timing/destruction consequences, then the calling constraint. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, non-idempotent mutation this covers effect timing, destruction side effects, replacement semantics, and return value (no output schema exists, so naming the return is valuable). Gaps remain around required permissions, whether the agent must be quiescent, and stale-config-id handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for `source` — it must be a full config rather than a partial patch. It does not explain `expected_current_config_id` as an optimistic-concurrency guard, leaving one parameter's intent to the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Replaces an active agent's config') plus the key scope fact that the conversation is not restarted. An agent can infer this differs from configs_create and agents_launch, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Send the complete config, not a patch' is a genuine how-to-use constraint, and apply timing is spelled out per field category. However there is no guidance on when to prefer this over configs_create/agents_launch, no preconditions (agent state, permissions), and no note on expected_current_config_id conflict behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.