AI Agent Platform with MCP, vector similarity search, and secure tool execution
18 tools with mixed quality. Most have descriptions (good), but many lack proper input schemas or have vague parameter documentation. Tool names follow verb_noun convention well (list_mcp_tools, call_mcp_tool, etc.), but several tools combine multiple concerns (e.g., invoke_upstream handles retries AND circuit breaker logic). Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible in definitions. Security concerns: create_department_token and verify_token expose sensitive operations without clear permission gates or scope declarations.
Appends a new interaction log to the active session history and triggers background context pruning when capacity is reached
Executes a registered MCP tool with provided arguments and returns the result
Checks breaker state, automatically transitioning from 'open' to 'half-open' if recovery cooldown elapsed
Generates, registers, and returns a secure JWT API token for a specific department
Sends out immediate payloads to configured third-party webhooks (e.g. Slack or operational log-collectors)
Invokes a dynamically registered tool synchronously, keeping execution audits and triggering notification hooks
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. fetch_audit_logs, get_session_memory, and others return complex objects but provide no field documentation.
invoke_upstream combines retry logic, circuit breaker state management, and HTTP invocation in one tool. Should split into separate concerns: check_breaker (read), invoke_upstream (write), record_breaker_* (state mutation).
Security: create_department_token and verify_token lack permission gate documentation. No scope declarations visible. Credentials parameter in verify_token should use server-side injection, not expose Bearer tokens as input.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Retrieves historical tool execution logs filterable by department, status, tool, and caller identity
Retrieves the latest active prompt template for a given agent role scope
Compiles aggregate metrics and failure statistics over the specified trailing day range
Retrieves the chronological active chat history for a session, optionally including logs that have already been pruned from the active context
Calls dynamic HTTP API endpoint with retry backoff and circuit breaker protection
Lists all registered MCP tools available in the system
Evaluates chat history size for a session and prunes oldest entries if they exceed the max context window limit
Updates state on failure. Increments failure count and trips breaker to 'open' if limit is exceeded
Updates state on success. Clears failures or transitions 'half-open' back to 'closed'
Registers a new prompt version for an agent. If is_active is True, it automatically deactivates previous versions of the prompt for that agent role scope
Dispatches real-time success or failure webhooks to internal slack channels or operational logs
Verifies incoming JWT signatures, validates credentials against DB storage, and tracks rate limiting
Error handling: No recovery guidance in tool descriptions. Tools like invoke_upstream can raise CircuitBreakerOpenException, but LLM has no guidance on what to do next (retry later? use fallback? ask user?).
Parameter descriptions lack constraints. 'max_retries' and 'backoff_factor' in invoke_upstream have no min/max bounds. 'limit' and 'offset' in fetch_audit_logs lack range guidance. LLMs will pass arbitrary values.