Open-source ReAct Agent framework oriented towards existing business systems, domain knowledge, and permission boundaries. Multi-language support with tool orchestration, sub-agent management, and document parsing capabilities.
Cyrene Agent exposes 3 tools for sub-agent orchestration with complete JSON schemas and reasonable descriptions. However, descriptions are terse (avg 95 chars, below the 194-char baseline), parameter descriptions lack detail on constraints and formats, and error handling guidance is absent. Tool names follow verb_noun convention but lack clarity on when to use each (await vs get distinction is subtle). No output schema documentation visible. Schemas are present but sparse on validation rules.
Wait for sub-agent tasks to complete and get their results. All tasks share a single timeout deadline. Uncompleted tasks can auto-resume session.
Cancel sub-agent tasks. Only tasks in the current run can be cancelled. Returns lists of cancelled tasks and already completed tasks.
Get the status of sub-agent tasks without blocking. Returns task status, creation time, and results if completed.
Parameter descriptions lack constraint details. 'timeout_seconds' has no min/max bounds; 'task_ids' array has no size limits. LLMs cannot infer valid ranges and may pass absurd values (timeout=999999, 10000 task IDs).
No output schema documentation. Tools return results but the response structure (fields, types, nested objects) is not documented. LLMs cannot plan downstream calls or extract required data reliably.
Error handling lacks recovery guidance. No indication of which errors are retryable, what the LLM should do on timeout, or how to handle partial failures (e.g., some tasks cancelled, others already complete).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Tool descriptions are terse (55 - 65 chars). 'Get the status of sub-agent tasks without blocking' lacks context on WHEN to use get_subagents vs await_subagents, what fields are returned, or what 'status' means (pending, running, completed, failed?).
Ambiguous 'return_when' enum values. 'FIRST_SUCCESS' is unclear, does it return on the first task that succeeds, or the first task that completes (success or failure)? Undocumented semantics force LLM guessing.