AI agent framework with Azure OpenAI, supporting custom agents, skills, database tools, and MCP server integration
Mixed quality across 9 tools. Naming is generally clear and verb-based (database_schema, get_user_profile, create_skill). Descriptions are present but often generic, most lack actionable context about when to use the tool or what happens on error. Schemas are visible for all tools with proper type definitions, but parameter descriptions are minimal (1-2 words). Output schemas are not documented. Error handling is absent, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Database tools lack pagination/limit parameters despite being query-facing. Write tools (save_user_profile, create_skill, create_agent) have no confirmation or dry-run support despite modifying state.
Create a durable user-owned custom agent without overwriting an existing definition.
Create a durable user-owned skill without overwriting an existing definition.
Execute one bounded read query against the database configured for this agent.
Return bounded metadata from the database configured for this agent.
Replace an existing user-owned custom agent using its complete definition.
Replace an existing user-owned skill's description and instructions.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields. All 9 tools lack return type documentation.
Parameter descriptions are minimal (1-2 words). 'Optional schema name to query' and 'Optional object name to filter by' lack format, range, or constraint guidance. LLMs cannot validate inputs.
No error handling guidance. database_query and database_schema can fail (SQL errors, auth failures) but provide no recovery hints. Errors should guide LLM to retry, ask user, or call alternative tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Return the user's saved profile (name, preferences, notes) as JSON, or a message if none is stored yet.
Show a rich HTML view in a side pane next to the chat. Use this when the answer is easier to read as a view than as prose — a comparison table, a dashboard, a grouped list, a form. Keep answering in chat as well; the view supplements your reply, it does not replace it.
Save or update the user profile. Returns confirmation or a validation error.
Write tools lack confirmation/dry-run support. create_agent, edit_agent, create_skill, edit_skill, save_user_profile modify state irreversibly with no confirmation step. Agents can make destructive mistakes.
database_query lacks pagination/limit parameters. Unbounded queries can return thousands of rows, exhausting context window. No mention of result limits in description.