# Agent App ## Run the UI ```bash cd /Users/binx/Desktop/Goon/agent python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt streamlit run app/app.py ``` Set your Anthropic key in `agent/.env`: ```bash ANTHROPIC_API_KEY=your_key_here ``` Or paste it into the sidebar after the app starts. ## Local Python API This repo does not expose an HTTP API server. The supported programmatic interface is the local Python function in `analysis.agent`. ### Basic usage ```python from analysis.agent import run_agent result = run_agent("How many posts per subreddit?") print(result["answer"]) print(result["tool_calls"]) ``` ### With prior context ```python from analysis.agent import run_agent turns = [ { "question": "How many posts per subreddit?", "answer": "Previous answer text", "tool_calls": [], "artifacts": [], "plotly_json": "", "route": "describe", } ] result = run_agent( "Which subreddits changed most over time?", turns=turns, ) print(result["route"]) print(result["answer"]) ``` ## Return shape `run_agent(...)` returns a dictionary with: - `answer`: final assistant response - `tool_calls`: executed tool calls plus arguments and results - `plotly_json`: chart payload when a plot was generated - `route`: detected route for the question - `allowed_tools`: tools exposed for that route ## Notes - Use `python3`, not `python`, in this environment. - The app stores structured turn state in the Streamlit session so follow-up questions can reuse prior analytical context. - Generated CSV and PNG artifacts are written to `agent/outputs/`.