# pip install claude-agent-sdk requests
# There is no Python SDK yet (only TypeScript is published); this calls the HTTP API.
import os, requests
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlock
API = "https://api.flow.engineer"
HEADERS = {"Authorization": f"Bearer {os.environ['FLOW_MESSAGING_KEY']}"}
async def answer(event: dict):
conversation = event["conversation"]["id"]
text = event["data"]["message"]["content"].get("text", "")
options = ClaudeAgentOptions(
system_prompt="You are the assistant for Asha's Bakery. Answer in short messages.",
tools=[], # no built-in tools; list the ones your agent may use
)
i = 0
async for message in query(prompt=text, options=options):
if isinstance(message, AssistantMessage):
for block in message.content:
if isinstance(block, TextBlock) and block.text.strip():
requests.post(
f"{API}/v1/conversations/{conversation}/messages",
headers={**HEADERS, "Idempotency-Key": f"{event['id']}:{i}"},
json={"content": {"type": "text", "text": block.text, "format": "markdown"}, "fallback": "auto"},
timeout=30,
)
i += 1