Skip to main content
Glama

Create Revision

createRevision

Create a new revision for an existing agent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesBuild name
configNoBuild configuration. An agent step takes the latest agent schema (legacy v1 agent configs are not accepted); a code step takes a code-step config. Omit it to get the step family's default first build.
agent_idYesThe agent's unique identifier
handover_toNoThe single agent or code step to run after this one completes ("Handover to"). Mutually exclusive with handover_target_ids.
source_build_idNoBuild ID to copy integrations and queue links from
handover_target_idsNoAgent IDs that this agent can hand work off to
selected_automation_revision_idNoThe automation revision this edit is being made at. Pass a draft and the edit is folded into that draft itself; pass the active revision and the edit lands on a draft branched from it. A historic revision is rejected — it cannot be activated from without an explicit rebase. A revision belonging to a different automation is ignored, and the edit targets the automation the addressed agent belongs to. Omit to target the automation's active revision.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • changedInput schema / properties / config / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Agent configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -          },
      -          "input": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "items": {
      -                  "properties": {
      -                    "content": {
      -                      "anyOf": [
      -                        {
      -                          "type": "string"
      -                        },
      -                        {
      -                          "items": {
      -                            "anyOf": [
      -                              {
      -                                "properties": {
      -                                  "text": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_text",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "text"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "detail": {
      -                                    "anyOf": [
      -                                      {
      -                                        "enum": [
      -                                          "low",
      -                                          "high",
      -                                          "auto"
      -                                        ],
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "file_id": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "type": {
      -                                    "const": "input_image",
      -                                    "type": "string"
      -                                  },
      -                                  "url": {
      -                                    "anyOf": [
      -                                      {
      -                                        "type": "string"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "properties": {
      -                                  "file_id": {
      -                                    "type": "string"
      -                                  },
      -                                  "type": {
      -                                    "const": "input_file",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "type",
      -                                  "file_id"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      ]
      -                    },
      -                    "role": {
      -                      "enum": [
      -                        "system",
      -                        "user",
      -                        "assistant"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "type": {
      -                      "anyOf": [
      -                        {
      -                          "const": "message",
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "role",
      -                    "content"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -          },
      -          "models": {
      -            "description": "Model configuration for each capability the agent uses",
      -            "properties": {
      -              "agent": {
      -                "description": "Primary agent model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                    "enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ],
      -                    "type": "string",
      -                    "x-extensible-enum": [
      -                      "claude-haiku-4-5-20251001",
      -                      "claude-sonnet-5",
      -                      "claude-sonnet-5[1m]",
      -                      "claude-opus-5",
      -                      "claude-opus-5[1m]",
      -                      "kimi-k3",
      -                      "kimi-k3-duvo",
      -                      "glm-5.2",
      -                      "glm-5.3-flash",
      -                      "deepseek-v4-flash",
      -                      "minimax-m3",
      -                      "qwen3.6-27b",
      -                      "d1-max",
      -                      "duvo-1-max",
      -                      "duvo-1-max-sonnet-1m",
      -                      "duvo-1-max-sonnet-4.5",
      -                      "duvo-1-max-sonnet-4.5-1m",
      -                      "duvo-1-max-opus",
      -                      "duvo-1-max-opus-4.5",
      -                      "gpt-4.1",
      -                      "gpt-4o",
      -                      "gpt-4o-mini",
      -                      "gpt-5",
      -                      "gpt-5.1",
      -                      "claude-sonnet-4-20250514",
      -                      "claude-sonnet-4-20250514[1m]",
      -                      "claude-sonnet-4-5-20250929",
      -                      "claude-sonnet-4-5-20250929[1m]",
      -                      "claude-sonnet-4-6",
      -                      "claude-sonnet-4-6[1m]",
      -                      "claude-opus-4-1-20250805",
      -                      "claude-opus-4-5-20251101",
      -                      "claude-opus-4-6",
      -                      "claude-opus-4-6[1m]",
      -                      "claude-opus-4-7",
      -                      "claude-opus-4-7[1m]",
      -                      "claude-opus-4-8",
      -                      "claude-opus-4-8[1m]"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "model"
      -                ],
      -                "type": "object"
      -              },
      -              "browsing": {
      -                "description": "Browsing/computer-use model configuration",
      -                "properties": {
      -                  "model": {
      -                    "description": "Model identifier for the browsing provider",
      -                    "enum": [
      -                      "gemini-2.5-pro",
      -                      "gemini-2.5-flash",
      -                      "gemini-3-pro-preview",
      -                      "claude-haiku-4-5",
      -                      "claude-sonnet-4-5",
      -                      "claude-opus-4-1"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "provider": {
      -                    "description": "Provider backing the browsing/computer-use model",
      -                    "enum": [
      -                      "google",
      -                      "anthropic"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "provider",
      -                  "model"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "agent",
      -              "browsing"
      -            ],
      -            "type": "object"
      -          },
      -          "options": {
      -            "additionalProperties": {},
      -            "description": "Optional runtime options controlling how the agent executes",
      -            "properties": {
      -              "benchmarkExpectedOutcomes": {
      -                "description": "Expected outcomes used when running benchmark scenarios",
      -                "items": {
      -                  "properties": {
      -                    "criteria": {
      -                      "description": "Pass/fail criteria used to evaluate the outcome",
      -                      "type": "string"
      -                    },
      -                    "description": {
      -                      "description": "Human-readable description of the expected outcome",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "description",
      -                    "criteria"
      -                  ],
      -                  "type": "object"
      -                },
      -                "type": "array"
      -              },
      -              "browserProvider": {
      -                "description": "Browser infrastructure provider",
      -                "enum": [
      -                  "browserbase",
      -                  "browser-use"
      -                ],
      -                "type": "string"
      -              },
      -              "evaluationSchemaId": {
      -                "description": "ID of the evaluation schema to apply to runs of this agent",
      -                "type": "string"
      -              },
      -              "supervisedMode": {
      -                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -                "type": "boolean"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "plugins": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -          },
      -          "skills": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of skills (team or system) that should be available to the agent"
      -          },
      -          "subAgents": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "IDs of other agents (in the same team) to expose to this agent as Claude Code subagents. Each sub-agent runs with its own AOP and connections; the parent can delegate to them via the Agent tool."
      -          }
      -        },
      -        "required": [
      -          "models",
      -          "input"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v2",
      -        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "data": {
      -        "description": "Code step configuration payload",
      -        "properties": {
      -          "files": {
      -            "anyOf": [
      -              {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": [],
      -            "description": "Team file paths this step can read at run time"
      -          },
      -          "language": {
      -            "description": "Language the step's program is written in",
      -            "enum": [
      -              "python"
      -            ],
      -            "type": "string"
      -          },
      -          "source": {
      -            "description": "Where the step's program comes from",
      -            "oneOf": [
      -              {
      -                "properties": {
      -                  "code": {
      -                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "kind": {
      -                    "const": "inline",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "code"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "properties": {
      -                  "kind": {
      -                    "const": "files",
      -                    "type": "string"
      -                  },
      -                  "startCommand": {
      -                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      -                    "maxLength": 2000,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "kind",
      -                  "startCommand"
      -                ],
      -                "type": "object"
      -              }
      -            ]
      -          },
      -          "timeoutMs": {
      -            "default": 600000,
      -            "description": "Wall-clock budget for one execution of the step",
      -            "exclusiveMinimum": 0,
      -            "maximum": 3600000,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "language",
      -          "source"
      -        ],
      -        "type": "object"
      -      },
      -      "version": {
      -        "const": "v1",
      -        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "data"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Retired — Sub-Assignments was removed. Accepted for backwards compatibility and ignored."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / handover_to
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "uuid",
      +      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The single agent or code step to run after this one completes (\"Handover to\"). Mutually exclusive with handover_target_ids."
      +}
  2. Changed5 schema fields changed
    • addedInput schema / properties / config / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Agent configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      +          },
      +          "input": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "items": {
      +                  "properties": {
      +                    "content": {
      +                      "anyOf": [
      +                        {
      +                          "type": "string"
      +                        },
      +                        {
      +                          "items": {
      +                            "anyOf": [
      +                              {
      +                                "properties": {
      +                                  "text": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_text",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "text"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "detail": {
      +                                    "anyOf": [
      +                                      {
      +                                        "enum": [
      +                                          "low",
      +                                          "high",
      +                                          "auto"
      +                                        ],
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "file_id": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  },
      +                                  "type": {
      +                                    "const": "input_image",
      +                                    "type": "string"
      +                                  },
      +                                  "url": {
      +                                    "anyOf": [
      +                                      {
      +                                        "type": "string"
      +                                      },
      +                                      {
      +                                        "type": "null"
      +                                      }
      +                                    ]
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type"
      +                                ],
      +                                "type": "object"
      +                              },
      +                              {
      +                                "properties": {
      +                                  "file_id": {
      +                                    "type": "string"
      +                                  },
      +                                  "type": {
      +                                    "const": "input_file",
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "type",
      +                                  "file_id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "type": "array"
      +                        }
      +                      ]
      +                    },
      +                    "role": {
      +                      "enum": [
      +                        "system",
      +                        "user",
      +                        "assistant"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "type": {
      +                      "anyOf": [
      +                        {
      +                          "const": "message",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ]
      +                    }
      +                  },
      +                  "required": [
      +                    "role",
      +                    "content"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      +          },
      +          "models": {
      +            "description": "Model configuration for each capability the agent uses",
      +            "properties": {
      +              "agent": {
      +                "description": "Primary agent model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      +                    "enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ],
      +                    "type": "string",
      +                    "x-extensible-enum": [
      +                      "claude-haiku-4-5-20251001",
      +                      "claude-sonnet-5",
      +                      "claude-sonnet-5[1m]",
      +                      "claude-opus-5",
      +                      "claude-opus-5[1m]",
      +                      "kimi-k3",
      +                      "kimi-k3-duvo",
      +                      "glm-5.2",
      +                      "glm-5.3-flash",
      +                      "deepseek-v4-flash",
      +                      "minimax-m3",
      +                      "qwen3.6-27b",
      +                      "d1-max",
      +                      "duvo-1-max",
      +                      "duvo-1-max-sonnet-1m",
      +                      "duvo-1-max-sonnet-4.5",
      +                      "duvo-1-max-sonnet-4.5-1m",
      +                      "duvo-1-max-opus",
      +                      "duvo-1-max-opus-4.5",
      +                      "gpt-4.1",
      +                      "gpt-4o",
      +                      "gpt-4o-mini",
      +                      "gpt-5",
      +                      "gpt-5.1",
      +                      "claude-sonnet-4-20250514",
      +                      "claude-sonnet-4-20250514[1m]",
      +                      "claude-sonnet-4-5-20250929",
      +                      "claude-sonnet-4-5-20250929[1m]",
      +                      "claude-sonnet-4-6",
      +                      "claude-sonnet-4-6[1m]",
      +                      "claude-opus-4-1-20250805",
      +                      "claude-opus-4-5-20251101",
      +                      "claude-opus-4-6",
      +                      "claude-opus-4-6[1m]",
      +                      "claude-opus-4-7",
      +                      "claude-opus-4-7[1m]",
      +                      "claude-opus-4-8",
      +                      "claude-opus-4-8[1m]"
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "model"
      +                ],
      +                "type": "object"
      +              },
      +              "browsing": {
      +                "description": "Browsing/computer-use model configuration",
      +                "properties": {
      +                  "model": {
      +                    "description": "Model identifier for the browsing provider",
      +                    "enum": [
      +                      "gemini-2.5-pro",
      +                      "gemini-2.5-flash",
      +                      "gemini-3-pro-preview",
      +                      "claude-haiku-4-5",
      +                      "claude-sonnet-4-5",
      +                      "claude-opus-4-1"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "provider": {
      +                    "description": "Provider backing the browsing/computer-use model",
      +                    "enum": [
      +                      "google",
      +                      "anthropic"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "provider",
      +                  "model"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "agent",
      +              "browsing"
      +            ],
      +            "type": "object"
      +          },
      +          "options": {
      +            "additionalProperties": {},
      +            "description": "Optional runtime options controlling how the agent executes",
      +            "properties": {
      +              "benchmarkExpectedOutcomes": {
      +                "description": "Expected outcomes used when running benchmark scenarios",
      +                "items": {
      +                  "properties": {
      +                    "criteria": {
      +                      "description": "Pass/fail criteria used to evaluate the outcome",
      +                      "type": "string"
      +                    },
      +                    "description": {
      +                      "description": "Human-readable description of the expected outcome",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "description",
      +                    "criteria"
      +                  ],
      +                  "type": "object"
      +                },
      +                "type": "array"
      +              },
      +              "browserProvider": {
      +                "description": "Browser infrastructure provider",
      +                "enum": [
      +                  "browserbase",
      +                  "browser-use"
      +                ],
      +                "type": "string"
      +              },
      +              "evaluationSchemaId": {
      +                "description": "ID of the evaluation schema to apply to runs of this agent",
      +                "type": "string"
      +              },
      +              "supervisedMode": {
      +                "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      +                "type": "boolean"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "plugins": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      +          },
      +          "skills": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of skills (team or system) that should be available to the agent"
      +          },
      +          "subAgents": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "format": "uuid",
      +                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "IDs of other agents (in the same team) to expose to this agent as Claude Code subagents. Each sub-agent runs with its own AOP and connections; the parent can delegate to them via the Agent tool."
      +          }
      +        },
      +        "required": [
      +          "models",
      +          "input"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v2",
      +        "description": "Schema version discriminator — must be \"v2\" for the current schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "data": {
      +        "description": "Code step configuration payload",
      +        "properties": {
      +          "files": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": [],
      +            "description": "Team file paths this step can read at run time"
      +          },
      +          "language": {
      +            "description": "Language the step's program is written in",
      +            "enum": [
      +              "python"
      +            ],
      +            "type": "string"
      +          },
      +          "source": {
      +            "description": "Where the step's program comes from",
      +            "oneOf": [
      +              {
      +                "properties": {
      +                  "code": {
      +                    "description": "Program held in the build config. Written to `main.py` and run with `python main.py`.",
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "kind": {
      +                    "const": "inline",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "code"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "properties": {
      +                  "kind": {
      +                    "const": "files",
      +                    "type": "string"
      +                  },
      +                  "startCommand": {
      +                    "description": "Command run from the root of the step's file system, e.g. \"python main.py\".",
      +                    "maxLength": 2000,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "kind",
      +                  "startCommand"
      +                ],
      +                "type": "object"
      +              }
      +            ]
      +          },
      +          "timeoutMs": {
      +            "default": 600000,
      +            "description": "Wall-clock budget for one execution of the step",
      +            "exclusiveMinimum": 0,
      +            "maximum": 3600000,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "language",
      +          "source"
      +        ],
      +        "type": "object"
      +      },
      +      "version": {
      +        "const": "v1",
      +        "description": "Schema version discriminator — must be \"v1\" for the current code-step schema",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "version",
      +      "data"
      +    ],
      +    "type": "object"
      +  }
      +]
    • changedInput schema / properties / config / description
      Previous value: -"Build configuration (latest schema version only; legacy v1 configs are not accepted)"New value: +"Build configuration. An agent step takes the latest agent schema (legacy v1 agent configs are not accepted); a code step takes a code-step config. Omit it to get the step family's default first build."
    • removedInput schema / properties / config / properties
      Removed value: -{
      -  "data": {
      -    "description": "Agent configuration payload",
      -    "properties": {
      -      "files": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
      -      },
      -      "input": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "items": {
      -              "properties": {
      -                "content": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "items": {
      -                        "anyOf": [
      -                          {
      -                            "properties": {
      -                              "text": {
      -                                "type": "string"
      -                              },
      -                              "type": {
      -                                "const": "input_text",
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "type",
      -                              "text"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          {
      -                            "properties": {
      -                              "detail": {
      -                                "anyOf": [
      -                                  {
      -                                    "enum": [
      -                                      "low",
      -                                      "high",
      -                                      "auto"
      -                                    ],
      -                                    "type": "string"
      -                                  },
      -                                  {
      -                                    "type": "null"
      -                                  }
      -                                ]
      -                              },
      -                              "file_id": {
      -                                "anyOf": [
      -                                  {
      -                                    "type": "string"
      -                                  },
      -                                  {
      -                                    "type": "null"
      -                                  }
      -                                ]
      -                              },
      -                              "type": {
      -                                "const": "input_image",
      -                                "type": "string"
      -                              },
      -                              "url": {
      -                                "anyOf": [
      -                                  {
      -                                    "type": "string"
      -                                  },
      -                                  {
      -                                    "type": "null"
      -                                  }
      -                                ]
      -                              }
      -                            },
      -                            "required": [
      -                              "type"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          {
      -                            "properties": {
      -                              "file_id": {
      -                                "type": "string"
      -                              },
      -                              "type": {
      -                                "const": "input_file",
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "type",
      -                              "file_id"
      -                            ],
      -                            "type": "object"
      -                          }
      -                        ]
      -                      },
      -                      "type": "array"
      -                    }
      -                  ]
      -                },
      -                "role": {
      -                  "enum": [
      -                    "system",
      -                    "user",
      -                    "assistant"
      -                  ],
      -                  "type": "string"
      -                },
      -                "type": {
      -                  "anyOf": [
      -                    {
      -                      "const": "message",
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "role",
      -                "content"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          }
      -        ],
      -        "description": "Initial agent instructions — either a single system prompt string or a list of structured messages"
      -      },
      -      "models": {
      -        "description": "Model configuration for each capability the agent uses",
      -        "properties": {
      -          "agent": {
      -            "description": "Primary agent model configuration",
      -            "properties": {
      -              "model": {
      -                "description": "Model identifier used for the primary agent loop (Claude, or an OSS model when the team's oss_models flag — or oss_models_public for the public subset — is enabled)",
      -                "enum": [
      -                  "claude-haiku-4-5-20251001",
      -                  "claude-sonnet-5",
      -                  "claude-sonnet-5[1m]",
      -                  "claude-opus-5",
      -                  "claude-opus-5[1m]",
      -                  "kimi-k3",
      -                  "kimi-k3-duvo",
      -                  "glm-5.2",
      -                  "glm-5.3-flash",
      -                  "deepseek-v4-flash",
      -                  "minimax-m3",
      -                  "qwen3.6-27b",
      -                  "d1-max",
      -                  "duvo-1-max",
      -                  "duvo-1-max-sonnet-1m",
      -                  "duvo-1-max-sonnet-4.5",
      -                  "duvo-1-max-sonnet-4.5-1m",
      -                  "duvo-1-max-opus",
      -                  "duvo-1-max-opus-4.5",
      -                  "gpt-4.1",
      -                  "gpt-4o",
      -                  "gpt-4o-mini",
      -                  "gpt-5",
      -                  "gpt-5.1",
      -                  "claude-sonnet-4-20250514",
      -                  "claude-sonnet-4-20250514[1m]",
      -                  "claude-sonnet-4-5-20250929",
      -                  "claude-sonnet-4-5-20250929[1m]",
      -                  "claude-sonnet-4-6",
      -                  "claude-sonnet-4-6[1m]",
      -                  "claude-opus-4-1-20250805",
      -                  "claude-opus-4-5-20251101",
      -                  "claude-opus-4-6",
      -                  "claude-opus-4-6[1m]",
      -                  "claude-opus-4-7",
      -                  "claude-opus-4-7[1m]",
      -                  "claude-opus-4-8",
      -                  "claude-opus-4-8[1m]"
      -                ],
      -                "type": "string",
      -                "x-extensible-enum": [
      -                  "claude-haiku-4-5-20251001",
      -                  "claude-sonnet-5",
      -                  "claude-sonnet-5[1m]",
      -                  "claude-opus-5",
      -                  "claude-opus-5[1m]",
      -                  "kimi-k3",
      -                  "kimi-k3-duvo",
      -                  "glm-5.2",
      -                  "glm-5.3-flash",
      -                  "deepseek-v4-flash",
      -                  "minimax-m3",
      -                  "qwen3.6-27b",
      -                  "d1-max",
      -                  "duvo-1-max",
      -                  "duvo-1-max-sonnet-1m",
      -                  "duvo-1-max-sonnet-4.5",
      -                  "duvo-1-max-sonnet-4.5-1m",
      -                  "duvo-1-max-opus",
      -                  "duvo-1-max-opus-4.5",
      -                  "gpt-4.1",
      -                  "gpt-4o",
      -                  "gpt-4o-mini",
      -                  "gpt-5",
      -                  "gpt-5.1",
      -                  "claude-sonnet-4-20250514",
      -                  "claude-sonnet-4-20250514[1m]",
      -                  "claude-sonnet-4-5-20250929",
      -                  "claude-sonnet-4-5-20250929[1m]",
      -                  "claude-sonnet-4-6",
      -                  "claude-sonnet-4-6[1m]",
      -                  "claude-opus-4-1-20250805",
      -                  "claude-opus-4-5-20251101",
      -                  "claude-opus-4-6",
      -                  "claude-opus-4-6[1m]",
      -                  "claude-opus-4-7",
      -                  "claude-opus-4-7[1m]",
      -                  "claude-opus-4-8",
      -                  "claude-opus-4-8[1m]"
      -                ]
      -              }
      -            },
      -            "required": [
      -              "model"
      -            ],
      -            "type": "object"
      -          },
      -          "browsing": {
      -            "description": "Browsing/computer-use model configuration",
      -            "properties": {
      -              "model": {
      -                "description": "Model identifier for the browsing provider",
      -                "enum": [
      -                  "gemini-2.5-pro",
      -                  "gemini-2.5-flash",
      -                  "gemini-3-pro-preview",
      -                  "claude-haiku-4-5",
      -                  "claude-sonnet-4-5",
      -                  "claude-opus-4-1"
      -                ],
      -                "type": "string"
      -              },
      -              "provider": {
      -                "description": "Provider backing the browsing/computer-use model",
      -                "enum": [
      -                  "google",
      -                  "anthropic"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "provider",
      -              "model"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "agent",
      -          "browsing"
      -        ],
      -        "type": "object"
      -      },
      -      "options": {
      -        "additionalProperties": {},
      -        "description": "Optional runtime options controlling how the agent executes",
      -        "properties": {
      -          "benchmarkExpectedOutcomes": {
      -            "description": "Expected outcomes used when running benchmark scenarios",
      -            "items": {
      -              "properties": {
      -                "criteria": {
      -                  "description": "Pass/fail criteria used to evaluate the outcome",
      -                  "type": "string"
      -                },
      -                "description": {
      -                  "description": "Human-readable description of the expected outcome",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "description",
      -                "criteria"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "browserProvider": {
      -            "description": "Browser infrastructure provider",
      -            "enum": [
      -              "browserbase",
      -              "browser-use"
      -            ],
      -            "type": "string"
      -          },
      -          "evaluationSchemaId": {
      -            "description": "ID of the evaluation schema to apply to runs of this agent",
      -            "type": "string"
      -          },
      -          "supervisedMode": {
      -            "description": "Run the agent under Duvo's permission classifier: every tool call is classified as allow/deny/ask, with 'ask' routed to human-in-the-loop approval. Mutually exclusive with browsing and computer-use connections.",
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "plugins": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "Plugins to load — either a built-in plugin name (e.g. \"code-review\") or a GitHub URL (e.g. \"https://github.com/owner/repo\")"
      -      },
      -      "skills": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "IDs of skills (team or system) that should be available to the agent"
      -      },
      -      "subAgents": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "format": "uuid",
      -              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": [],
      -        "description": "IDs of other agents (in the same team) to expose to this agent as Claude Code subagents. Each sub-agent runs with its own AOP and connections; the parent can delegate to them via the Agent tool."
      -      }
      -    },
      -    "required": [
      -      "models",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  "version": {
      -    "const": "v2",
      -    "description": "Schema version discriminator — must be \"v2\" for the current schema",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / config / required
      Removed value: -[
      -  "version",
      -  "data"
      -]
    • removedInput schema / properties / config / type
      Removed value: -"object"
  3. Changed2 schema fields changed
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "kimi-k3-duvo",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "glm-5.3-flash",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / x-extensible-enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "kimi-k3-duvo",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "glm-5.3-flash",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / config / properties / data / properties / files / description
      Previous value: -"IDs of team files that should be available to the agent"New value: +"Team files that should be available to the agent, each given as the relative file path returned in the `path` field of `GET /v2/teams/{teamId}/files` (for example `report.md` or `folder/doc.md`) — not the `id` field, which is a GCS object identifier."
  5. Changed2 schema fields changed
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
    • changedInput schema / properties / config / properties / data / properties / models / properties / agent / properties / model / x-extensible-enum
      Previous value: -[
      -  "claude-haiku-4-5-20251001",
      -  "claude-sonnet-5",
      -  "claude-sonnet-5[1m]",
      -  "claude-opus-5",
      -  "claude-opus-5[1m]",
      -  "kimi-k3",
      -  "glm-5.2",
      -  "deepseek-v4-flash",
      -  "minimax-m3",
      -  "qwen3.6-27b",
      -  "d1-max",
      -  "duvo-1-max",
      -  "duvo-1-max-sonnet-1m",
      -  "duvo-1-max-sonnet-4.5",
      -  "duvo-1-max-sonnet-4.5-1m",
      -  "duvo-1-max-opus",
      -  "duvo-1-max-opus-4.5",
      -  "gpt-4.1",
      -  "gpt-4o",
      -  "gpt-4o-mini",
      -  "gpt-5",
      -  "gpt-5.1",
      -  "claude-sonnet-4-20250514",
      -  "claude-sonnet-4-20250514[1m]",
      -  "claude-sonnet-4-5-20250929",
      -  "claude-sonnet-4-5-20250929[1m]",
      -  "claude-sonnet-4-6",
      -  "claude-sonnet-4-6[1m]",
      -  "claude-opus-4-1-20250805",
      -  "claude-opus-4-5-20251101",
      -  "claude-opus-4-6",
      -  "claude-opus-4-6[1m]",
      -  "claude-opus-4-7",
      -  "claude-opus-4-7[1m]",
      -  "claude-opus-4-8",
      -  "claude-opus-4-8[1m]"
      -]New value: +[
      +  "claude-haiku-4-5-20251001",
      +  "claude-sonnet-5",
      +  "claude-sonnet-5[1m]",
      +  "claude-opus-5",
      +  "claude-opus-5[1m]",
      +  "kimi-k3",
      +  "kimi-k3-duvo",
      +  "glm-5.2",
      +  "deepseek-v4-flash",
      +  "minimax-m3",
      +  "qwen3.6-27b",
      +  "d1-max",
      +  "duvo-1-max",
      +  "duvo-1-max-sonnet-1m",
      +  "duvo-1-max-sonnet-4.5",
      +  "duvo-1-max-sonnet-4.5-1m",
      +  "duvo-1-max-opus",
      +  "duvo-1-max-opus-4.5",
      +  "gpt-4.1",
      +  "gpt-4o",
      +  "gpt-4o-mini",
      +  "gpt-5",
      +  "gpt-5.1",
      +  "claude-sonnet-4-20250514",
      +  "claude-sonnet-4-20250514[1m]",
      +  "claude-sonnet-4-5-20250929",
      +  "claude-sonnet-4-5-20250929[1m]",
      +  "claude-sonnet-4-6",
      +  "claude-sonnet-4-6[1m]",
      +  "claude-opus-4-1-20250805",
      +  "claude-opus-4-5-20251101",
      +  "claude-opus-4-6",
      +  "claude-opus-4-6[1m]",
      +  "claude-opus-4-7",
      +  "claude-opus-4-7[1m]",
      +  "claude-opus-4-8",
      +  "claude-opus-4-8[1m]"
      +]
  6. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, indicating mutation, and the description's 'create' confirms this is a write operation without contradiction. The description adds little behavioral context beyond the annotation: it doesn't mention whether this creates a draft or activates a revision, which is a meaningful behavioral trait given the selected_automation_revision_id parameter suggests draft/active branching behavior. This is useful additional context that could help the agent understand side effects.

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

Conciseness4/5

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

A single sentence that is efficient and front-loads the core action ('Create') followed by the resource and target. It's appropriately concise for a tool whose heavy lifting is in its schema. While it doesn't add much value, what's there is clean and non-redundant.

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?

The description is short, but the schema is very rich — all 7 parameters have descriptions covering 100% of the parameter space, including nuanced semantics like the config version discriminator, handover mutual exclusivity, and draft-vs-active revision behavior. There's no output schema, but for a create operation the return value is predictable. The one gap is that the description doesn't explain what a 'revision' is in this system's model, which an agent selecting between createAgent, createRevision, and updateRevision might need.

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

Parameters3/5

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

Schema description coverage is 100% for all 7 parameters, so the baseline is 3. The description doesn't add anything beyond the schema for parameter semantics — for example, it doesn't explain the community between config's two variants (agent vs code step), which would be genuinely additive. The schema already documents each parameter in detail, so the description's silence on parameters is acceptable but not helpful.

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?

The description 'Create a new revision for an existing agent' states a specific verb (create), resource (revision), and target (existing agent). It distinguishes the action from createAgent (creating the agent itself) and from createSkillRevision (creating a skill revision), though it doesn't explicitly name those siblings. It's clear about what it does, but the distinction from updateRevision could be sharper since both operate on revisions.

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?

The description clearly implies this is the tool to use when a new revision of an existing agent is needed, rather than creating an agent or updating an existing revision. The 'existing agent' phrasing gives context that the agent must already exist. However, it doesn't explicitly state when NOT to use this tool or name alternatives like updateRevision or createAgent, leaving some inference required.

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.

TDQS

B3.1/5.0
Disambiguation2/5

Despite detailed descriptions, many tool names are highly ambiguous, with multiple tools covering the same conceptual actions (e.g., acceptClarityCaptureSuggestion vs. acceptClarityTeamAssignmentSuggestion, or the many deleteClarity*Interview tools). The set is so large that distinguishing between, say, listClarityFolders, listClarityProcesses, and listClarityProcessSummaries requires reading deep into descriptions, reducing agent selection accuracy.

Naming Consistency4/5

The naming convention is predominantly verb_noun (e.g., createClarityProcess, listAgents, deleteQueue), and is remarkably consistent across the 316 tools. There are only minor deviations, such as 'fileSuggestedClarityProcesses' (verb + adjective noun) and 'bulkUpdateCasePriority' (where 'bulk' could be seen as a prefix), but overall the pattern holds strongly.

Tool Count1/5

With 316 tools, this server is extremely oversized for any single agent to manage effectively. The massive number of tools suggests poor modularization—many of these tools likely belong in separate, smaller servers focused on specific domains (e.g., Clarity, Pulse, Agent management). The cognitive load for an agent to choose from 316 options is very high, leading to frequent misselection.

Completeness4/5

The tool surface covers an extraordinarily wide range of operations across the Duvo platform: agents, runs, cases, queues, Clarity processes, skills, integrations, notifications, teams, and more. Most resource types have full CRUD and lifecycle management. Notable minor gaps exist (e.g., no tools for managing specific notification batch severities dynamically, and some interview management is missing batch operations), but for the platform's scope, coverage is impressively thorough.

Resources