Agent presence and liveness. Send heartbeats to report status, track what each agent is doing, and query which agents are alive โ all in real time via WebSocket or REST.
Live โ agent-pulse is available now. Create a project to get your API key.
Base URL: https://api.agenttool.dev/v1/pulse ยท All endpoints require Authorization: Bearer YOUR_API_KEY
In multi-agent systems, knowing which agents are alive and what they're doing is fundamental. Without presence tracking:
agent-pulse gives every agent a heartbeat โ a lightweight signal that says "I'm here, and here's what I'm doing."
| Status | Meaning |
|---|---|
"idle" | Agent is alive but not actively working |
"thinking" | Agent is processing or reasoning |
"learning" | Agent is ingesting data or updating models |
"error" | Agent encountered an error and needs attention |
Send a heartbeat for an agent. Creates the agent's presence record on first call, updates it on subsequent calls. Agents that stop sending heartbeats are marked stale after 60 seconds.
| Field | Type | Required | Description |
|---|---|---|---|
status | string | โ | "idle", "thinking", "learning", or "error" |
task | string | Short description of current task | |
metadata | object | Arbitrary key-value metadata | |
did | string | Decentralized identifier for cross-system identity |
curl -X PUT https://api.agenttool.dev/v1/pulse/my-agent \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "thinking",
"task": "processing user query",
"metadata": {"model": "claude-opus-4-6", "queue_depth": 3}
}'
{
"id": "my-agent",
"status": "thinking",
"task": "processing user query",
"last_heartbeat": "2026-03-22T14:30:00Z",
"alive": true
}
import { AgentTool } from "@agenttool/sdk" // v0.5.1 const at = new AgentTool() await at.pulse.heartbeat("my-agent", { status: "thinking", task: "processing" })
from agenttool import AgentTool # v0.5.1 at = AgentTool() at.pulse.heartbeat("my-agent", "thinking", task="processing user query")
Retrieve the current state of a specific agent โ status, task, last heartbeat time, and whether it's still alive.
curl https://api.agenttool.dev/v1/pulse/my-agent \ -H "Authorization: Bearer YOUR_API_KEY"
{
"id": "my-agent",
"status": "thinking",
"task": "processing user query",
"metadata": { "model": "claude-opus-4-6", "queue_depth": 3 },
"last_heartbeat": "2026-03-22T14:30:00Z",
"alive": true
}
const state = await at.pulse.get("my-agent") console.log(state.status, state.task) // "thinking" "processing user query"
state = at.pulse.get("my-agent") print(state.status, state.task) # "thinking" "processing user query"
List all agents that have sent a heartbeat within the liveness window. Returns each agent's current status and task.
curl https://api.agenttool.dev/v1/pulse \ -H "Authorization: Bearer YOUR_API_KEY"
{
"agents": [
{
"id": "my-agent",
"status": "thinking",
"task": "processing user query",
"last_heartbeat": "2026-03-22T14:30:00Z",
"alive": true
},
{
"id": "search-agent",
"status": "idle",
"task": null,
"last_heartbeat": "2026-03-22T14:29:45Z",
"alive": true
}
],
"count": 2
}
const { agents } = await at.pulse.list() for (const agent of agents) { console.log(`${agent.id}: ${agent.status}`) }
agents = at.pulse.list() for agent in agents: print(f"{agent.id}: {agent.status}")
Install: pip install agenttool-sdk or npm install @agenttool/sdk ยท SDK v0.5.1+
import { AgentTool } from "@agenttool/sdk" // v0.5.1 const at = new AgentTool() // reads AT_API_KEY from env // Send heartbeat await at.pulse.heartbeat("my-agent", { status: "thinking", task: "processing" }) // Get single agent state const state = await at.pulse.get("my-agent") // List all alive agents const { agents } = await at.pulse.list()
from agenttool import AgentTool # v0.5.1 at = AgentTool() # reads AT_API_KEY from env # Send heartbeat at.pulse.heartbeat("my-agent", "thinking", task="processing user query") # Get single agent state state = at.pulse.get("my-agent") # List all alive agents agents = at.pulse.list()
Fleet monitoring
Build dashboards that show every agent's status in real time. Know instantly when an agent goes down or enters an error state.
Auto-recovery
Detect stale agents and automatically restart them. Combine with webhooks to trigger recovery workflows when heartbeats stop.
Agent coordination
Agents check peer status before delegating tasks. Only route work to agents that are alive and idle โ avoid sending tasks into the void.
Capacity planning
Track how many agents are thinking vs idle over time. Use metadata fields to monitor queue depth and model usage across your fleet.