Patch an agent
curl --request PATCH \
--url https://agp.eu.hcompany.ai/api/v2/agents/{agent_name} \
--header 'Authorization: Bearer <token>'import requests
url = "https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}"
headers = {"Authorization": "Bearer <token>"}
response = requests.patch(url, headers=headers)
print(response.text)const options = {method: 'PATCH', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}', 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://agp.eu.hcompany.ai/api/v2/agents/{agent_name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}"
req, _ := http.NewRequest("PATCH", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyAgents
Patch an agent
Change individual fields of an agent without resending the full object.
PATCH
/
api
/
v2
/
agents
/
{agent_name}
Patch an agent
curl --request PATCH \
--url https://agp.eu.hcompany.ai/api/v2/agents/{agent_name} \
--header 'Authorization: Bearer <token>'import requests
url = "https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}"
headers = {"Authorization": "Bearer <token>"}
response = requests.patch(url, headers=headers)
print(response.text)const options = {method: 'PATCH', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}', 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://agp.eu.hcompany.ai/api/v2/agents/{agent_name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}"
req, _ := http.NewRequest("PATCH", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agp.eu.hcompany.ai/api/v2/agents/{agent_name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyPartial update, saved as a new revision: only the fields you send change. Send
null to clear an optional field. description and environments can’t be null. The merged result is validated like a full update.
Returns the updated agent object, with its new revision in the ETag header.
Headers
string
The
ETag of the revision you based this change on, for example "3". If the agent has moved past it, the write fails with 412. Omit it, or send *, to apply your fields to whatever is current.Path parameters
string
required
The agent’s
name (e.g. my-research-bot or myorg/web-helper). Slash-containing names are supported.Query parameters
string
A note stored on the new revision, such as why you made the change. Up to 500 characters. Shown by List revisions.
Request body
Any subset of these agent fields:description, environments, model, reasoning_effort, instructions, subagents, skills, answer_format, tools. name is not patchable (renames are not supported).
Examples
Change the instructions and nothing else:curl -X PATCH https://agp.eu.hcompany.ai/api/v2/agents/my-research-bot \
-H "Authorization: Bearer $HAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"instructions": "Always cite the page you took each claim from."}'
from hai_agents import Client
client = Client()
agent = client.agents.patch_agent(
agent_name="my-research-bot",
instructions="Always cite the page you took each claim from.",
)
print(agent.instructions)
import { HaiAgentsClient } from "hai-agents";
const client = new HaiAgentsClient();
const agent = await client.agents.patchAgent({
agentName: "my-research-bot",
instructions: "Always cite the page you took each claim from.",
});
console.log(agent.instructions);
Errors
| Status | Cause |
|---|---|
400 | If-Match is not a single revision tag. |
403 | The agent is reserved (h/) and read-only. |
404 | Agent not found (or a referenced skill, environment, or subagent isn’t), or you don’t have access. |
412 | If-Match names a revision that is no longer current. The ETag header has the current one: read it, reapply your change, and retry. |
422 | The merged spec fails validation, for example environments emptied on an agent with no subagents or tools, or null for description or environments. |
Was this page helpful?