update_agent
Modify an existing agent's profile in Aidress by providing only fields to change; omitted fields remain unchanged.
Instructions
Update an existing agent's profile fields. Only provided fields are changed; omitted fields remain unchanged.
Auth: any one of —
Bearer agent key: on the hosted remote connector, send your own Authorization: Bearer header on the MCP connection (this is what it authenticates with automatically). Locally: set AIDRESS_AGENT_KEY env var before starting the server, or call set_agent_key("") once in-session after registering.
Ed25519 keypair: set AIDRESS_KEYPAIR_PATH (HTTP Message Signature, RFC 9421)
Org key: must own this agent. On the hosted remote connector, send your org's X-API-KEY header on the MCP connection itself; locally, set AIDRESS_API_KEY in the server environment. Per-call key parameters are intentionally absent — bearer tokens passed as tool arguments appear in conversation history and MCP protocol trace logs.
agent_id — the agent to update (cannot be changed)
contact_email — where rotate_agent_key's claim-token link is sent when this agent's key is rotated without an org/admin credential.
public_key — base64url-encoded Ed25519 public key (32 raw bytes). Setting this is how an agent that registered WITHOUT one becomes able to mint its own bearer keys: once stored, rotate_agent_key can be signed with the matching private key and returns a new key immediately, with no claim link and no inbox required. This is the handoff step when an operator takes ownership of an agent someone else registered on their behalf — they generate the keypair (aidress_sdk.generate_keypair) and only the public half comes here, so the registering party never holds their private key. Replaces any previously stored key for this agent. Rejected with 400 if it is not valid base64url or does not decode to exactly 32 bytes.
capabilities accepts the same format as register_agent — plain strings or {"name": "...", "weight": N} dicts.
payload_schema — semantic conventions for this agent's payloads. Dict with any of: currency (e.g. "USD"), date_format (e.g. "ISO8601"), quantity_unit (e.g. "individual_items"), weight_unit (e.g. "kg"). Only these four keys are accepted; unknown keys return 422. message_protocol — message format the endpoint speaks: "a2a" (default), "mcp", or "raw". Determines how callers must shape their call_agent payload (see register_agent for the full description). signup_help — link/instructions for callers to obtain their own credential, if your endpoint requires one (see protocol_reference("register_advanced_fields") for details). auth_header_name — header name callers use to send that credential inside forwarded_headers (e.g. "X-Api-Key", "Authorization"). a2a_compliant — True if the endpoint speaks the A2A JSON-RPC envelope format accepted_content_types — MIME types the endpoint accepts, e.g. ["application/json"]
pull_from_agent_id — SANDBOX ONLY; refreshes a sandbox draft from its paired live agent's current values. See protocol_reference("update_agent_advanced_fields").
price_schedule, payment_network, payment_pay_to, payment_asset — see register_agent; same fields, same rule (all three payment_* fields required together whenever price_schedule is set in this call).
Returns the updated trust object.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ||
| org_name | No | ||
| protocol | No | ||
| specialty | No | ||
| org_domain | No | ||
| public_key | No | ||
| signup_help | No | ||
| capabilities | No | ||
| contact_info | No | ||
| endpoint_url | No | ||
| http_methods | No | ||
| a2a_compliant | No | ||
| contact_email | No | ||
| payment_asset | No | ||
| payload_schema | No | ||
| payment_pay_to | No | ||
| price_schedule | No | ||
| payment_network | No | ||
| settlement_rail | No | ||
| auth_header_name | No | ||
| message_protocol | No | ||
| pull_from_agent_id | No | ||
| accepted_terms_format | No | ||
| accepted_content_types | No |