● healthy
Agent-to-agent bookstore for the top 10 Circana BookScan print bestsellers of the first half of 2026 (Publishers Weekly, period ended July 4, 2026). Send a DataPart with an action for a deterministic result that does not call a model, or send English text and the LangGraph agent (gpt-4o-mini) calls the same tools. Payments use a built-in sandbox: test card 4242424242424242 succeeds and 4000000000000002 declines. The full card number is never stored. Set STRIPE_SECRET_KEY to use Stripe test mode instead. The same tools are MCP streamable HTTP at https://agent.agiq.top/mcp.
Transport
JSONRPC
Protocol
0.3.0
Price
—
Skills
-
List booksReturn the 10-title catalog, simulated stock, and the selling price (the verified list price). Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "list_books"}}} Output JSON schema: {"type": "object", "required": ["books"], "properties": {"books": {"type": "array", "items": {"$ref": "#/book"}}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstorelist_books
-
Get bookReturn one catalog record by ISBN-13 or by rank. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "get_book"}, "isbn13": {"type": "string"}, "rank": {"type": "integer"}}} Output JSON schema: {"type": "object", "required": ["book"], "properties": {"book": {"$ref": "#/book"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoreget_book
-
Search booksCase-insensitive match on title or author. Input JSON schema: {"type": "object", "required": ["action", "query"], "properties": {"action": {"const": "search_books"}, "query": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["books"], "properties": {"books": {"type": "array"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoresearch_books
-
Register customerCreate a customer. Email must contain a name, a domain, and a dot. tax_id is optional and is not checked against a registry. Input JSON schema: {"type": "object", "required": ["action", "name", "email", "billing"], "properties": {"action": {"const": "register_customer"}, "name": {"type": "string"}, "email": {"type": "string"}, "tax_id": {"type": ["string", "null"]}, "billing": {"type": "object", "required": ["line1", "city", "postal_code", "country"], "properties": {"line1": {"type": "string"}, "line2": {"type": ["string", "null"]}, "city": {"type": "string"}, "region": {"type": ["string", "null"]}, "postal_code": {"type": "string"}, "country": {"type": "string"}}}}} Output JSON schema: {"type": "object", "required": ["customer"], "properties": {"customer": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoreregister_customer
-
Get customerLook up a customer by customer_id or email. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "get_customer"}, "customer_id": {"type": "string"}, "email": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["customer"], "properties": {"customer": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoreget_customer
-
Create cartOpen a cart for a customer. The A2A contextId is stored when the caller omits context_id. Input JSON schema: {"type": "object", "required": ["action", "customer_id"], "properties": {"action": {"const": "create_cart"}, "customer_id": {"type": "string"}, "context_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["cart"], "properties": {"cart": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstorecreate_cart
-
Add to cartAdd a priced title. A title with a null list price is not for sale. cart_id may be omitted when the A2A contextId already has an open cart. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "add_to_cart"}, "cart_id": {"type": "string"}, "context_id": {"type": "string"}, "isbn13": {"type": "string"}, "rank": {"type": "integer"}, "quantity": {"type": "integer"}}} Output JSON schema: {"type": "object", "required": ["cart"], "properties": {"cart": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoreadd_to_cart
-
View cartReturn the open cart and line totals. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "view_cart"}, "cart_id": {"type": "string"}, "context_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["cart"], "properties": {"cart": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoreview_cart
-
CheckoutTurn the cart into an order awaiting sandbox payment. Tax is a simulated 8 percent of the merchandise subtotal. Shipping is a flat 5.00 USD. Neither figure comes from the bestseller list. Simulated stock is reserved. Input JSON schema: {"type": "object", "required": ["action"], "properties": {"action": {"const": "checkout"}, "cart_id": {"type": "string"}, "context_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["order"], "properties": {"order": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstorecheckout
-
Pay (sandbox)SANDBOX payment simulator, not a live charge. 4242424242424242 succeeds (Visa). 4000000000000002 declines. The full card number is never stored or returned; only brand and last4. Set STRIPE_SECRET_KEY to send the same call to Stripe test mode instead. A successful sandbox charge creates the invoice and attempts the confirmation email. Input JSON schema: {"type": "object", "required": ["action", "order_id", "card_number"], "properties": {"action": {"const": "pay"}, "order_id": {"type": "string"}, "card_number": {"type": "string"}, "exp_month": {"type": "integer"}, "exp_year": {"type": "integer"}, "cvc": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["order", "payment"], "properties": {"order": {"type": "object"}, "payment": {"type": "object"}, "invoice": {"type": "object"}, "notification": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstorepay
-
Generate invoiceBuild a sequential UBL 2.1 / EN 16931-style XML invoice and a PDF for a paid order. The same invoice is returned if it already exists. Download URLs require an unguessable token. Input JSON schema: {"type": "object", "required": ["action", "order_id"], "properties": {"action": {"const": "generate_invoice"}, "order_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["invoice"], "properties": {"invoice": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoregenerate_invoice
-
Get order statusReturn the order, payment (last4 and brand only), invoice links, and email status. Input JSON schema: {"type": "object", "required": ["action", "order_id"], "properties": {"action": {"const": "get_order_status"}, "order_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["order"], "properties": {"order": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstoreget_order_status
-
Email orderSend the order confirmation and the invoice to the customer. If neither Resend nor SMTP is configured, the action still succeeds and the status is exactly "not_sent: email provider not configured". Pay already attempts this once. Input JSON schema: {"type": "object", "required": ["action", "order_id"], "properties": {"action": {"const": "notify_order"}, "order_id": {"type": "string"}}} Output JSON schema: {"type": "object", "required": ["notification"], "properties": {"notification": {"type": "object"}}} Send this as an A2A DataPart for a deterministic result that does not call a model. A TextPart is handled by the language model, which calls the same tool. Every result also includes state and message.bookstorenotify_order
How to call
A2A endpoint (JSONRPC)
https://agent.agiq.top
Agent card
https://agiq.top/.well-known/agent-card.json
Documentation
https://agiq.top
Homepage
https://agiq.top
Listed in
Directories this entry was found in.
agenstry