Multi-agent procurement system demonstrating secure delegation chains with Cedar-based permission attenuation across specialist agents (Coordinator, Pricing, Purchasing) on AWS AgentCore Runtime
Critical gaps across naming, descriptions, and schemas. Tool definitions are inferred from code rather than explicitly registered with MCP schemas. Nine tools listed but only 2 unique implementations visible (delegate_to_pricing, delegate_to_purchasing, create_po in coordinator; get_price_history in pricing). Duplicate tool names (get_quotes appears twice, check_inventory twice, get_history once) indicate inconsistent registration. Descriptions are present but generic (10-60 chars, below 194-char baseline). Input schemas visible in code but lack proper JSON Schema type declarations and parameter descriptions. No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint, destructiveHint). Coordinator agent uses Strands framework with @tool decorator, but actual MCP server registration code not visible, cannot verify tool definitions are properly exposed via MCP protocol.
Check available inventory for a SKU.
Check available inventory for a SKU
Create a purchase order for a SKU
Delegate pricing research to the pricing specialist agent.
Delegate PO creation to the purchasing specialist agent.
Get historical pricing data for a SKU
Get historical pricing data for a SKU.
Duplicate tool names (get_quotes, check_inventory, get_history) across files indicate inconsistent or conflicting registration. LLMs cannot disambiguate which variant to call.
Tool definitions inferred from code, not explicitly visible as MCP tool registration. Cannot verify schemas are properly exposed via MCP protocol or that tool definitions match MCP spec format.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., delegation_context, chain_depth returned by delegate_to_pricing).
Parameter descriptions missing or minimal. 'sku' described as 'Product SKU' (12 chars) vs baseline 72 chars. No format constraints, enums, or validation guidance for LLMs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
Get price quotes for a product SKU
Get price quotes for a SKU with quantity-based discounts.
No error handling guidance. delegate_to_purchasing returns {error: DENIED, reason: ...} but no recovery path. LLM cannot determine if error is retryable or fatal.