Tool tree
gradeNot graded
get_architectureAnswer
Read the current system-design graph: challenge, nodes (with ids), edges, call trees, and last simulation. Use these ids with other tools.
View tool JSON
{
"name": "get_architecture",
"kind": "answer",
"impl": "imperative",
"description": "Read the current system-design graph: challenge, nodes (with ids), edges, call trees, and last simulation. Use these ids with other tools.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_catalogAnswer
List block types you can add, their default capacity, and connection rules.
View tool JSON
{
"name": "get_catalog",
"kind": "answer",
"impl": "imperative",
"description": "List block types you can add, their default capacity, and connection rules.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_selected_nodeAnswer
Return the block the human currently has selected on the canvas, what that kind of block means, its connection rules, neighbors, and last-run stats for it. Call this when they ask about the selected node.
View tool JSON
{
"name": "get_selected_node",
"kind": "answer",
"impl": "imperative",
"description": "Return the block the human currently has selected on the canvas, what that kind of block means, its connection rules, neighbors, and last-run stats for it. Call this when they ask about the selected node.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_robustnessAnswer
Score how robust the last simulation is (0-100) and, if a previous run exists, whether the latest change made the system better or worse.
View tool JSON
{
"name": "get_robustness",
"kind": "answer",
"impl": "imperative",
"description": "Score how robust the last simulation is (0-100) and, if a previous run exists, whether the latest change made the system better or worse.",
"inputSchema": {
"type": "object",
"properties": {}
}
}get_simulationAnswer
Return the last simulation: utilization, p99, error rate, bottlenecks, SLO pass/fail, robustness, and delta vs the previous run.
View tool JSON
{
"name": "get_simulation",
"kind": "answer",
"impl": "imperative",
"description": "Return the last simulation: utilization, p99, error rate, bottlenecks, SLO pass/fail, robustness, and delta vs the previous run.",
"inputSchema": {
"type": "object",
"properties": {}
}
}list_challengesAnswer
List the four system-design use cases the user can play.
View tool JSON
{
"name": "list_challenges",
"kind": "answer",
"impl": "imperative",
"description": "List the four system-design use cases the user can play.",
"inputSchema": {
"type": "object",
"properties": {}
}
}load_challengeAction
Reset the canvas to a use case starter sketch. Ids: url-shortener, news-feed, realtime-chat, video-streaming.
View tool JSON
{
"name": "load_challenge",
"kind": "act",
"impl": "imperative",
"description": "Reset the canvas to a use case starter sketch. Ids: url-shortener, news-feed, realtime-chat, video-streaming.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"url-shortener",
"news-feed",
"realtime-chat",
"video-streaming"
]
}
},
"required": [
"id"
]
}
}add_nodeAction
Add a block to the canvas. Optional id (stable name), label, and nearId to place it beside an existing block.
View tool JSON
{
"name": "add_node",
"kind": "act",
"impl": "imperative",
"description": "Add a block to the canvas. Optional id (stable name), label, and nearId to place it beside an existing block.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"client",
"dns",
"waf",
"cdn",
"load_balancer",
"api_gateway",
"rate_limiter",
"auth",
"websocket_gateway",
"api",
"search",
"ranker",
"transcoder",
"cache",
"database",
"read_replica",
"object_store",
"queue",
"pubsub",
"worker",
"stream_processor",
"notification"
]
},
"id": {
"type": "string",
"description": "Optional stable id, e.g. cache-1"
},
"label": {
"type": "string"
},
"nearId": {
"type": "string",
"description": "Place to the right of this node"
},
"replicas": {
"type": "number"
}
},
"required": [
"kind"
]
}
}connectAction
Connect two blocks left-to-right. Incoming edges to a queue default to async (off the p99 path).
View tool JSON
{
"name": "connect",
"kind": "act",
"impl": "imperative",
"description": "Connect two blocks left-to-right. Incoming edges to a queue default to async (off the p99 path).",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
},
"protocol": {
"type": "string",
"enum": [
"sync",
"async"
]
}
},
"required": [
"from",
"to"
]
}
}disconnectAction
Remove the edge between two blocks.
View tool JSON
{
"name": "disconnect",
"kind": "act",
"impl": "imperative",
"description": "Remove the edge between two blocks.",
"inputSchema": {
"type": "object",
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
]
}
}set_node_propsAction
Change replicas, per-replica RPS capacity, cache hit rate, or lock a node.
View tool JSON
{
"name": "set_node_props",
"kind": "act",
"impl": "imperative",
"description": "Change replicas, per-replica RPS capacity, cache hit rate, or lock a node.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"replicas": {
"type": "number"
},
"rpsCapacity": {
"type": "number"
},
"hitRate": {
"type": "number"
},
"label": {
"type": "string"
},
"locked": {
"type": "boolean"
}
},
"required": [
"id"
]
}
}annotate_nodeAction
Pin a finding on a block so the human can see it on the graph.
View tool JSON
{
"name": "annotate_node",
"kind": "act",
"impl": "imperative",
"description": "Pin a finding on a block so the human can see it on the graph.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"info",
"warn",
"error"
]
},
"message": {
"type": "string"
}
},
"required": [
"id",
"message"
]
}
}run_simulationAction
Push traffic through the graph, animate packets, color bottlenecks, and evaluate the challenge SLO.
View tool JSON
{
"name": "run_simulation",
"kind": "act",
"impl": "imperative",
"description": "Push traffic through the graph, animate packets, color bottlenecks, and evaluate the challenge SLO.",
"inputSchema": {
"type": "object",
"properties": {
"ingressRps": {
"type": "number",
"description": "Override challenge RPS for a what-if."
}
}
}
}remove_nodeAction
Remove a block and its edges. Asks the human to confirm.
View tool JSON
{
"name": "remove_node",
"kind": "act",
"impl": "imperative",
"description": "Remove a block and its edges. Asks the human to confirm.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
}
}repair_graphAction
Drop dangling edges and remove broken blocks (unknown kinds or corrupt data) so the canvas can run again.
View tool JSON
{
"name": "repair_graph",
"kind": "act",
"impl": "imperative",
"description": "Drop dangling edges and remove broken blocks (unknown kinds or corrupt data) so the canvas can run again.",
"inputSchema": {
"type": "object",
"properties": {}
}
}apply_planAction
Apply a batch of ops in order: add_node, connect, disconnect, set_node_props, remove_node. Confirm once with the human. Prefer add_node with explicit ids so later ops can reference them.
View tool JSON
{
"name": "apply_plan",
"kind": "act",
"impl": "imperative",
"description": "Apply a batch of ops in order: add_node, connect, disconnect, set_node_props, remove_node. Confirm once with the human. Prefer add_node with explicit ids so later ops can reference them.",
"inputSchema": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"ops": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"ops"
]
}
}