curl -X PATCH 'https://api.gumloop.com/api/v1/agents/abc123DEFghiJKL/abilities' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"web_search": {"enabled": true, "provider": "exa"},
"ask_question": {"enabled": false}
}'from gumloop import Gumloop
client = Gumloop(access_token="YOUR_ACCESS_TOKEN")
response = client.agents.update_abilities(
"abc123DEFghiJKL",
web_search={"enabled": True, "provider": "exa"},
ask_question={"enabled": False},
)
print(response.abilities.web_search.enabled)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
web_search: {enabled: true, provider: '<string>'},
web_fetch: {enabled: true, provider: '<string>'},
image_generation: {enabled: true, model: '<string>'},
search_past_conversations: {enabled: true},
ask_question: {enabled: true},
tool_discovery: {},
manage_evaluations: {enabled: true},
browser: {enabled: true, proxy_country: 'us', profile_id: '<string>'},
version: 123
})
};
fetch('https://api.gumloop.com/api/v1/agents/{agent_id}/abilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gumloop.com/api/v1/agents/{agent_id}/abilities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'web_search' => [
'enabled' => true,
'provider' => '<string>'
],
'web_fetch' => [
'enabled' => true,
'provider' => '<string>'
],
'image_generation' => [
'enabled' => true,
'model' => '<string>'
],
'search_past_conversations' => [
'enabled' => true
],
'ask_question' => [
'enabled' => true
],
'tool_discovery' => [
],
'manage_evaluations' => [
'enabled' => true
],
'browser' => [
'enabled' => true,
'proxy_country' => 'us',
'profile_id' => '<string>'
],
'version' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gumloop.com/api/v1/agents/{agent_id}/abilities"
payload := strings.NewReader("{\n \"web_search\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"web_fetch\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"image_generation\": {\n \"enabled\": true,\n \"model\": \"<string>\"\n },\n \"search_past_conversations\": {\n \"enabled\": true\n },\n \"ask_question\": {\n \"enabled\": true\n },\n \"tool_discovery\": {},\n \"manage_evaluations\": {\n \"enabled\": true\n },\n \"browser\": {\n \"enabled\": true,\n \"proxy_country\": \"us\",\n \"profile_id\": \"<string>\"\n },\n \"version\": 123\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.gumloop.com/api/v1/agents/{agent_id}/abilities")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"web_search\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"web_fetch\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"image_generation\": {\n \"enabled\": true,\n \"model\": \"<string>\"\n },\n \"search_past_conversations\": {\n \"enabled\": true\n },\n \"ask_question\": {\n \"enabled\": true\n },\n \"tool_discovery\": {},\n \"manage_evaluations\": {\n \"enabled\": true\n },\n \"browser\": {\n \"enabled\": true,\n \"proxy_country\": \"us\",\n \"profile_id\": \"<string>\"\n },\n \"version\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gumloop.com/api/v1/agents/{agent_id}/abilities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"web_search\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"web_fetch\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"image_generation\": {\n \"enabled\": true,\n \"model\": \"<string>\"\n },\n \"search_past_conversations\": {\n \"enabled\": true\n },\n \"ask_question\": {\n \"enabled\": true\n },\n \"tool_discovery\": {},\n \"manage_evaluations\": {\n \"enabled\": true\n },\n \"browser\": {\n \"enabled\": true,\n \"proxy_country\": \"us\",\n \"profile_id\": \"<string>\"\n },\n \"version\": 123\n}"
response = http.request(request)
puts response.read_body{
"agent_id": "abc123DEFghiJKL",
"abilities": {
"web_search": {
"enabled": true,
"provider": "<string>"
},
"web_fetch": {
"enabled": true,
"provider": "<string>"
},
"image_generation": {
"enabled": true,
"model": "<string>"
},
"search_past_conversations": {
"enabled": true
},
"ask_question": {
"enabled": true
},
"tool_discovery": {
"mode": "auto"
},
"manage_evaluations": {
"enabled": true
},
"browser": {
"enabled": true,
"proxy_country": "us",
"profile_id": "<string>"
}
},
"version": 5
}Update agent abilities
Turn the agent’s native abilities on or off and set their options: Web Search, Web Fetch, Image Generation, Search Past Conversations, Ask Question, Tool Discovery, Manage Evaluations and Browser.
Send only the abilities you want to change. Enabling an ability that is already on keeps its saved settings unless you send new ones. Abilities your organization’s policy denies (for example Browser) answer 403.
curl -X PATCH 'https://api.gumloop.com/api/v1/agents/abc123DEFghiJKL/abilities' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"web_search": {"enabled": true, "provider": "exa"},
"ask_question": {"enabled": false}
}'from gumloop import Gumloop
client = Gumloop(access_token="YOUR_ACCESS_TOKEN")
response = client.agents.update_abilities(
"abc123DEFghiJKL",
web_search={"enabled": True, "provider": "exa"},
ask_question={"enabled": False},
)
print(response.abilities.web_search.enabled)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
web_search: {enabled: true, provider: '<string>'},
web_fetch: {enabled: true, provider: '<string>'},
image_generation: {enabled: true, model: '<string>'},
search_past_conversations: {enabled: true},
ask_question: {enabled: true},
tool_discovery: {},
manage_evaluations: {enabled: true},
browser: {enabled: true, proxy_country: 'us', profile_id: '<string>'},
version: 123
})
};
fetch('https://api.gumloop.com/api/v1/agents/{agent_id}/abilities', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gumloop.com/api/v1/agents/{agent_id}/abilities",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'web_search' => [
'enabled' => true,
'provider' => '<string>'
],
'web_fetch' => [
'enabled' => true,
'provider' => '<string>'
],
'image_generation' => [
'enabled' => true,
'model' => '<string>'
],
'search_past_conversations' => [
'enabled' => true
],
'ask_question' => [
'enabled' => true
],
'tool_discovery' => [
],
'manage_evaluations' => [
'enabled' => true
],
'browser' => [
'enabled' => true,
'proxy_country' => 'us',
'profile_id' => '<string>'
],
'version' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.gumloop.com/api/v1/agents/{agent_id}/abilities"
payload := strings.NewReader("{\n \"web_search\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"web_fetch\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"image_generation\": {\n \"enabled\": true,\n \"model\": \"<string>\"\n },\n \"search_past_conversations\": {\n \"enabled\": true\n },\n \"ask_question\": {\n \"enabled\": true\n },\n \"tool_discovery\": {},\n \"manage_evaluations\": {\n \"enabled\": true\n },\n \"browser\": {\n \"enabled\": true,\n \"proxy_country\": \"us\",\n \"profile_id\": \"<string>\"\n },\n \"version\": 123\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.gumloop.com/api/v1/agents/{agent_id}/abilities")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"web_search\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"web_fetch\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"image_generation\": {\n \"enabled\": true,\n \"model\": \"<string>\"\n },\n \"search_past_conversations\": {\n \"enabled\": true\n },\n \"ask_question\": {\n \"enabled\": true\n },\n \"tool_discovery\": {},\n \"manage_evaluations\": {\n \"enabled\": true\n },\n \"browser\": {\n \"enabled\": true,\n \"proxy_country\": \"us\",\n \"profile_id\": \"<string>\"\n },\n \"version\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gumloop.com/api/v1/agents/{agent_id}/abilities")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"web_search\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"web_fetch\": {\n \"enabled\": true,\n \"provider\": \"<string>\"\n },\n \"image_generation\": {\n \"enabled\": true,\n \"model\": \"<string>\"\n },\n \"search_past_conversations\": {\n \"enabled\": true\n },\n \"ask_question\": {\n \"enabled\": true\n },\n \"tool_discovery\": {},\n \"manage_evaluations\": {\n \"enabled\": true\n },\n \"browser\": {\n \"enabled\": true,\n \"proxy_country\": \"us\",\n \"profile_id\": \"<string>\"\n },\n \"version\": 123\n}"
response = http.request(request)
puts response.read_body{
"agent_id": "abc123DEFghiJKL",
"abilities": {
"web_search": {
"enabled": true,
"provider": "<string>"
},
"web_fetch": {
"enabled": true,
"provider": "<string>"
},
"image_generation": {
"enabled": true,
"model": "<string>"
},
"search_past_conversations": {
"enabled": true
},
"ask_question": {
"enabled": true
},
"tool_discovery": {
"mode": "auto"
},
"manage_evaluations": {
"enabled": true
},
"browser": {
"enabled": true,
"proxy_country": "us",
"profile_id": "<string>"
}
},
"version": 5
}Authorizations
Path Parameters
ID of a custom agent.
Body
Native abilities. On PATCH /agents/{agent_id}/abilities send only the ones you want to change; each is a small object so settings travel with the toggle.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether the agent may pause to ask the person a question.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Optional. The version you last read; the update is refused with 409 agent_version_conflict if the agent changed since.
Response
The agent's abilities after the change.
Was this page helpful?