Commit Graph

42 Commits

Author SHA1 Message Date
Willem Jiang
36bf5c9ccd fix: repair missing step_type fields in Plan validation (#653)
* fix: resolve issue #650 - repair missing step_type fields in Plan validation

- Add step_type repair logic to validate_and_fix_plan() to auto-infer missing step_type
- Infer as 'research' when need_search=true, 'processing' when need_search=false
- Add explicit CRITICAL REQUIREMENT section to planner.md emphasizing step_type mandatory for every step
- Include validation checklist and examples showing both research and processing steps
- Add 23 comprehensive unit tests for validate_and_fix_plan() covering all scenarios
- Add 4 integration tests specifically for Issue #650 with actual Plan validation
- Prevents Pydantic ValidationError: 'Field required' for missing step_type

* Update tests/unit/graph/test_plan_validation.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update tests/unit/graph/test_plan_validation.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* update the planner.zh_CN.md with recent changes of planner.md

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-24 21:26:48 +08:00
jimmyuconn1982
2001a7c223 Fix: clarification bugs - max rounds, locale passing, and over-clarification (#647)
Fixes: Max rounds bug, locale passing bug, over-clarification issue

* reslove Copilot spelling comments

---------

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-10-24 16:43:39 +08:00
Willem Jiang
5eada04f50 feat: Add comprehensive Chinese localization support for issue #412 (#649)
* feat: Add comprehensive Chinese localization support for issue #412

          - Add locale parameter to ChatRequest model to capture user's language preference
          - Implement language-aware template loading in template.py with fallback to English
          - Update all apply_prompt_template calls to pass locale through the workflow
          - Create Chinese translations for 14 core prompt files:
            * Main agents: coordinator, planner, researcher, reporter, coder
            * Subprocess agents: podcast_script_writer, ppt_composer, prompt_enhancer
            * Writing assistant: all 6 prose prompts
          - Update app.py to extract and propagate locale through workflow state
          - Support both zh-CN and en-US locales with automatic fallback
          - Ensure locale flows through all agent nodes and template rendering

* address the review suggestions
2025-10-24 16:31:19 +08:00
Willem Jiang
add0a701f4 fix: ensure web search is performed for research plans to fix #535 (#640)
* fix: ensure web search is performed for research plans to fix #535

          When using certain models (DeepSeek-V3, Qwen3, or local deployments), the
          agent framework failed to trigger web search tools, resulting in hallucinated
          data. This fix implements multiple safeguards:

          1. Add enforce_web_search configuration flag:
             - New config option to mandate web search in research plans
             - Defaults to False for backward compatibility

          2. Add plan validation function validate_and_fix_plan():
             - Validates that plans include at least one research step with web search
             - Enforces web search requirement when enabled
             - Adds default research step if plan has no steps

          3. Enhance coordinator_node fallback logic:
             - When model fails to call tools, fallback to planner instead of __end__
             - Ensures workflow continues even when tool calling fails
             - Logs detailed diagnostic info for debugging

          4. Update prompts for stricter requirements:
             - planner.md: Add MANDATORY web search requirement and clear warnings
             - coordinator.md: Add CRITICAL tool calling requirement
             - Emphasize consequences of missing web search (hallucinated data)

          5. Update tests to reflect new behavior:
             - test_coordinator_node_no_tool_calls: Expect planner instead of __end__
             - test_coordinator_empty_llm_response_corner_case: Same expectation

          Fixes #535 by ensuring:
          - Web search is always performed for research tasks
          - Workflow doesn't terminate on tool calling failures
          - Models with poor tool calling support can still proceed
          - No hallucinated data without real information gathering

* Update src/graph/nodes.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/graph/nodes.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* accept the review suggestion of getting configuration

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-22 08:27:06 +08:00
jimmyuconn1982
2510cc61de feat: Add intelligent clarification feature in coordinate step for research queries (#613)
* 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
2025-10-14 13:35:57 +08:00
jimmyuconn1982
24f6905c18 fix: support local models by making thought field optional in Plan model (#601)
- 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.

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-09-28 08:48:39 +08:00
HagonChan
c214999606 feat: add strategic_investment report style (#595)
* add strategic_investment mode

* make format

* make lint

* fix: repair
lint-frontend
2025-09-24 09:50:36 +08:00
12november
5f1981ac9b fix deer-flow/src/prompts/prose/prose_zap.md (#553) 2025-09-03 19:32:09 +08:00
zgjja
3b4e993531 feat: 1. replace black with ruff for fomatting and sort import (#489)
2. use tavily from`langchain-tavily` rather than the older one from `langchain-community`

Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-08-17 22:57:23 +08:00
HagonChan
a4d6171c17 fix: tool name mismatch issue (#506) 2025-08-08 19:31:22 +08:00
orifake
e1f0595c3c refactor: refine coordinator prompt for Human In The Loop (#505) 2025-08-07 09:00:58 +08:00
DanielWalnut
b155e1eca6 refactor: refine the prompt enhancer pipeline (#426) 2025-07-15 19:21:59 +08:00
DanielWalnut
1cd6aa0ece feat: implement enhance prompt (#294)
* feat: implement enhance prompt

* add unit test

* fix prompt

* fix: fix eslint and compiling issues

* feat: add border-beam animation

* fix: fix importing issues

---------

Co-authored-by: Henry Li <henry1943@163.com>
2025-06-08 19:41:59 +08:00
DanielWalnut
0e22c373af feat: support to adjust writing style (#290)
* feat: implment backend for adjust report style

* feat: add web part

* fix test cases

* fix: fix typing

---------

Co-authored-by: Henry Li <henry1943@163.com>
2025-06-07 20:48:39 +08:00
JeffJiang
462752b462 feat: RAG Integration (#238)
* feat: add rag provider and retriever

* feat: retriever tool

* feat: add retriever tool to the researcher node

* feat: add rag http apis

* feat: new message input supports resource mentions

* feat: new message input component support resource mentions

* refactor: need_web_search to need_search

* chore: RAG integration docs

* chore: change example api host

* fix: user message color in dark mode

* fix: mentions style

* feat: add local_search_tool to researcher prompt

* chore: research prompt

* fix: ragflow page size and reporter with

* docs: ragflow integration and add acknowledgment projects

* chore: format
2025-05-28 14:13:46 +08:00
DanielWalnut
71808802de refactor: stess the time range while using web search tools (#100) 2025-05-13 18:01:38 +08:00
DanielWalnut
97a15dce36 refactor: refactor the prompt management mechanism (#17) 2025-05-09 15:50:46 +08:00
DanielWalnut
f8b718fcc1 refactor: refactor podcast genration stability (#11) 2025-05-09 11:34:19 +08:00
Li Xin
8bdd031c56 feat: emphasis on “directly output” 2025-05-01 15:39:42 +08:00
Li Xin
2473312779 feat: update prompt of researcher 2025-05-01 14:13:35 +08:00
Zhao Longjie
dab1ba4789 fix(planner): skip human feedback if context is sufficient
Change-Id: I2b5628a7a8ecb6a6bad2712a9ff81b9b1cd323c6
2025-04-29 18:17:27 +08:00
Wang Hao
ada5e34eeb feat: add LOCALE variable to agent prompts 2025-04-26 20:57:38 -07:00
Li Xin
72e70357b2 docs: add more suggestions on formatting to enrich the report 2025-04-25 14:13:13 +08:00
He Tao
475dd0f286 feat: refine researcher prompt for mcp 2025-04-23 17:40:08 +08:00
He Tao
0cf859b393 feat: support mcp settings 2025-04-23 16:00:01 +08:00
He Tao
3d1d289dbd fix: fix podcast issue 2025-04-22 11:50:59 +08:00
Li Xin
8129765105 feat: use the same language as report 2025-04-21 19:55:03 +08:00
Li Xin
b67b04ff5d feat: support multi-language 2025-04-21 19:50:34 +08:00
He Tao
0d2f93c773 feat: add ppt generation feat 2025-04-21 16:43:06 +08:00
Li Xin
d81eb40a80 feat: put images in the middle of the report 2025-04-21 14:45:52 +08:00
Li Xin
be5f823395 feat: support Podcast generation 2025-04-19 17:37:40 +08:00
Li Xin
6ffe46e39b feat: support images in the search results 2025-04-19 09:57:02 +08:00
Li Xin
f93a4ab18f Merge branch 'main' of code.byted.org:langmanus/deer-flow 2025-04-18 15:35:36 +08:00
Li Xin
a56a6f6e0e feat: enhance the structure of output 2025-04-17 18:01:31 +08:00
Li Xin
27f41b6ad5 feat: Emphasize title in structure 2025-04-17 17:46:28 +08:00
He Tao
b2f14d1737 chore: change project name 2025-04-17 16:17:31 +08:00
He Tao
6937abcd91 chore: add license headers 2025-04-17 11:34:42 +08:00
He Tao
76fd04df22 chore: change the project name 2025-04-17 11:17:03 +08:00
He Tao
23298abd14 fix: fix coordinator prompt 2025-04-11 13:45:44 +08:00
He Tao
aaa340787c feat: add more examples 2025-04-10 15:00:56 +08:00
He Tao
1195612c47 feat: support duckduckgo search engine 2025-04-10 11:45:04 +08:00
He Tao
03798ded08 feat: lite deep researcher implementation 2025-04-09 20:32:16 +08:00