patrickcmd's picture
Deploy: sync from local
ad6dc26 verified
"""Phase 0 connectivity proof.
Run with: uv run python -m app._smoke
Goal: prove the OpenAI Agents SDK can connect to the Meridian MCP and
complete one workflow end-to-end. If this succeeds, the rest of the
build is incremental.
"""
import asyncio
from agents import Agent, Runner
from .config import Config
from .mcp_client import build_mcp_server
async def main() -> None:
config = Config()
print(f"MCP URL: {config.mcp_server_url}")
print(f"Model: {config.openai_model}")
print()
async with build_mcp_server(config.mcp_server_url) as mcp_server:
# Sanity check: enumerate tools the SDK sees.
tools = await mcp_server.list_tools()
print(f"Discovered {len(tools)} MCP tools:")
for t in tools:
print(f" - {t.name}")
print()
agent = Agent(
name="meridian-smoke",
instructions=(
"Use the MCP tools to answer the user. Be concise. "
"Never invent product details — always look them up."
),
model=config.openai_model,
mcp_servers=[mcp_server],
)
prompt = "What monitors do you sell? List up to 3 with their SKUs."
print(f">>> {prompt}\n")
result = await Runner.run(agent, prompt, max_turns=4)
print(result.final_output)
print()
usage = result.context_wrapper.usage
print(
f"usage: {usage.requests} requests, "
f"{usage.input_tokens} in / {usage.output_tokens} out tokens"
)
if __name__ == "__main__":
asyncio.run(main())