DEPRECATED — use PUT /v1/alignment/agent/{agent_id}.
curl --request PUT \
--url https://api.mnemom.ai/v1/agents/{agent_id}/alignment-cardimport requests
url = "https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card"
response = requests.put(url)
print(response.text)const options = {method: 'PUT'};
fetch('https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card', 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.mnemom.ai/v1/agents/{agent_id}/alignment-card",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
]);
$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://api.mnemom.ai/v1/agents/{agent_id}/alignment-card"
req, _ := http.NewRequest("PUT", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
response = http.request(request)
puts response.read_body{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}Agents
Publish agent alignment card
deprecated
Permanently redirects (HTTP 308, RFC 7538) to /v1/alignment/agent/.
PUT
/
agents
/
{agent_id}
/
alignment-card
DEPRECATED — use PUT /v1/alignment/agent/{agent_id}.
curl --request PUT \
--url https://api.mnemom.ai/v1/agents/{agent_id}/alignment-cardimport requests
url = "https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card"
response = requests.put(url)
print(response.text)const options = {method: 'PUT'};
fetch('https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card', 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.mnemom.ai/v1/agents/{agent_id}/alignment-card",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
]);
$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://api.mnemom.ai/v1/agents/{agent_id}/alignment-card"
req, _ := http.NewRequest("PUT", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mnemom.ai/v1/agents/{agent_id}/alignment-card")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
response = http.request(request)
puts response.read_body{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}Publishes a new alignment card for an agent.
Authorization is by organization membership: any member (
The handler runs a two-phase reserve / finalize / release on the key. Replays of the same key with the same request body return the cached response. Replays with a different body return
The card body must include
Deprecated URL. This per-agent path
308-redirects to the canonical PUT /v1/alignment/agent/{agent_id} (sunset 2027-01-15, then 410 Gone). Publish to the canonical URL directly — see the Card Management guide and Unified cards overview.owner/admin/member) of the org that governs the agent may publish; the org is derived server-side; non-members get 403 agent_org_forbidden. (Enforced on the canonical endpoint the redirect lands on.)
Required headers
Idempotency-Key: <opaque 24h-unique string>
422 Idempotency-Key conflict.
Body shapes
Content-Type | Body |
|---|---|
text/yaml | Raw YAML card document |
application/yaml | Raw YAML card document |
application/json | Raw card object, or { "card_yaml": "<yaml string>" }, or { "card_json": {...} } |
values, autonomy, and commitments blocks at minimum. See the alignment card schema for full requirements.
Side effects
- Writes a
governance_audit_logrow before responding (synchronous; failure aborts). - Emits the
alignment_card.updatedwebhook event (see Webhooks guide). - Triggers recompose of any teams the agent belongs to.
Body size limit
128 KB. Two-layer check (Content-Length, then body length).See also
- Conscience values — published separately on the same agent.
- Unified cards overview — full card surface and composition semantics.
- Card management guide — end-to-end walkthrough including CLI, dashboard, and API methods.
Path Parameters
Agent identifier (e.g. smolt-abc123)
Response
Permanent Redirect (RFC 7538). This URL is deprecated; follow Location to the canonical /v1/<resource>/<scope>/<scope_id> shape. Method and body are preserved across the redirect — modern clients re-issue the same PUT / POST / DELETE against the target unchanged.