github.com/anthropics/anthropic-sdk-go@v1.70.1/betaagent_test.go (about) 1 // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. 2 3 package anthropic_test 4 5 import ( 6 "context" 7 "errors" 8 "os" 9 "testing" 10 "time" 11 12 "github.com/anthropics/anthropic-sdk-go" 13 "github.com/anthropics/anthropic-sdk-go/internal/testutil" 14 "github.com/anthropics/anthropic-sdk-go/option" 15 ) 16 17 func TestBetaAgentNewWithOptionalParams(t *testing.T) { 18 baseURL := "http://localhost:4010" 19 if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { 20 baseURL = envURL 21 } 22 if !testutil.CheckTestServer(t, baseURL) { 23 return 24 } 25 client := anthropic.NewClient( 26 option.WithBaseURL(baseURL), 27 option.WithAPIKey("my-anthropic-api-key"), 28 ) 29 _, err := client.Beta.Agents.New(context.TODO(), anthropic.BetaAgentNewParams{ 30 Model: anthropic.BetaManagedAgentsModelConfigParams{ 31 ID: anthropic.BetaManagedAgentsModelClaudeOpus5, 32 Effort: anthropic.BetaManagedAgentsModelConfigParamsEffortUnion{ 33 OfBetaManagedAgentsModelConfigsEffortBetaManagedAgentsEffortLevel: anthropic.String("low"), 34 }, 35 InferenceGeo: anthropic.String("inference_geo"), 36 Speed: anthropic.BetaManagedAgentsModelConfigParamsSpeedStandard, 37 }, 38 Name: "My First Agent", 39 Description: anthropic.String("A general-purpose starter agent."), 40 MCPServers: []anthropic.BetaManagedAgentsURLMCPServerParams{{ 41 Name: "example-mcp", 42 Type: anthropic.BetaManagedAgentsURLMCPServerParamsTypeURL, 43 URL: "https://example-server.modelcontextprotocol.io/sse", 44 }}, 45 Metadata: map[string]string{ 46 "foo": "bar", 47 }, 48 Multiagent: anthropic.BetaManagedAgentsMultiagentParams{ 49 Agents: []anthropic.BetaManagedAgentsMultiagentRosterEntryParamsUnion{{ 50 OfString: anthropic.String("agent_011CZkYqphY8vELVzwCUpqiQ"), 51 }, { 52 OfBetaManagedAgentsMultiagentSelfs: &anthropic.BetaManagedAgentsMultiagentSelfParams{ 53 Type: anthropic.BetaManagedAgentsMultiagentSelfParamsTypeSelf, 54 }, 55 }}, 56 Type: anthropic.BetaManagedAgentsMultiagentParamsTypeCoordinator, 57 }, 58 Skills: []anthropic.BetaManagedAgentsSkillParamsUnion{{ 59 OfAnthropic: &anthropic.BetaManagedAgentsAnthropicSkillParams{ 60 SkillID: "xlsx", 61 Type: anthropic.BetaManagedAgentsAnthropicSkillParamsTypeAnthropic, 62 Version: anthropic.String("1"), 63 }, 64 }}, 65 System: anthropic.String("You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end."), 66 Tools: []anthropic.BetaAgentNewParamsToolUnion{{ 67 OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{ 68 Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401, 69 Configs: []anthropic.BetaManagedAgentsAgentToolConfigParamsUnion{{ 70 OfBash: &anthropic.BetaManagedAgentsBashToolConfigParams{ 71 Enabled: anthropic.Bool(true), 72 PermissionPolicy: anthropic.BetaManagedAgentsBashToolConfigParamsPermissionPolicyUnion{ 73 OfAlwaysAllow: &anthropic.BetaManagedAgentsAlwaysAllowPolicyParam{ 74 Type: anthropic.BetaManagedAgentsAlwaysAllowPolicyTypeAlwaysAllow, 75 }, 76 }, 77 Type: anthropic.BetaManagedAgentsBashToolConfigParamsTypeBash, 78 }, 79 }}, 80 DefaultConfig: anthropic.BetaManagedAgentsAgentToolsetDefaultConfigParams{ 81 Enabled: anthropic.Bool(true), 82 PermissionPolicy: anthropic.BetaManagedAgentsAgentToolsetDefaultConfigParamsPermissionPolicyUnion{ 83 OfAlwaysAllow: &anthropic.BetaManagedAgentsAlwaysAllowPolicyParam{ 84 Type: anthropic.BetaManagedAgentsAlwaysAllowPolicyTypeAlwaysAllow, 85 }, 86 }, 87 }, 88 }, 89 }}, 90 Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24}, 91 WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"), 92 }) 93 if err != nil { 94 var apierr *anthropic.Error 95 if errors.As(err, &apierr) { 96 t.Log(string(apierr.DumpRequest(true))) 97 } 98 t.Fatalf("err should be nil: %s", err.Error()) 99 } 100 } 101 102 func TestBetaAgentGetWithOptionalParams(t *testing.T) { 103 t.Skip("buildURL drops path-level query params (SDK-4349)") 104 baseURL := "http://localhost:4010" 105 if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { 106 baseURL = envURL 107 } 108 if !testutil.CheckTestServer(t, baseURL) { 109 return 110 } 111 client := anthropic.NewClient( 112 option.WithBaseURL(baseURL), 113 option.WithAPIKey("my-anthropic-api-key"), 114 ) 115 _, err := client.Beta.Agents.Get( 116 context.TODO(), 117 "agent_011CZkYpogX7uDKUyvBTophP", 118 anthropic.BetaAgentGetParams{ 119 Version: anthropic.Int(0), 120 Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24}, 121 WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"), 122 }, 123 ) 124 if err != nil { 125 var apierr *anthropic.Error 126 if errors.As(err, &apierr) { 127 t.Log(string(apierr.DumpRequest(true))) 128 } 129 t.Fatalf("err should be nil: %s", err.Error()) 130 } 131 } 132 133 func TestBetaAgentUpdateWithOptionalParams(t *testing.T) { 134 baseURL := "http://localhost:4010" 135 if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { 136 baseURL = envURL 137 } 138 if !testutil.CheckTestServer(t, baseURL) { 139 return 140 } 141 client := anthropic.NewClient( 142 option.WithBaseURL(baseURL), 143 option.WithAPIKey("my-anthropic-api-key"), 144 ) 145 _, err := client.Beta.Agents.Update( 146 context.TODO(), 147 "agent_011CZkYpogX7uDKUyvBTophP", 148 anthropic.BetaAgentUpdateParams{ 149 Description: anthropic.String("updated"), 150 MCPServers: []anthropic.BetaManagedAgentsURLMCPServerParams{{ 151 Name: "example-mcp", 152 Type: anthropic.BetaManagedAgentsURLMCPServerParamsTypeURL, 153 URL: "https://example-server.modelcontextprotocol.io/sse", 154 }}, 155 Metadata: map[string]string{ 156 "foo": "string", 157 }, 158 Model: anthropic.BetaManagedAgentsModelConfigParams{ 159 ID: anthropic.BetaManagedAgentsModelClaudeOpus5, 160 Effort: anthropic.BetaManagedAgentsModelConfigParamsEffortUnion{ 161 OfBetaManagedAgentsModelConfigsEffortBetaManagedAgentsEffortLevel: anthropic.String("low"), 162 }, 163 InferenceGeo: anthropic.String("inference_geo"), 164 Speed: anthropic.BetaManagedAgentsModelConfigParamsSpeedStandard, 165 }, 166 Multiagent: anthropic.BetaManagedAgentsMultiagentParams{ 167 Agents: []anthropic.BetaManagedAgentsMultiagentRosterEntryParamsUnion{{ 168 OfString: anthropic.String("agent_011CZkYqphY8vELVzwCUpqiQ"), 169 }, { 170 OfBetaManagedAgentsMultiagentSelfs: &anthropic.BetaManagedAgentsMultiagentSelfParams{ 171 Type: anthropic.BetaManagedAgentsMultiagentSelfParamsTypeSelf, 172 }, 173 }}, 174 Type: anthropic.BetaManagedAgentsMultiagentParamsTypeCoordinator, 175 }, 176 Name: anthropic.String("name"), 177 Skills: []anthropic.BetaManagedAgentsSkillParamsUnion{{ 178 OfAnthropic: &anthropic.BetaManagedAgentsAnthropicSkillParams{ 179 SkillID: "xlsx", 180 Type: anthropic.BetaManagedAgentsAnthropicSkillParamsTypeAnthropic, 181 Version: anthropic.String("1"), 182 }, 183 }}, 184 System: anthropic.String("You are a general-purpose agent that can research, write code, run commands, and use connected tools to complete the user's task end to end."), 185 Tools: []anthropic.BetaAgentUpdateParamsToolUnion{{ 186 OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{ 187 Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401, 188 Configs: []anthropic.BetaManagedAgentsAgentToolConfigParamsUnion{{ 189 OfBash: &anthropic.BetaManagedAgentsBashToolConfigParams{ 190 Enabled: anthropic.Bool(true), 191 PermissionPolicy: anthropic.BetaManagedAgentsBashToolConfigParamsPermissionPolicyUnion{ 192 OfAlwaysAllow: &anthropic.BetaManagedAgentsAlwaysAllowPolicyParam{ 193 Type: anthropic.BetaManagedAgentsAlwaysAllowPolicyTypeAlwaysAllow, 194 }, 195 }, 196 Type: anthropic.BetaManagedAgentsBashToolConfigParamsTypeBash, 197 }, 198 }}, 199 DefaultConfig: anthropic.BetaManagedAgentsAgentToolsetDefaultConfigParams{ 200 Enabled: anthropic.Bool(true), 201 PermissionPolicy: anthropic.BetaManagedAgentsAgentToolsetDefaultConfigParamsPermissionPolicyUnion{ 202 OfAlwaysAllow: &anthropic.BetaManagedAgentsAlwaysAllowPolicyParam{ 203 Type: anthropic.BetaManagedAgentsAlwaysAllowPolicyTypeAlwaysAllow, 204 }, 205 }, 206 }, 207 }, 208 }}, 209 Version: anthropic.Int(1), 210 Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24}, 211 WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"), 212 }, 213 ) 214 if err != nil { 215 var apierr *anthropic.Error 216 if errors.As(err, &apierr) { 217 t.Log(string(apierr.DumpRequest(true))) 218 } 219 t.Fatalf("err should be nil: %s", err.Error()) 220 } 221 } 222 223 func TestBetaAgentListWithOptionalParams(t *testing.T) { 224 t.Skip("buildURL drops path-level query params (SDK-4349)") 225 baseURL := "http://localhost:4010" 226 if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { 227 baseURL = envURL 228 } 229 if !testutil.CheckTestServer(t, baseURL) { 230 return 231 } 232 client := anthropic.NewClient( 233 option.WithBaseURL(baseURL), 234 option.WithAPIKey("my-anthropic-api-key"), 235 ) 236 _, err := client.Beta.Agents.List(context.TODO(), anthropic.BetaAgentListParams{ 237 CreatedAtGte: anthropic.Time(time.Now()), 238 CreatedAtLte: anthropic.Time(time.Now()), 239 IncludeArchived: anthropic.Bool(true), 240 Limit: anthropic.Int(0), 241 Page: anthropic.String("page"), 242 Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24}, 243 WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"), 244 }) 245 if err != nil { 246 var apierr *anthropic.Error 247 if errors.As(err, &apierr) { 248 t.Log(string(apierr.DumpRequest(true))) 249 } 250 t.Fatalf("err should be nil: %s", err.Error()) 251 } 252 } 253 254 func TestBetaAgentArchiveWithOptionalParams(t *testing.T) { 255 baseURL := "http://localhost:4010" 256 if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { 257 baseURL = envURL 258 } 259 if !testutil.CheckTestServer(t, baseURL) { 260 return 261 } 262 client := anthropic.NewClient( 263 option.WithBaseURL(baseURL), 264 option.WithAPIKey("my-anthropic-api-key"), 265 ) 266 _, err := client.Beta.Agents.Archive( 267 context.TODO(), 268 "agent_011CZkYpogX7uDKUyvBTophP", 269 anthropic.BetaAgentArchiveParams{ 270 Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMessageBatches2024_09_24}, 271 WorkspaceID: anthropic.String("wrkspc_011CZkZaBF1tNoB5wlCeusgy"), 272 }, 273 ) 274 if err != nil { 275 var apierr *anthropic.Error 276 if errors.As(err, &apierr) { 277 t.Log(string(apierr.DumpRequest(true))) 278 } 279 t.Fatalf("err should be nil: %s", err.Error()) 280 } 281 }