HALO Core is an intelligence workspace for teams that need to turn raw information into clear, usable outputs.
Instead of juggling separate tools for files, chat, notes, and deliverables, HALO keeps the full workflow in one place:
- Ingest sources
- Ask grounded questions
- Save high-value insights
- Generate shareable artifacts
- Workflow-first: built for end-to-end work, not one-off prompts.
- Team-agent capable: run specialized AI roles with delegation strategies.
- Source-grounded: answers are driven by selected evidence.
- Transparent execution: inspect tool calls, agent actions, and traces when needed.
- Output-ready: generate reports, infographics, podcasts, presentations, and data tables.
Hosted demo: halocore.streamlit.app
Demo limitations:
- No persistent storage between sessions
- Download generated files immediately
- Session timeout after inactivity (~15-20 min)
- Shared resources can slow generation
- Cold starts may take a few seconds
- No access to your local files/env vars
- User memory backend is disabled on Streamlit Cloud
- Python 3.11+
- FFmpeg (for audio/video transcription)
- OpenAI API key (and any MCP/provider credentials you use)
- Optional: Node/npm for frontend tooling
# Unix/Linux/macOS
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
# Windows PowerShell
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install --upgrade pip
pip install -r requirements.txtCreate .streamlit/secrets.toml:
OPENAI_API_KEY = "sk-..."streamlit run app/main.pyDefault UI includes a sidebar plus three work areas: Sources, Chat, and Studio.
- Upload 1-3 files in Sources (
+ Quellen hinzufuegen). - Select those sources.
- In Chat, ask for findings, risks, and actions.
- Save the best answer as a note.
- Generate a Bericht in Studio.
You now have a full source-to-output workflow running end to end.
- Open Configuration → Agent Config.
- Select a pre-configured team (e.g., "Medical AI Team").
- In Chat, enable team mode and ask a complex question.
- Watch as different agents contribute specialized expertise.
- Review the coordinated response with tool call traces.
- Upload and manage documents, data files, images, audio, video, and medical DICOM files
- Import connector results from Notion, Google Drive, and Microsoft 365
- Control exactly what context HALO may use
- Optional auto-anonymization for DICOM medical imaging
- Source-grounded responses with citations
- Multimodal input support (text, images, audio, video)
- Team-agent orchestration with specialized roles
- Multiple coordination modes: direct, skill-based delegation, or team-wide
- Save responses directly into notes
- Fast global briefing in Chat (
Zusammenfassung aller Quellen) - Detect stale summaries after source updates
- Pin summaries into notes
- Template-driven output generation from current context
- Templates include: Bericht, Infografik, Podcast, Videouebersicht, Praesentation, Datentabelle
- Outputs are stored and exportable
- Preserve approved reasoning and decisions
- Reuse notes as future sources
- Medical imaging anonymization with HIPAA Safe Harbor compliance
- Configurable anonymization (patient, institution, study data)
- Batch processing of multiple DICOM files
- Export anonymization mapping as CSV
- PACS server integration for hospital systems
- Tune app behavior, presets, models, tools, and runtime options
- Configure advanced team coordination and MCP usage
- 15 pre-configured agents and 4 ready-to-use teams
- MCP connectors for Notion, Google Drive, and Microsoft 365
- DICOM medical imaging settings and PACS integration
- Sources, chat history, notes, and studio outputs are stored in
data/by default. - Set
HALO_DATA_DIRto override storage location per environment. - Studio templates are data-driven via
templates/studio_templates.json. - Chat presets are loaded from
presets.json.
direct_only: master answers directlydelegate_on_complexity: delegates to matching members by skillsalways_delegate: delegates to all configured memberscoordinated_rag: delegates broadly with source-first RAG guidance
- Agno
Knowledgeis wired to LanceDB indata/lancedbviaservices/knowledge.py search_knowledge=Trueis enabled when knowledge is available- Team mode also enables knowledge search for
coordinated_rag - On Windows, vector search is used to avoid hybrid/FTS index lock issues
- Chat streams by default
- Per-agent
stream_eventsenables event-rich streaming - App-level
log_stream_eventsenables verbose stream event logs
- Default: JSON-only local persistence in
data/ - Optional: set
HALO_AGENT_DBto enable Agno SQLite-backed memory - With DB enabled, agents/teams use bounded history (
num_history_runs=3) and user memories
DICOM_ANONYMIZE_ON_UPLOAD: Auto-anonymize DICOM files on uploadDICOM_PACS_*: PACS server configuration for hospital integration
NOTION_API_KEY: Notion workspace integrationGOOGLE_OAUTH_CREDENTIALS: Google Drive access (JSON credentials file)MSAL_*: Microsoft 365 / OneDrive authentication
Each chat turn stores telemetry fields, including:
modelselected_memberstoolsstream_mode,stream_events,stream_resultlatency_msknowledge_hits,knowledge_sourcesused_fallback
- Verify
OPENAI_API_KEYis configured. - Confirm sources are ingested and selected.
- Check logs for retrieval/knowledge failures.
- Restart Streamlit.
- Move
HALO_DATA_DIRoutside heavily locked sync folders if possible. - Confirm Windows vector-search fallback path is active.
- Enable
stream_eventsfor the relevant chat agent. - Turn on
log_stream_eventsfor deeper diagnostics. - Run:
python -m pytest tests/test_streaming.py -q
- Verify credentials in
.envor.streamlit/secrets.toml. - Test connections via Configuration page.
- Run:
python -m pytest tests/test_terminal_mcp_smoke.py -q
- Check
DICOM_ANONYMIZE_ON_UPLOADsetting if auto-anonymization unexpected. - Verify PACS server configuration for connection issues.
- Ensure DICOM files are not corrupted before upload.
- Check
data/agents/*.jsontyped fields (instructions,skills,tools,members). - Run:
python -m pytest tests/test_agents_config.py -q
mkdocs serveOpen http://127.0.0.1:8000.
CI-equivalent docs validation:
mkdocs build --strictapp/ # Streamlit entrypoints and UI components
├── pages/ # Individual app pages (Configuration, DICOM_Tools, etc.)
services/ # Backend orchestration, retrieval, storage, connectors
├── agents/ # Agent configuration files
└── knowledge.py # LanceDB integration for RAG
data/ # Local persisted workspace data
├── agents/ # Runtime agent data
├── chat_history/ # Conversation history
└── lancedb/ # Vector database for knowledge retrieval
templates/ # Studio template definitions
├── studio_templates.json # Template configurations
docs/ # Comprehensive documentation
├── handbook/ # User guides
├── admin/ # Administration guides
└── reference/ # Technical reference
tests/ # Pytest suites
adr/ # Architectural Decision Records
- Review AGENTS.md before code changes.
- Keep changes scoped and tested.
- Update README/docs/ADR/PRD when behavior changes.
python -m pytestblack --check .ruff check .mypy app services(when enabled)
CI runs linting, tests, and type checks via GitHub Actions.
- Documentation — Comprehensive docs site
- User Handbook — End user guides
- Admin Guide — System administration
- Technical Reference — Developer documentation
- Changelog — Version history and changes
- Product Requirements Document
- Chat Integration PRD
- Agent Config Integration Plan
- Architectural Decisions
- Streamlit App Entry
- Agno docs
- Streamlit docs
- Live Demo
- Corpus Analytica
Made with ❤️ by Corpus Analytica