71 Commits

Author SHA1 Message Date
Johan Holm
c7858c2eb4 Make sure to only include fallback search engines 2025-03-18 09:53:30 +01:00
Johan Holm
9fa12e594c update from pre-commit 2025-03-17 11:05:03 +01:00
Johan Holm
711c2805e4 feat(search): Add robust fallback system with configurable retries and enhanced error handling
- Implement multi-engine failover system with configurable fallback order
    - Add retry logic with exponential backoff and rate limit detection
    - Introduce search configuration options:
      * fallback_engines: Ordered list of backup search providers
      * retry_delay: Seconds between retry batches (default: 60)
      * max_retries: Maximum system-wide retry attempts (default: 3)
    - Improve error resilience with:
      - Automatic engine switching on 429/Too Many Requests
      - Full system retries after configurable cooldown periods
      - Detailed logging for diagnostics and monitoring
    - Enhance engine prioritization logic:
      1. Primary configured engine
      2. Configured fallback engines
      3. Remaining available engines

    Example configuration:
    [search]
    engine = "Google"
    fallback_engines = ["DuckDuckGo", "Baidu"]  # Cascading fallback order
    retry_delay = 60                            # 1 minute between retry batches
    max_retries = 3                             # Attempt 3 full system retries

    This addresses critical reliability issues by:
    - Preventing search failures due to single-engine rate limits
    - Enabling recovery from transient network errors
    - Providing operational flexibility through configurable parameters
    - Improving visibility through granular logging (INFO/WARN/ERROR)
2025-03-17 10:43:42 +01:00
liangxinbing
114bd46720 update config.example.toml and format file_saver.py 2025-03-17 00:04:17 +08:00
mannaandpoem
0d4cedd51d
Merge pull request #50 from obiscr/wuzi/generated-files
place the generated file in the workspace directory
2025-03-16 18:57:53 +08:00
liangxinbing
5e35f01ea8 format code 2025-03-16 12:57:06 +08:00
mannaandpoem
337adf011c
Merge pull request #635 from a-holm/avoid-Validation-error-when-using-gemini
fix(llm): improve message handling to support LLMs without content/tool_calls
2025-03-15 17:11:19 +08:00
mannaandpoem
5641c9bf8a
Merge pull request #598 from ca-ke/refactor/web-search-tool
refactor(web_search): enhance web search functionality with engine fallback
2025-03-15 17:06:32 +08:00
a-holm
60268f1696 reformat with precommit 2025-03-15 09:48:52 +01:00
liangxinbing
65a3898592 format code and remove max_input_tokens for ToolCallAgent 2025-03-15 14:43:07 +08:00
mannaandpoem
3bb8f8fe71
Merge pull request #642 from matengm1/bug/fix-temperature-defaulting
Fix temperature using default if 0
2025-03-15 14:16:46 +08:00
mannaandpoem
d35cd5ccf0
Merge pull request #573 from nezhazheng/main
Use the max_input_tokens configuration to constrain the agent’s token usage.
2025-03-15 14:11:19 +08:00
Matt Eng
49ccd72815 Reformat 2025-03-14 21:41:43 -07:00
Matt Eng
b17c9d31a9 Fix temperature using default if 0 2025-03-14 20:39:23 -07:00
a-holm
350b0038ee fix(llm): improve message handling to support LLMs without content/tool_calls
This commit improves the message handling in the LLM class to gracefully handle
messages without 'content' or 'tool_calls' fields. Previously, the system would
raise a ValueError when encountering such messages, causing crashes when working
with models like Google's Gemini that sometimes return messages with different
structures.

Key changes:
- Reordered message processing to check for Message objects first
- Changed validation approach to silently skip malformed messages instead of crashing
- Removed the strict ValueError when content/tool_calls are missing

This change maintains compatibility with correctly formatted messages while
improving robustness when working with various LLM providers.
2025-03-14 21:01:13 +01:00
Caique Minhare [Cake]
6ea5a4d1ef
Merge branch 'main' into refactor/web-search-tool 2025-03-14 15:04:55 -03:00
xiangjinyu
c0c03c0bef fix _handle_special_tool bug 2025-03-14 13:25:43 +08:00
zhengshuli
9b0b69a5e1 Use the max_input_tokens configuration to constrain the agent’s token usage. 2025-03-14 12:35:26 +08:00
liangxinbing
9c7834eff2 update readme; format code; update config.example.toml 2025-03-14 12:20:59 +08:00
mannaandpoem
e844dfca34
Merge pull request #510 from the0807/feature/o3-mini
Support OpenAI Reasoning Models (o1, o3-mini)
2025-03-14 11:47:34 +08:00
xRay
89c9d904db 将工具选择从 ToolChoice.REQUIRED 更新为 ToolChoice.AUTO,以优化规划代理和规划流程的工具调用逻辑。 2025-03-14 09:46:46 +08:00
ca-ke
cba275d405 refactor: enhance web search functionality with engine fallback and retry mechanism 2025-03-13 14:17:57 -03:00
Isaac
be5c2646af
Merge pull request #543 from aacedar/thread_safe
update python_execute thread safe
2025-03-13 21:15:17 +08:00
Kingtous
2b9ef4ea08 fix: perform search on query 2025-03-13 09:10:14 +08:00
Kingtous
86d2a7d6bf feat: implement duckduckgo search, abstract further 2025-03-13 09:05:14 +08:00
Kingtous
b7774b18ef opt: abstract web search interface, code cleanup 2025-03-13 08:31:40 +08:00
Kingtous
f9ce06adb8 opt: remove unnessary print 2025-03-13 00:50:30 +08:00
Kingtous
bbaff4f095 feat: add baidu search tool and optional config 2025-03-13 00:27:48 +08:00
836304831
ed4b78dc37 update python_execute safe 2025-03-12 23:33:37 +08:00
mannaandpoem
3db1a7fb56
Merge pull request #457 from cefengxu/10Mar2025cefengxu
base.py, the 'state' and  'current_step' should be reset after every loop
2025-03-12 22:25:31 +08:00
mannaandpoem
881ecaefa6
Update base.py 2025-03-12 22:25:02 +08:00
bubble65
7b48da0c59 add a new tool called terminal 2025-03-12 21:21:01 +08:00
Isaac
6b64b98b12
Merge branch 'main' into refactor/standardize-tool-choice-literals 2025-03-12 20:55:52 +08:00
xiangjinyu
c6cd296108 add pre-commit 2025-03-12 20:52:45 +08:00
xiangjinyu
f197b2e3d2 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	app/agent/manus.py
2025-03-12 20:35:33 +08:00
xiangjinyu
31c7e69faf add max_steps 2025-03-12 20:27:14 +08:00
mannaandpoem
cfdeb3ad4c
Merge pull request #465 from nezhazheng/main
Support configuring all BrowserConfig parameters within browser-use.
2025-03-12 20:26:14 +08:00
liangxinbing
74a4c8bef0 fix bug of abnormal exit for BrowserUseTool 2025-03-12 20:25:37 +08:00
liangxinbing
e6e31a2c13 update timeout to 300 2025-03-12 20:09:23 +08:00
zhengshuli
3cb4489cd5 Support configuring all BrowserConfig parameters within browser-use. 2025-03-12 17:57:43 +08:00
Matt Eng
eac3a6e24e Standardize literals for role and tool choice type definitions 2025-03-12 00:15:31 -07:00
the0807
983e8f0d4b Support OpenAI Reasoning Models (o1, o3-mini) 2025-03-12 14:33:32 +09:00
mannaandpoem
111a2bc6b1
Merge pull request #469 from cyzus/fix-infinite-loop-for-simple-query
fix infinite loop for simple query
2025-03-11 19:20:15 +08:00
Yizhou Chi
61d705f6e6 fix prompt order 2025-03-11 17:55:40 +08:00
Yizhou Chi
cafd4a18da fix infinite loop 2025-03-11 17:39:28 +08:00
xiangjinyu
3a958944a0 Adjust code structure 2025-03-11 16:32:13 +08:00
xufeng8
e183913372 the 'state' and  'current_step' should be reset after every loop , cefengxu 2025-03-11 13:50:10 +08:00
liangxinbing
8d18c05350 replace max_steps to 20 for Manus 2025-03-11 13:14:43 +08:00
liangxinbing
eeefddf6bf Bug Fixing based on basy.py
Repair from Bob Feng8 Xu
2025-03-11 13:13:24 +08:00
liangxinbing
229d6706a4 format code 2025-03-11 07:31:18 +08:00