## Update Agent Config

`agent_configs.update(stragent_config_id, AgentConfigUpdateParams**kwargs)  -> AgentConfigUpdateResponse`

**patch** `/v5/agent_configs/{agent_config_id}`

Partially update a stored agent config; only fields present in the request body are changed.

`persistent_workspace` and `repos` are both patchable — an explicit null on
`repos` clears the override back to the deployment default, while the
always-present fields (name, system_prompt, harness, allowed_tools, model, and
persistent_workspace) reject an explicit null. Because `persistent_workspace`
and `repos` are read when a task is created and are fixed for a task's life,
changing them affects only tasks created afterward, not one already running. The
optional `task_id` query parameter opts into a live-config side effect: after
the row is persisted, the changed pass-through fields (system_prompt, model,
harness, and allowed_tools split into harness tools versus MCP servers) are
shallow-merged into that running task's params on Agentex in a background task so
the worker picks them up on its next turn; `persistent_workspace` and `repos`
are intentionally not forwarded to a running task. That side effect runs after
the response is sent, is best-effort, and no-ops if the task does not exist or the
caller does not own it. A user caller can only update a config they created unless
fine-grained access control grants access.

### Parameters

- `agent_config_id: str`

- `task_id: Optional[str]`

  If set, after persisting the patch we shallow-merge the changed fields into this task's params column on Agentex so the worker picks up the new values on its next turn. Caller-provided context — Agentex enforces task ownership via its own auth, so the side-effect no-ops if the caller doesn't own the task.

- `allowed_tools: Optional[List[Literal["Read", "Write", "Edit", 34 more]]]`

  - `"Read"`

  - `"Write"`

  - `"Edit"`

  - `"Bash"`

  - `"Glob"`

  - `"Grep"`

  - `"List"`

  - `"WebFetch"`

  - `"WebSearch"`

  - `"Task"`

  - `"TodoWrite"`

  - `"NotebookEdit"`

  - `"ExitPlanMode"`

  - `"Slack"`

  - `"Linear"`

  - `"GitHub"`

  - `"Confluence"`

  - `"Notion"`

  - `"Datadog"`

  - `"PagerDuty"`

  - `"Salesforce"`

  - `"Figma"`

  - `"Granola"`

  - `"Jira"`

  - `"Gmail"`

  - `"GoogleCalendar"`

  - `"GoogleDrive"`

  - `"GoogleDocs"`

  - `"GoogleSheets"`

  - `"GoogleSlides"`

  - `"Snowflake"`

  - `"Redash"`

  - `"Tableau"`

  - `"Metabase"`

  - `"Gong"`

  - `"ZoomInfo"`

  - `"Clay"`

- `description: Optional[str]`

- `harness: Optional[Literal["claude-code", "codex", "litellm"]]`

  Supported agent harness strategies.

  Mirrors `PROVIDERS` in golden-agent's `project/harness/activity.py`.

  - `"claude-code"`

  - `"codex"`

  - `"litellm"`

- `model: Optional[str]`

- `name: Optional[str]`

- `persistent_workspace: Optional[bool]`

- `repos: Optional[Iterable[RepoSpecParam]]`

  - `url: str`

  - `depth: Optional[int]`

  - `path: Optional[str]`

- `system_prompt: Optional[str]`

### Returns

- `class AgentConfigUpdateResponse: …`

  - `id: str`

  - `allowed_tools: List[str]`

  - `created_at: datetime`

  - `harness: str`

  - `model: str`

  - `name: str`

  - `system_prompt: str`

  - `updated_at: datetime`

  - `description: Optional[str]`

  - `object: Optional[Literal["agent_config"]]`

    - `"agent_config"`

  - `persistent_workspace: Optional[bool]`

  - `repos: Optional[List[RepoSpec]]`

    - `url: str`

    - `depth: Optional[int]`

    - `path: Optional[str]`

### Example

```python
import os
from scale_gp_beta import SGPClient

client = SGPClient(
    api_key=os.environ.get("SGP_API_KEY"),  # This is the default and can be omitted
)
agent_config = client.agent_configs.update(
    agent_config_id="agent_config_id",
)
print(agent_config.id)
```

#### Response

```json
{
  "id": "id",
  "allowed_tools": [
    "string"
  ],
  "created_at": "2019-12-27T18:11:19.117Z",
  "harness": "harness",
  "model": "model",
  "name": "name",
  "system_prompt": "system_prompt",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "object": "agent_config",
  "persistent_workspace": true,
  "repos": [
    {
      "url": "x",
      "depth": 1,
      "path": "path"
    }
  ]
}
```
