from anthropic import AsyncAnthropic
from reminix_runtime import agent, tool, serve, Message
anthropic = AsyncAnthropic()
@tool
async def lookup_order(order_id: str) -> dict:
"""Look up an order by ID."""
# Query your database
return {"order_id": order_id, "status": "shipped", "eta": "Jan 30"}
@tool
async def create_ticket(subject: str, description: str) -> dict:
"""Create a support ticket."""
# Call your ticketing system
return {"ticket_id": "TKT-1234", "status": "created"}
@agent(template="chat")
async def support_bot(messages: list[Message]) -> str:
"""Customer support assistant with access to orders and tickets."""
response = await anthropic.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="You are a support agent.",
messages=[{"role": m.role, "content": m.content or ""} for m in messages],
tools=[
{"name": "lookup_order", "description": "Look up order status", "input_schema": {...}},
{"name": "create_ticket", "description": "Create support ticket", "input_schema": {...}}
]
)
return response.content[0].text
serve(agents=[support_bot], tools=[lookup_order, create_ticket], port=8080)