---
title: "Edit Channel Agent"
method: PUT
path: "/channels/agents/{agent_id}"
tags: ["Channels"]
---

# Edit Channel Agent

`PUT /channels/agents/{agent_id}`

## Path parameters

- `agent_id` string, uuid, required

## Request body

- ChannelAgentEditRequest
  - `agent` ChannelAgentEdit, required — Same contract as the connection edit: an omitted field keeps its stored value. A policy-only agent edit once reset `is_default` and muted the whole connection (F91).
    - `flags` ChannelAgentFlags
      - `is_active` boolean
      - `is_default` boolean
    - `tags` object, nullable
    - `meta` object, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `id` string, uuid, nullable
    - `data` ChannelAgentDataEdit — `ChannelAgentData` for an edit: both fields optional, and an omitted one keeps its stored value. `policy: null` clears the policy on purpose.
      - `references` object, nullable
      - `policy` ChannelPolicy — What one level STATED. Every field optional; None means no opinion.
        - `triggers` ChannelTriggerKind[], nullable
        - `session_scope` 'thread' | 'message'
        - `backfill` boolean, nullable
        - `forwardfill` boolean, nullable
      - `tools` ChannelAgentToolSettings — What the channel agent tools may do through this bot. Permissive by default: a bot saved before this block existed reads as these values.
        - `can_post_outside_conversation` boolean
        - `readable_space_keys` string[], nullable

## Response `200`

Successful Response

- ChannelAgentResponse
  - `count` integer
  - `agent` ChannelAgent
    - `flags` ChannelAgentFlags
      - `is_active` boolean
      - `is_default` boolean
    - `tags` object, nullable
    - `meta` object, nullable
    - `name` string, nullable
    - `description` string, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `deleted_at` string, date-time, nullable
    - `created_by_id` string, uuid, nullable
    - `updated_by_id` string, uuid, nullable
    - `deleted_by_id` string, uuid, nullable
    - `slug` string, nullable
    - `id` string, uuid, nullable
    - `connection_id` string, uuid, required
    - `data` ChannelAgentData, required
      - `references` object, required
      - `policy` ChannelPolicy — What one level STATED. Every field optional; None means no opinion.
        - `triggers` ChannelTriggerKind[], nullable
        - `session_scope` 'thread' | 'message'
        - `backfill` boolean, nullable
        - `forwardfill` boolean, nullable
      - `tools` ChannelAgentToolSettings — What the channel agent tools may do through this bot. Permissive by default: a bot saved before this block existed reads as these values.
        - `can_post_outside_conversation` boolean
        - `readable_space_keys` string[], nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-25** `ec21cdc5486c` — 2 info
  - added the new optional request property `agent/data/anyOf[subschema #1: ChannelAgentDataEdit]/tools`
  - added the optional property `agent/anyOf[subschema #1: ChannelAgent]/data/tools` to the response with the `200` status
- **2026-09-24** `a28f1d059149` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/agenta-ai/apis/agenta-api/changes/channels/agents/:agent_id/put.md)

---

[API](https://skmtc.dev/agenta-ai/apis/agenta-api.md) · [All operations](https://skmtc.dev/agenta-ai/apis/agenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agenta-ai/apis/agenta-api/revisions/72f2feba8ccb?raw)
