A Streamlit app for running a configurable multi-agent research workflow.
- Configure and launch multi-agent LLM workflows for topic-specific research
- Pick a research profile from the sidebar to switch topic defaults
- Real-time progress and agent status display
- Downloadable markdown reports
- Trusted sources configuration
- Supports OpenAI and Ollama LLMs
multi_agent_workflow.pyowns the workflow engine, typed workflow state, agent roles, and normalized runtime events.research_profiles.pyloads topic-specific research profiles and composes the prompt source policy.workflow_adapters.pyisolates Tavily search initialization and report persistence from the engine.app.pyowns the Streamlit UI, run control, and event rendering.- See docs/agentic-architecture.md for the explicit workflow contract.
- Python 3.10+
- See
requirements.txtfor dependencies
- Clone the repository:
git clone <repo-url> cd multi-agent-research
- Install dependencies:
pip install -r requirements.txt
- Create a
.envfile in the project root and add your API keys as needed:- For Tavily (required for web search):
TAVILY_API_KEY=your_tavily_api_key_here
- For OpenAI (required if you select OpenAI as LLM Type):
OPENAI_API_KEY=your_openai_api_key_here
- To switch the active research profile used by the workflow and UI defaults:
Profiles are YAML files stored under
RESEARCH_PROFILE_PATH=research_profiles/health_science.yaml
research_profiles/. Copy the default profile and adjust the topic, audience, tone, target word count, report filename, and source tiers to fit a different research domain. - To override the default research source tiers used by the workflow and sidebar:
Values can be comma-, semicolon-, or newline-separated.
PRIMARY_TRUSTED_SOURCES=PubMed (pubmed.ncbi.nlm.nih.gov),The Lancet (thelancet.com),Nature Medicine (nature.com/nm) SECONDARY_TRUSTED_SOURCES=Google Scholar,ScienceDaily (sciencedaily.com),Healthline (healthline.com)
- For Tavily (required for web search):
- Run the app:
streamlit run app.py
- Run the workflow tests with:
.\.venv\Scripts\python.exe -m unittest discover -s tests -p "test_*.py"
- The mocked orchestration test covers the research -> draft -> approve -> publish path without calling external services.
- Choose a research profile in the sidebar to control the topic, prompt defaults, and source tiers
- Configure workflow parameters in the sidebar
- Start/stop the workflow and monitor progress
- Download generated reports from the UI
app.py— Main Streamlit appmulti_agent_workflow.py— Workflow logicworkflow_adapters.py— External service adapters for search and persistencellm_factory.py— LLM integrationtests/— Config and orchestration testsdocs/— Generated reports
MIT License