* fix: support local models by making thought field optional in Plan model - Make thought field optional in Plan model to fix Pydantic validation errors with local models - Add Ollama configuration example to conf.yaml.example - Update documentation to include local model support - Improve planner prompt with better JSON format requirements Fixes local model integration issues where models like qwen3:14b would fail due to missing thought field in JSON output. * feat: Add intelligent clarification feature for research queries - Add multi-turn clarification process to refine vague research questions - Implement three-dimension clarification standard (Tech/App, Focus, Scope) - Add clarification state management in coordinator node - Update coordinator prompt with detailed clarification guidelines - Add UI settings to enable/disable clarification feature (disabled by default) - Update workflow to handle clarification rounds recursively - Add comprehensive test coverage for clarification functionality - Update documentation with clarification feature usage guide Key components: - src/graph/nodes.py: Core clarification logic and state management - src/prompts/coordinator.md: Detailed clarification guidelines - src/workflow.py: Recursive clarification handling - web/: UI settings integration - tests/: Comprehensive test coverage - docs/: Updated configuration guide * fix: Improve clarification conversation continuity - Add comprehensive conversation history to clarification context - Include previous exchanges summary in system messages - Add explicit guidelines for continuing rounds in coordinator prompt - Prevent LLM from starting new topics during clarification - Ensure topic continuity across clarification rounds Fixes issue where LLM would restart clarification instead of building upon previous exchanges. * fix: Add conversation history to clarification context * fix: resolve clarification feature message to planer, prompt, test issues - Optimize coordinator.md prompt template for better clarification flow - Simplify final message sent to planner after clarification - Fix API key assertion issues in test_search.py * fix: Add configurable max_clarification_rounds and comprehensive tests - Add max_clarification_rounds parameter for external configuration - Add comprehensive test cases for clarification feature in test_app.py - Fixes issues found during interactive mode testing where: - Recursive call failed due to missing initial_state parameter - Clarification exited prematurely at max rounds - Incorrect logging of max rounds reached * Move clarification tests to test_nodes.py and add max_clarification_rounds to zh.json
🦌 DeerFlow Web UI
Originated from Open Source, give back to Open Source.
This is the web UI for DeerFlow.
Quick Start
Prerequisites
DeerFlow- Node.js (v22.14.0+)
- pnpm (v10.6.2+) as package manager
Configuration
Create a .env file in the project root and configure the following environment variables:
NEXT_PUBLIC_API_URL: The URL of the deer-flow API.
It's always a good idea to start with the given example file, and edit the .env file with your own values:
cp .env.example .env
How to Install
DeerFlow Web UI uses pnpm as its package manager.
To install the dependencies, run:
cd web
pnpm install
How to Run in Development Mode
Note
Ensure the Python API service is running before starting the web UI.
Start the web UI development server:
cd web
pnpm dev
By default, the web UI will be available at http://localhost:3000.
You can set the NEXT_PUBLIC_API_URL environment variable if you're using a different host or location.
# .env
NEXT_PUBLIC_API_URL=http://localhost:8000/api
Docker
You can also run this project with Docker.
First, you need read the configuration below. Make sure .env file is ready.
Second, to build a Docker image of your own web server:
docker build --build-arg NEXT_PUBLIC_API_URL=YOUR_DEER-FLOW_API -t deer-flow-web .
Final, start up a docker container running the web server:
# Replace deer-flow-web-app with your preferred container name
docker run -d -t -p 3000:3000 --env-file .env --name deer-flow-web-app deer-flow-web
# stop the server
docker stop deer-flow-web-app
Docker Compose
You can also setup this project with the docker compose:
# building docker image
docker compose build
# start the server
docker compose up
License
This project is open source and available under the MIT License.
Acknowledgments
We extend our heartfelt gratitude to the open source community for their invaluable contributions. DeerFlow is built upon the foundation of these outstanding projects:
In particular, we want to express our deep appreciation for:
- Next.js for their exceptional framework
- Shadcn for their minimalistic components that powers our UI
- Zustand for their stunning state management
- Framer Motion for their amazing animation library
- React Markdown for their exceptional markdown rendering and customizability
- Last but not least, special thanks to SToneX for his great contribution for token-by-token visual effect
These outstanding projects form the backbone of DeerFlow and exemplify the transformative power of open source collaboration.