agentid-protocol
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 12 GitHub stars
Code Warn
- network request — Outbound network request in examples/ingest.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Open protocol for portable AI agent identity, persistent memory, and real-time activity reporting — MCP + HTTP
AgentID Protocol
Give your AI agent a persistent identity. Connect it anywhere.
Website · Dashboard · Pricing · Integrations
What is AgentID?
AgentID is an open protocol that gives every AI agent a portable identity — a handle, a persona, persistent memory, and a live activity log — that travels with it across tools and sessions.
Connect your agent from Claude Code, Cursor, Windsurf, OpenAI Agents SDK, or any HTTP-capable runtime. Your agent's memory and personality sync instantly, everywhere.
Your Agent ──MCP──► AgentID ──► Identity + Memory + Activity Log
──HTTP──► ──► Studio Dashboard (real-time)
Features
- 🪪 Portable Identity — One
@handleper agent. One persona that works in every tool. - 🧠 Persistent Memory — Key/value facts that survive across sessions, tools, and runtimes.
- 📡 Activity Log — Every task, tool call, and step streamed live to your Studio dashboard.
- 🔌 MCP Server — Native integration for Claude Code, Cursor, Windsurf, and any MCP host.
- 🌐 HTTP Ingest — No-auth event reporting from any language or framework.
- 🗂️ Drive — Files, connectors, API keys, custom skills, and memory — all in one place your agent can reach.
- ⚡ Hosted Agents — Run a fully hosted agent on AgentID with no external API keys needed. Free tier included.
- 📤 Prompt Export — Export your agent's identity as a system prompt for any LLM (Claude, OpenAI, generic).
Quickstart — Claude Code (60 seconds)
1. Create your agent at agentid.live/app/agents — get your handle and MCP secret.
2. Add to ~/.claude/mcp.json:
{
"mcpServers": {
"agentid": {
"type": "sse",
"url": "https://agentid.live/api/mcp/YOUR_HANDLE",
"headers": { "Authorization": "Bearer YOUR_MCP_SECRET" }
}
}
}
3. Restart Claude Code. Your agent now has memory, identity, and a live activity log.
Works the same way in Cursor, Windsurf, and any other MCP-compatible host.
Quickstart — HTTP (any language)
No auth. No SDK. Just POST.
curl -X POST https://agentid.live/api/studio/ingest \
-H "Content-Type: application/json" \
-d '{
"agent_handle": "myagent",
"type": "task.completed",
"title": "Summarised weekly report",
"state": "done",
"detail": "Processed 47 items, 3-paragraph summary",
"tokens_used": 1840
}'
{ "ok": true, "event_id": "evt_abc123", "run_id": "run_xyz" }
See examples/ for TypeScript and Python implementations.
Integration Paths
| Method | Best for |
|---|---|
| MCP Server | Claude Code, Cursor, Windsurf, any MCP-compatible host |
| HTTP Ingest | Any language, LangChain, OpenAI Agents SDK, custom runtimes |
| Prompt Export | Paste-based integration with any LLM, no code changes |
MCP Server
Endpoint: https://agentid.live/api/mcp/{handle}
Transport: SSE · Auth: Authorization: Bearer <mcp_secret>
Tools
report_activity
Report a task event to the Studio activity log.
report_activity({
type: "task.started" | "task.progress" | "task.completed" | "task.failed",
title: string, // e.g. "Refactoring auth module"
state: "thinking" | "working" | "idle" | "done" | "error",
detail?: string, // what specifically happened
tokens_used?: number,
platform?: string, // "claude-code" | "cursor" | "api" | ...
tool_name?: string,
tool_input?: string, // ≤200 chars
tool_output?: string, // ≤200 chars
progress?: number, // 0–100
model?: string,
duration_ms?: number,
})
write_memory
Persist a fact to the agent's shared memory.
write_memory({ key: "user_timezone", value: "Europe/Berlin" })
read_memory
Read all memory entries for this identity.
read_memory()
// Returns: "key: value\nkey2: value2\n..."
search_memory
Semantic search over the agent's memory.
search_memory({ query: "what does the user prefer?" })
Resources
agentid://identity/{handle} — full persona: name, role, values, style, memory
agentid://skill/{handle} — operational protocol and usage examples
agentid://memory/{handle} — live memory entries
HTTP Ingest API
Endpoint: POST https://agentid.live/api/studio/ingest · No auth required.
{
agent_handle: string, // required
type: string, // required — see event types below
title: string, // required — short headline
run_id?: string, // group events; auto-generated if omitted
state?: "thinking" | "working" | "idle" | "done" | "error",
detail?: string,
platform?: string,
action?: string, // e.g. "search.web", "file.write"
target?: string, // e.g. "https://...", "file.txt"
tool_name?: string,
tool_input?: string, // ≤200 chars
tool_output?: string, // ≤200 chars
progress?: number, // 0–100
tokens_used?: number,
model?: string,
duration_ms?: number,
metadata?: Record<string, unknown>,
}
Event Types
| Type | When to use |
|---|---|
task.started |
Beginning a new task |
task.progress |
Meaningful step completed |
task.completed |
Task finished successfully |
task.failed |
Task failed with an error |
memory.update |
Persisting a fact (metadata.key + metadata.value) |
Agent Session Protocol
The recommended pattern for MCP-connected agents:
SESSION START
1. report_activity(type="task.started", title="Session started", detail="<user request>")
2. read agentid://identity/{handle} → load persona + memory
DURING EACH TASK
• report_activity("task.started") before starting
• report_activity("task.progress") at each meaningful step
• report_activity("task.completed") or "task.failed" — always close the loop
MEMORY
• read_memory() at session start — load context
• write_memory() when you learn a persistent fact — one key per fact
Identity Format
interface CanonicalPersona {
name: string,
tagline?: string,
role?: string,
mission?: string,
values?: string[],
communication_style?: {
tone?: string,
format?: string,
length?: string,
},
expertise?: string[],
behaviors?: { always?: string[], never?: string[] },
goals?: string[],
context?: string,
}
Prompt Export
Export your agent's identity as a system prompt for paste-based integration.
GET https://agentid.live/api/agents/{handle}/export?format=generic-prompt
Authorization: Bearer <mcp_secret>
Available formats: generic-prompt · claude · openai · molebook
Authentication
| Credential | Where |
|---|---|
mcp_secret |
MCP Bearer token; export API; /api/sdk/ endpoints |
| None | /api/studio/ingest — public, handle is the identifier |
Get credentials from your agent dashboard.
Drive
Drive is your agent's persistent storage and toolbox — accessible from any runtime.
| Tab | What it stores |
|---|---|
| Files | Documents, PDFs, data files your agent can read and reference |
| Connectors | Slack, Notion, GitHub, and 3,000+ integrations |
| API Keys | Credentials your agent can use in tasks |
| Skills | Custom callable functions and community skills |
| Memory | Browsable, editable key/value memory |
Manage at agentid.live/app/drive.
Hosted Agents
Run a fully hosted agent on AgentID — no external LLM subscription, no API keys.
| Plan | Tokens | Agents |
|---|---|---|
| Free | 100K / month | 1 hosted agent |
| Pro | 1M / month | Unlimited |
Create one at agentid.live/app/agents/new.
Examples
examples/ingest.ts— TypeScript HTTP ingestexamples/ingest.py— Python HTTP ingest
Roadmap
-
@agentid/sdk— TypeScript/JavaScript client -
npx @agentid/cli setup— auto-configure Claude Code, Cursor, Codex - Webhook triggers — agent-to-agent event routing
- Agent-to-agent memory sharing
License
Protocol specification: MIT
Built by the AgentID team · Star ⭐ if you find it useful
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found