Skip to content

feat: add DeepSeek provider + Mixture of Agents (MoA) architecture - #18

Open
XiaoBinGan wants to merge 1 commit into
FareedKhan-dev:mainfrom
XiaoBinGan:main
Open

feat: add DeepSeek provider + Mixture of Agents (MoA) architecture#18
XiaoBinGan wants to merge 1 commit into
FareedKhan-dev:mainfrom
XiaoBinGan:main

Conversation

@XiaoBinGan

Copy link
Copy Markdown

Summary

This PR adds two new features:

1. DeepSeek Provider (9th LLM provider)

  • config.py — Added deepseek to Provider Literal, deepseek_api_key, and api_key_for() mapping
  • llm/factory.py — Added DeepSeek capabilities + get_llm() branch via ChatOpenAI with deepseek base_url
  • llm/providers.py — Added ProviderInfo (deepseek-chat)
  • pyproject.toml — Added [deepseek] optional dependency extra
  • .env.example — Added DEEPSEEK_API_KEY + DEEPSEEK_BASE_URL
  • docs/getting-started/providers.md — Added DeepSeek documentation row

2. Mixture of Agents (MoA) Architecture (#36)

  • New multi-layer proposer-aggregator architecture with 3 persona types (Decomposer/Synthesizer/Critic)
  • Implemented in architectures/mixture_of_agents.py, registered in __init__.py
  • Full 11-section notebook build script (scripts/build_36_mixture_of_agents.py)
  • Section 9 auto-tailor script (scripts/tailor_36_commentary.py)
  • Added to benchmarks (creative_writing + research_synthesis) in benchmarks/tasks.yaml
  • Integration smoke test in tests/integration/test_integration_all.py

3. Global 35 -> 36 Updates

  • Updated all count references across README.md, docs/*.md (4 files), test docstrings, and scripts/execute_notebooks.py

4. Bug Fix

  • Fixed web_search_tool to return a no-op stub when TAVILY_API_KEY is missing, instead of crashing. This allows unit tests requiring web search architectures (ReAct, ToolUse, Planning, etc.) to pass without a Tavily key.

Test Results

tests/unit/test_registry.py — 112/112 passed

- Add DeepSeek as 9th LLM provider (config, factory, providers, pyproject, env)
- Implement MixtureOfAgents: multi-layer proposer-aggregator with 3 persona types
- Register MoA in __init__ and update registry count 35→36
- Add build_36 and tailor_36 scripts with full 11-section notebook
- Add MoA to benchmarks (creative_writing, research_synthesis)
- Add MoA integration test
- Update all docs references 35→36 (README, docs/*.md, test docstrings)
- Fix: web_search_tool returns no-op stub when TAVILY_API_KEY is missing

Tests: 112/112 passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant