Starter scaffold for a multi-agent deep-research assistant on HCI topics. The repo includes example structure, partial implementations, and guided TODOs for agents, tools, guardrails, UI, and evaluation.
.
├── src/
│ ├── agents/
│ │ └── autogen_agents.py # AutoGen agent creation + tool wiring
│ ├── autogen_orchestrator.py # Multi-agent orchestration scaffold
│ ├── guardrails/
│ │ ├── safety_manager.py # Safety coordination scaffold
│ │ ├── input_guardrail.py # Input validation scaffold
│ │ └── output_guardrail.py # Output validation scaffold
│ ├── tools/
│ │ ├── web_search.py # Tavily / Brave search
│ │ ├── paper_search.py # Semantic Scholar search
│ │ └── citation_tool.py # Citation formatting utilities
│ ├── evaluation/
│ │ ├── judge.py # LLM-as-a-Judge scaffold
│ │ └── evaluator.py # Batch evaluation scaffold
│ └── ui/
│ ├── cli.py # Interactive CLI
│ └── streamlit_app.py # Streamlit web UI
├── data/
│ ├── example_queries.json # Primary evaluation dataset
│ └── test_queries_sample.json # Alternate/fallback dataset
├── docs/
│ └── TODO_AUDIT_AND_SOLUTIONS.md # TODO inventory + guidance notes
├── config.yaml
├── requirements.txt
├── .env.example
├── example_autogen.py
└── main.py
- Python 3.9+
uv(recommended) orpip
Using uv:
uv venv
source .venv/bin/activate
uv pip install -r requirements.txtUsing pip:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtcp .env.example .envMinimum required keys:
- One model API path:
OPENAI_API_KEY(+OPENAI_BASE_URLfor vLLM/OpenAI-compatible endpoints), orGROQ_API_KEY
- One search API:
TAVILY_API_KEYorBRAVE_API_KEY
Optional:
SEMANTIC_SCHOLAR_API_KEY(recommended for higher paper-search rate limits)
python main.py
# or
python main.py --mode autogenpython main.py --mode clipython main.py --mode web
# or
streamlit run src/ui/streamlit_app.pypython main.py --mode evaluateBy default, this path only runs a simple test query until students complete the evaluation TODOs in src/evaluation/ and wire them through main.py.
- Finalize agent prompts/roles and end-to-end orchestration behavior.
- Finish tool integration and evidence formatting.
- Complete safety/guardrail logic and connect it to runtime flow.
- Surface safety outcomes clearly in the UI.
- Finish LLM-as-a-Judge scoring and batch evaluation reporting.
- Ensure CLI/web interfaces show traces and citations clearly.
- Document reproducible demo steps and representative outputs.
- Some modules are intentionally partial and include TODO markers for students to complete.
- Use
ASSIGNMENT_INSTRUCTIONS.mdas the primary guide for where each requirement should be implemented.