---
title: "[Beta] Update the issues agent config for a session"
method: PATCH
path: "/api/v1/platform/sessions/{session_id}/issues-agent"
tags: ["issues-agent"]
---

# \[Beta\] Update the issues agent config for a session

`PATCH /api/v1/platform/sessions/{session_id}/issues-agent`

## Request

- Base URL: `https://api.smith.langchain.com`
- URL: `https://api.smith.langchain.com/api/v1/platform/sessions/{session_id}/issues-agent`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in header `X-Tenant-Id`
  - HTTP bearer

**Beta:** This endpoint is in active development and may change without notice.

Patches the agent config. All side effects (clearing fix fields when
the GitHub repo changes, setting agent_overview_repo_id) happen in a
single CRUD transaction. Omitted fields are left unchanged.

## Path parameters

- `session_id` string, required

## Request body

- AgentUpdateIssuesAgentRequest
  - `agent_overview_accepted` boolean
  - `analysis_level` 'standard' | 'reduced' | 'expanded': AnalysisLevel: "standard", "reduced", or "expanded". Switching to or from "reduced" also resets the scan cadence. nil = don't change.
  - `auto_open_fix_pr` boolean
  - `context_hub_repo_handle` string
  - `cron_enabled` boolean
  - `github_base_branch` string: Legacy: ignored without github_repo_url.
  - `github_repo_subdir` string: Legacy: ignored without github_repo_url.
  - `github_repo_url` string: Legacy: use the github-repos endpoints. Absent leaves repos alone, "" unlinks all, otherwise replaces the list with the one repo named.
  - `linear_integration` AgentLinearIntegrationPatch
    - `enabled` boolean
    - `project_id` string
    - `project_name` string
    - `team_id` string
    - `team_key` string
    - `team_name` string
    - `workspace_id` string
    - `workspace_name` string
  - `preview_verify_enabled` boolean
  - `preview_verify_no_trigger` boolean
  - `priorities` string[]
  - `run_filter` string: Trace-scope DSL. nil = don't change; "" clears it.
  - `session_agent_overview_repo_id` string
  - `session_lcu_spend_limit_monthly` string: SessionLCUSpendLimitMonthly sets the per-project monthly LCU spend limit. Tri-state: absent (nil) = don't change; 0 or positive = monthly cap (a cap of 0 is always reached, blocking new runs); negative clears it (stored as NULL = no limit). The frontend sends a negative number to clear rather than null, since null is indistinguishable from "absent". Serialized as a string to preserve NUMERIC precision.
  - `target_auth` AgentTargetAuthInput
    - `headers` object
  - `user_instructions` string: Freeform user preferences. Send "" to clear (the frontend must not send null).
  - `validation_deployment_id` string: ValidationDeploymentID is a deployment UUID or LangSmith deployment URL, or an empty string to disable validation.

## Response `200`

OK

- AgentIssuesAgent
  - `agent_overview_accepted` boolean
  - `analysis_level` 'standard' | 'reduced' | 'expanded': AnalysisLevel controls coverage vs cost: "standard" (default), "reduced" (one scan a day, fewer traces per scan), or "expanded" (2x traces per run). Stored NULL in the DB means standard; reads always return a concrete value.
  - `auto_open_fix_pr` boolean: When true, every fix run on this board opens a pull request instead of parking the fix for someone to publish. Defaults to false.
  - `context_hub_repo_handle` string
  - `created_at` string
  - `cron_enabled` boolean
  - `cron_schedule` string
  - `engine_version` string
  - `github_base_branch` string: Legacy: aliases the oldest GitHub entry in GithubRepos.
  - `github_repo_subdir` string: Legacy: aliases the oldest GitHub entry in GithubRepos.
  - `github_repo_url` string: Legacy: aliases the oldest GitHub entry in GithubRepos.
  - `github_repos` AgentGithubRepo[]
    - `base_branch` string
    - `created_at` string, date-time
    - `id` string
    - `provider` 'github' | 'gitlab'
    - `repo_url` string
    - `subdir` string
    - `updated_at` string, date-time
  - `id` string
  - `issue_count` integer
  - `latest_run_id` string
  - `latest_thread_id` string: IDs of the latest run on LangSmith Deployments; NULL until first trigger.
  - `linear_available` boolean
  - `linear_integration` AgentLinearIntegration
    - `enabled` boolean
    - `project_id` string
    - `project_name` string
    - `team_id` string
    - `team_key` string
    - `team_name` string
    - `workspace_id` string
    - `workspace_name` string
  - `linear_sync_health` AgentLinearSyncHealth
    - `auth_required` integer
    - `failed` integer
    - `paused` integer
    - `pending` integer
    - `synced` integer
  - `preview_verify_enabled` boolean: PreviewVerifyEnabled lets this board's fix runs use preview deployments when issue validation is enabled for its tracing project.
  - `preview_verify_no_trigger` boolean: PreviewVerifyNoTrigger tells fix verification not to request a preview. The deployment builds one itself for the fix commit.
  - `priorities` string[]
  - `run_filter` string: RunFilter is a runs-filter-DSL string scoping which traces Engine analyzes (prompt guidance, not an enforced query). NULL = no scope. Clamped by validateRunFilter.
  - `selected_trace_count` integer: Compatibility alias for selected_trace_count_last_14_days. Deprecated: use selected_trace_count_last_14_days.
  - `selected_trace_count_last_14_days` integer: The number of traces Engine inspected in the last 14 days.
  - `selected_trace_count_last_7_days` integer: The number of traces Engine inspected in the last 7 days.
  - `session_agent_overview_repo_id` string
  - `session_id` string
  - `session_lcu_spend_limit_monthly` string: SessionLCUSpendLimitMonthly is the per-project monthly Engine LCU spend limit: NULL/negative = no limit; 0 or positive = monthly cap (spend is never negative, so a cap of 0 always reads as reached). Enforced in addition to (and independently of) the org-level limit. Serialized as a string to preserve NUMERIC(28,6) precision.
  - `session_name` string: JOINed from tracer_session
  - `target_auth` AgentTargetAuthStatus
    - `has_unreadable_credentials` boolean: True when a credential is stored but cannot be read back, so the UI can offer to replace it instead of showing an unconfigured board.
    - `header_names` string[]
  - `tenant_id` string
  - `tenant_name` string: JOINed from tenants (workspace label); resolved server-side so the org-admin list can label rows across workspaces the caller isn't a member of
  - `updated_at` string
  - `user_instructions` string: User-owned freeform preferences. Engine reads this as authoritative context and reconciles it into the Agent Overview on the next scan, but never edits it. NULL when the user hasn't set any.
  - `validation_deployment_id` string: ValidationDeploymentID selects the deployment used for baseline replay and as the parent of fix-verification previews.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-23** `e9b5f2bcae6f`: 1 info
  - added the optional property `github_repos/items/provider` to the response with the `200` status
- **2026-10-22** `3c96302af436`: 2 info
  - added the new optional request property `preview_verify_no_trigger`
  - added the optional property `preview_verify_no_trigger` to the response with the `200` status
- **2026-10-16** `1a8ee9358d81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/langchain-ai/apis/langsmith/changes/api/v1/platform/sessions/:session_id/issues-agent/patch.md)

---

[API](https://skmtc.dev/langchain-ai/apis/langsmith.md) - [All operations](https://skmtc.dev/langchain-ai/apis/langsmith/llms.txt) - [OpenAPI document](https://skmtc.dev/langchain-ai/apis/langsmith/revisions/7a01c01f75e8?raw)
