Open source generalist AI Agent with MCP tool integration, computer automation, data providers, and sandbox execution capabilities
Suna has 6 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-80 chars, mostly short), and input schemas are present with type definitions. However, descriptions are often too brief to guide LLM selection (e.g., 'Move cursor to specified position' lacks context on when to use it vs. click). Parameter descriptions are minimal or missing context. No output schemas documented. Error handling is absent, no guidance on retryability, user-fixable errors, or recovery paths. Tool composition shows some issues: move_to and click could be unified; expand_message is vague about when to use it. No evidence of idempotency guarantees, rate limiting, or permission gates. Naming is generally clear (verb_noun pattern), but some tools like execute_data_provider_call are overly generic.
Click at current or specified position
Execute a call to a specific data provider endpoint
Expand a message from the previous conversation with the user. Use this tool to expand a message that was truncated in the earlier conversation.
Get available endpoints for a specific data provider
Move cursor to specified position
Scroll the mouse wheel at current position
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Descriptions are too brief (10-80 chars) and lack context on WHEN to use each tool or WHAT it returns. 'Move cursor to specified position' does not explain when to call move_to vs. click, or whether it's a prerequisite for click.
No error handling or recovery guidance. Tools do not indicate which errors are retryable, user-fixable, or fatal. No actionable error messages documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
execute_data_provider_call accepts a generic 'payload' object with no schema constraints. LLMs cannot validate payloads or know what fields are required for each service.
Tool composition: move_to and click could be unified into a single 'click_at' tool. Separate tools force agents to reason about sequencing when a single call would suffice.