Skip to content

Create Agent Config

client.AgentConfigs.New(ctx, body) (*AgentConfigNewResponse, error)
POST/v5/agent_configs

Create a reusable agent configuration (system prompt, harness, model, allowed tools) under the caller’s account.

The config is a template that a chat session or a non-chat trigger later turns into task params; creating one does not start any task. persistent_workspace opts tasks made from this config into a durable /workspace that survives sandbox death (off by default, and fixed once a task starts), and repos overrides which repositories provisioning clones into that workspace — omit it (null) to use the deployment default, or pass an empty list to clone nothing. A repos override is rejected with a 422 on the model-agnostic (litellm) harness unless persistent_workspace is also true, because non-persistent litellm tasks run in a pre-cloned warm-pool sandbox where the override would be ignored. allowed_tools may name MCP servers (Slack, Linear, GitHub, …) alongside harness tools, and granting an MCP server name authorizes every tool it exposes.

ParametersExpand Collapse
body AgentConfigNewParams
Harness param.Field[AgentConfigNewParamsHarness]

Harness strategy. See Harness enum for supported values.

const AgentConfigNewParamsHarnessClaudeCode AgentConfigNewParamsHarness = "claude-code"
const AgentConfigNewParamsHarnessCodex AgentConfigNewParamsHarness = "codex"
const AgentConfigNewParamsHarnessLitellm AgentConfigNewParamsHarness = "litellm"
Model param.Field[string]
maxLength255
minLength1
Name param.Field[string]
maxLength255
minLength1
SystemPrompt param.Field[string]
maxLength100000
minLength1
AllowedTools param.Field[[]string]Optional

Tools enabled for this config. See AllowedTool enum for the catalogue.

const AgentConfigNewParamsAllowedToolRead AgentConfigNewParamsAllowedTool = "Read"
const AgentConfigNewParamsAllowedToolWrite AgentConfigNewParamsAllowedTool = "Write"
const AgentConfigNewParamsAllowedToolEdit AgentConfigNewParamsAllowedTool = "Edit"
const AgentConfigNewParamsAllowedToolBash AgentConfigNewParamsAllowedTool = "Bash"
const AgentConfigNewParamsAllowedToolGlob AgentConfigNewParamsAllowedTool = "Glob"
const AgentConfigNewParamsAllowedToolGrep AgentConfigNewParamsAllowedTool = "Grep"
const AgentConfigNewParamsAllowedToolList AgentConfigNewParamsAllowedTool = "List"
const AgentConfigNewParamsAllowedToolWebFetch AgentConfigNewParamsAllowedTool = "WebFetch"
const AgentConfigNewParamsAllowedToolWebSearch AgentConfigNewParamsAllowedTool = "WebSearch"
const AgentConfigNewParamsAllowedToolTask AgentConfigNewParamsAllowedTool = "Task"
const AgentConfigNewParamsAllowedToolTodoWrite AgentConfigNewParamsAllowedTool = "TodoWrite"
const AgentConfigNewParamsAllowedToolNotebookEdit AgentConfigNewParamsAllowedTool = "NotebookEdit"
const AgentConfigNewParamsAllowedToolExitPlanMode AgentConfigNewParamsAllowedTool = "ExitPlanMode"
const AgentConfigNewParamsAllowedToolSlack AgentConfigNewParamsAllowedTool = "Slack"
const AgentConfigNewParamsAllowedToolLinear AgentConfigNewParamsAllowedTool = "Linear"
const AgentConfigNewParamsAllowedToolGitHub AgentConfigNewParamsAllowedTool = "GitHub"
const AgentConfigNewParamsAllowedToolConfluence AgentConfigNewParamsAllowedTool = "Confluence"
const AgentConfigNewParamsAllowedToolNotion AgentConfigNewParamsAllowedTool = "Notion"
const AgentConfigNewParamsAllowedToolDatadog AgentConfigNewParamsAllowedTool = "Datadog"
const AgentConfigNewParamsAllowedToolPagerDuty AgentConfigNewParamsAllowedTool = "PagerDuty"
const AgentConfigNewParamsAllowedToolSalesforce AgentConfigNewParamsAllowedTool = "Salesforce"
const AgentConfigNewParamsAllowedToolFigma AgentConfigNewParamsAllowedTool = "Figma"
const AgentConfigNewParamsAllowedToolGranola AgentConfigNewParamsAllowedTool = "Granola"
const AgentConfigNewParamsAllowedToolJira AgentConfigNewParamsAllowedTool = "Jira"
const AgentConfigNewParamsAllowedToolGmail AgentConfigNewParamsAllowedTool = "Gmail"
const AgentConfigNewParamsAllowedToolGoogleCalendar AgentConfigNewParamsAllowedTool = "GoogleCalendar"
const AgentConfigNewParamsAllowedToolGoogleDrive AgentConfigNewParamsAllowedTool = "GoogleDrive"
const AgentConfigNewParamsAllowedToolGoogleDocs AgentConfigNewParamsAllowedTool = "GoogleDocs"
const AgentConfigNewParamsAllowedToolGoogleSheets AgentConfigNewParamsAllowedTool = "GoogleSheets"
const AgentConfigNewParamsAllowedToolGoogleSlides AgentConfigNewParamsAllowedTool = "GoogleSlides"
const AgentConfigNewParamsAllowedToolSnowflake AgentConfigNewParamsAllowedTool = "Snowflake"
const AgentConfigNewParamsAllowedToolRedash AgentConfigNewParamsAllowedTool = "Redash"
const AgentConfigNewParamsAllowedToolTableau AgentConfigNewParamsAllowedTool = "Tableau"
const AgentConfigNewParamsAllowedToolMetabase AgentConfigNewParamsAllowedTool = "Metabase"
const AgentConfigNewParamsAllowedToolGong AgentConfigNewParamsAllowedTool = "Gong"
const AgentConfigNewParamsAllowedToolZoomInfo AgentConfigNewParamsAllowedTool = "ZoomInfo"
const AgentConfigNewParamsAllowedToolClay AgentConfigNewParamsAllowedTool = "Clay"
Description param.Field[string]Optional
maxLength2000
PersistentWorkspace param.Field[bool]Optional

Give tasks a persistent /workspace that survives sandbox death. Fixed for a task’s life; defaults off.

Repos param.Field[[]RepoSpec]Optional

Per-config repo override. None uses the deployment default; an empty list clones nothing.

URL string
maxLength2048
minLength1
Depth int64Optional
minimum1
Path stringOptional
maxLength1024
ReturnsExpand Collapse
type AgentConfigNewResponse struct{…}
ID string
AllowedTools []string
CreatedAt Time
formatdate-time
Harness string
Model string
Name string
SystemPrompt string
UpdatedAt Time
formatdate-time
Description stringOptional
Object AgentConfigNewResponseObjectOptional
PersistentWorkspace boolOptional
Repos []RepoSpecOptional
URL string
maxLength2048
minLength1
Depth int64Optional
minimum1
Path stringOptional
maxLength1024

Create Agent Config

package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  agentConfig, err := client.AgentConfigs.New(context.TODO(), sgpdev.AgentConfigNewParams{
    Harness: sgpdev.AgentConfigNewParamsHarnessClaudeCode,
    Model: "x",
    Name: "x",
    SystemPrompt: "x",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", agentConfig.ID)
}
{
  "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"
    }
  ]
}
Returns Examples
{
  "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"
    }
  ]
}