II.
AgentCoreImpl JSON
Structured · liveagent-core-impl:cursor.core@current
Cursor Core (current) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "agent-core-impl:cursor.core@current",
"_kind": "AgentCoreImpl",
"_file": "agent-stack/core-impls/cursor-core-current.yaml",
"_cluster": "agent-stack",
"attributes": {
"displayName": "Cursor Core (current)",
"agentVersionId": "agentVersion:cursor:ge-0-0-0",
"packageRef": "source-ref:cursor-binary",
"loopIteratorPolicy": "tool-use-loop",
"loopIteratorNotes": "Cursor's Composer/Agent runs a tool-use loop inside the IDE process; the loop is backed by the Cursor gateway which translates Anthropic / OpenAI / Gemini wire formats. Turn boundaries are signalled via the gateway's normalized stream-end event; the IDE renders streamed assistant text and tool-call diff previews incrementally. ",
"contextManagementStrategy": "platform-managed",
"compactionTriggerNotes": "Compaction is performed inside the Cursor gateway; no public threshold is exposed. ",
"subagentInvokerPolicy": "tool-call-handoff",
"subagentInvokerNotes": "Cursor does not expose a first-class subagent primitive; \"background agents\" spawn a separate Composer session via the IDE rather than nesting a sub-loop in the parent turn. ",
"resultSynthesisPolicy": "model-direct",
"resultSynthesisNotes": "Final assistant text is rendered into the Composer chat panel; the IDE applies accepted edits as workspace mutations on user accept. ",
"stopDetectionStrategy": "structured-end-event",
"transportClientLibrary": "cursor-internal",
"supportedTransportProtocols": [
"model-transport:anthropic-messages",
"model-transport:openai-responses",
"model-transport:gemini-generate-content"
],
"parallelToolCallHandling": "native",
"streamingFidelity": "full",
"thinkingChannelHandling": "not-supported"
},
"outgoingEdges": [
{
"from": "agent-core-impl:cursor.core@current",
"to": "layer:4-agent-core",
"kind": "realizes",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "agent:cursor",
"kind": "composes",
"attributes": {
"role": "core"
}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "model-transport:gemini-generate-content",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "model-transport:anthropic-messages",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "model-transport:openai-responses",
"kind": "speaks",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "capability:can-multi-turn",
"kind": "supports",
"attributes": {
"versionRange": "*",
"level": "full",
"notes": "Cursor maintains chat threads; the core loop carries a multi-turn transcript across user/assistant exchanges. "
}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "capability:parallel-tool-calls",
"kind": "supports",
"attributes": {
"versionRange": ">=0.40.0",
"level": "full",
"notes": "Cursor's agent loop natively dispatches tool calls in parallel. "
}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "capability:streaming",
"kind": "supports",
"attributes": {
"versionRange": "*",
"level": "partial",
"notes": "Cursor streams chat output incrementally in its IDE chat UI; some long-running tool flows surface incrementally rather than per-token. "
}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "capability:supports-tool-use",
"kind": "supports",
"attributes": {
"versionRange": "*",
"level": "full",
"notes": "Cursor agents invoke editor and shell tools (read, edit, run) through the core loop's tool dispatch. "
}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "hook-surface:cursor.pre-tool",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "hook-surface:cursor.post-tool",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "hook-surface:cursor.user-prompt-submit",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "hook-surface:cursor.stop",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "hook-surface:cursor.session-start",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "hook-surface:cursor.session-end",
"kind": "fires_hook",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "orch-primitive:context-injection",
"kind": "supports_orchestration_primitive",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "orch-primitive:human-review-gate",
"kind": "supports_orchestration_primitive",
"attributes": {}
},
{
"from": "agent-core-impl:cursor.core@current",
"to": "orch-primitive:workspace-snapshot",
"kind": "supports_orchestration_primitive",
"attributes": {}
}
],
"incomingEdges": [
{
"from": "agentVersion:cursor:ge-0-0-0",
"to": "agent-core-impl:cursor.core@current",
"kind": "composed_of",
"attributes": {
"role": "core"
}
},
{
"from": "model-transport:gemini-generate-content",
"to": "agent-core-impl:cursor.core@current",
"kind": "spoken_by",
"attributes": {}
}
]
}