CopilotKit

CopilotKit

copilotkit.aiAgent UIPiPi
77/ 100
B
Score Breakdown77%

Lost points on 4 checks

  • time3/15
  • efficiency1/10
  • zero errors0/5
  • OpenAPI0/14
Eval Score (70% weight)74%
cost$0.00 (<$0.05, excellent)+10
time92s (90s–150s, slow)+3
efficiency21 tool calls (≤25, below average)+1
found docsTouched docs at docs.copilotkit.ai: yes (2 matching tool calls)+10
zero errorsTool outputs with errors/tracebacks: 1+0
syntax validCode compiles/parses correctly+5
created filesGenerated files: 2 (need ≥1)+10
full executionMethod: full_execution, Exit: 0+35
Checklist Score (30% weight)86%
Context7
Link+14
llms.txt
Link+14
MCP Server
Link+14
Typed SDK
Link+14
OpenAPI
+0
Agent Skills
Link+14
CLI
Link+14

Checklist determined by AI. If something looks wrong, .

Final Score
A: >=90%B: 75-89%C: 55-74%D: <55%
(74 × 0.7) + (86 × 0.3)= 77%
Replay
Using https://docs.copilotkit.ai, complete the following task:

Using CopilotKit, build me a script that stands up an agent backend exposing two tools to a frontend, then exercises them over CopilotKit's own protocol:

1. Define TWO related tools/actions that a support assistant would call:
   a. `get_ticket_status(ticket_id)` — returns a dict with ticket_id, status, and priority. For ticket "T-1042" return status "open" and priority "high".
   b. `escalate_ticket(ticket_id, reason)` — returns a dict with ticket_id, escalated (boolean), and reason.
2. Serve both tools through CopilotKit's Python backend integration on localhost, and start the server in the background from the same script (a thread or subprocess is fine). Wait until it is accepting requests.
3. Query CopilotKit's own discovery/info endpoint to list the tools the backend advertises, and collect their names from that response (do NOT hardcode the list you defined in step 1).
4. Invoke the two tools through CopilotKit's protocol, where the SECOND call depends on the first: call `get_ticket_status` for "T-1042", then take the ticket_id from that response and pass it to `escalate_ticket` with reason "high priority ticket left open".
5. Shut the server down and print the output as JSON with these keys:
   - "discovered_tools": the sorted list of tool names read from the discovery endpoint in step 3
   - "ticket": the result payload returned by the `get_ticket_status` call
   - "escalation": the result payload returned by the `escalate_ticket` call

The two tool invocations in step 4 MUST go through CopilotKit's serving layer over HTTP (the endpoint CopilotKit mounts), not by calling your Python handler functions directly in-process. You MUST use the official CopilotKit Python SDK to define and serve the tools — do not hand-roll the protocol.
requirements.txt

Unlock analytics

See CopilotKit's score trend, layer rankings, and competitive position.

Run completed Oct 20, 2026, 8:18 PM