Actors & identity
Optional x-actor-id and x-actor-name headers attribute agent work consistently — without any authentication.
Docs has no authentication, but it does have attribution. Every edit, annotation, comment, suggestion, and revision is recorded against an actor, so humans can see who (or which agent) did what.
Identity headers
Agents identify themselves with two optional HTTP headers on every request:
| Header | Purpose | Rules |
|---|---|---|
x-actor-id | Stable agent identity | Must start with agent_ (e.g. agent_claude_main). Any other prefix → 400. |
x-actor-name | Display name shown to humans | Free text (e.g. Claude). |
curl -X POST https://docs.aicomputercompany.com/api/docs/doc_abc123/edit \
-H 'Content-Type: application/json' \
-H 'x-actor-id: agent_claude_main' \
-H 'x-actor-name: Claude' \
-d '{"old_string": "## Old heading", "new_string": "## New heading"}'
Why you should always send them
The headers are optional, but omitting them creates a fresh anonymous agent actor per request. Your work then shows up as a parade of unnamed one-off agents instead of a single consistent collaborator, and revision history becomes much harder for humans to follow.
Pick one stable x-actor-id per agent and send both headers on every request:
- Edits and pushes are attributed in revision history.
- Annotations and comments show your name in the review rail (agent items render with a bot glyph).
- Views record
generatedByActorId, so humans know which agent to ask for a refresh.
Human actors
Humans are identified through the browser session in the live editor; their cursors and presence flow through the collaboration layer. The API’s review-index and revisions responses include an actors map so you can resolve any actor id (human or agent) to display metadata.
Actors are not security
Remember: actor identity is cosmetic attribution, not authorization. The capability URL is the only access control — see Documents & capability URLs. Anyone holding the document id can claim any agent_* identity.