80 Commits

Author SHA1 Message Date
2e69dc7ca8 Fix email channel: skip progress updates and improve deduplication
- Skip progress updates (tool call hints) for email channel to prevent spam
- Mark skipped emails (from self/replies) as seen to avoid reprocessing
- Track skipped UIDs to prevent checking same emails repeatedly
- Reduce log noise by summarizing skipped emails instead of logging each one
2026-03-05 15:14:56 -05:00
a6d70f3d14 :more instructions for git commit 2026-03-04 15:03:18 -05:00
7db96541a6 Fix HTTPS to HTTP conversion for Gitea API 2026-03-04 15:01:31 -05:00
edb409bb0c Improve web search and cron scheduling
- Update web search to use ddgs package (renamed from duckduckgo_search)
- Add ddgs>=9.0.0 to dependencies in pyproject.toml
- Fix cron tool to handle recurring jobs with duration limits
  - When both every_seconds and in_seconds are provided, create multiple
    one-time jobs instead of ignoring every_seconds
  - Fixes issue where 'remind me every X for Y duration' only created
    a single reminder instead of multiple recurring reminders
2026-03-04 13:18:13 -05:00
7933245ec3 Improve agent instructions and documentation
- Clarify when NOT to use message tool (simple acknowledgments, normal conversation)
- Add guidance for natural conversational responses
- Update cron tool documentation with better examples
- Improve scheduled tasks documentation in AGENTS.md
2026-03-03 13:10:59 -05:00
096d76430b Improve agent reliability and error handling
- Add timeout protection (120s) for LLM provider calls
- Skip memory consolidation for CLI mode to avoid blocking
- Add timeout protection for memory consolidation (120s)
- Improve error handling with better logging
- Add parameter type coercion before validation
- Allow None values for optional parameters in validation
- Fix type coercion for memory updates (handle dict responses)
2026-03-03 13:10:53 -05:00
d9919828c5 Fix cron scheduled tasks not executing
- Add auto-start functionality to cron service when jobs are added
  if service is not running and event loop is available
- Add 'reminder' field to CronPayload to distinguish between
  simple reminders (send message directly) and tasks (execute via agent)
- Update cron tool to accept 'reminder' parameter
- Fix callback logic to check reminder field: reminders send directly,
  tasks are processed through agent
- Ensures both 'remind me to X' and 'schedule a task to do X' work correctly
2026-03-03 13:09:44 -05:00
ac334e9cf7 Enhance ReadFileTool for improved file reading capabilities
- Added support for PDF file extraction using pdftotext, with error handling for extraction failures.
- Updated tool description to clarify usage and file type support.
- Improved error messages for binary and non-UTF-8 encoded files.
- Updated ExecTool description to emphasize the importance of using read_file for reading files before executing commands.
2026-02-24 11:28:24 -05:00
02cf7fb4da Add debugging improvements and litellm workaround
- Enhanced logging in agent loop for better debugging
- Added workaround for litellm's os.getcwd() issue when directory is deleted
- Improved tool result logging and iteration tracking
2026-02-23 14:35:59 -05:00
3b0598d689 Improve LLM reliability for data analysis tasks
- Enhanced exec tool description with specific pandas/CSV examples
- Added JSON tool call parsing in custom_provider for Ollama compatibility
- Added timeouts to prevent hanging on slow LLM responses
- Improved guidance for Excel/CSV operations to reduce LLM errors

Changes:
- nanobot/agent/tools/shell.py: Added detailed examples in tool description
- nanobot/providers/custom_provider.py: Added JSON parsing fallback and timeouts
2026-02-23 14:35:21 -05:00
e6b5ead3fd Merge origin/main into feature branch
- Merged latest 166 commits from origin/main
- Resolved conflicts in .gitignore, commands.py, schema.py, providers/__init__.py, and registry.py
- Kept both local providers (Ollama, AirLLM) and new providers from main
- Preserved transformers 4.39.3 compatibility fixes
- Combined error handling improvements with new features
2026-02-18 13:03:19 -05:00
9c858699f3 Improve web search and error handling
- Add DuckDuckGo search fallback when Brave API key is not available
  - Web search now works without requiring an API key
  - Falls back to DuckDuckGo if BRAVE_API_KEY is not set
  - Maintains backward compatibility with Brave API when key is provided

- Improve error handling in agent CLI command
  - Better exception handling with traceback display
  - Prevents crashes from showing incomplete error messages
  - Improves debugging experience
2026-02-18 12:41:11 -05:00
Re-bin
715b2db24b feat: stream intermediate progress to user during tool execution 2026-02-18 14:23:51 +00:00
Re-bin
c81cc07032 Merge branch 'main' into pr-747 2026-02-17 10:24:26 +00:00
Re-bin
1db05c881d fix: omit empty content in assistant messages 2026-02-17 08:59:05 +00:00
Re-bin
80d1ff69ad Merge branch 'main' into pr-748 2026-02-17 08:57:27 +00:00
Re-bin
6bae6a617f fix(cron): fix timezone display bug, add tz validation and skill docs 2026-02-17 08:30:52 +00:00
nano bot
56bc8b5677 fix: avoid sending empty content entries in assistant messages 2026-02-17 03:52:08 +00:00
jopo
ae903e983c fix(cron): improve timezone scheduling and tz propagation 2026-02-16 17:49:19 -08:00
Darye
0a2a9a77b7
Merge branch 'HKUDS:main' into telegram-media 2026-02-16 21:08:41 +01:00
Darye
23b7e1ef5e Handle media files (voice messages, audio, images, documents) on Telegram Channel 2026-02-16 16:29:03 +01:00
Re-bin
a219a91bc5 feat: support openclaw/clawhub skill metadata format 2026-02-16 13:42:33 +00:00
Re-bin
49fec3684a fix: use json_repair for robust LLM response parsing 2026-02-15 08:11:33 +00:00
Re-bin
52cf1da30a fix: store original MCP tool name, make close_mcp public 2026-02-15 07:00:27 +00:00
Re-bin
54d5f637e7 merge main into pr-554 2026-02-15 06:12:15 +00:00
Re-bin
f821e95d3c fix: wire max_tokens/temperature to all chat calls, clean up redundant comments 2026-02-14 01:40:37 +00:00
Re-bin
155fc48b29 merge: resolve conflict with main, keep extracted _run_agent_loop with temperature 2026-02-14 01:22:17 +00:00
Re-bin
2f2c55f921 fix: add missing comma and type annotation for temperature param 2026-02-14 01:13:49 +00:00
chengyongru
98a762452a fix: useasyncio.create_task to avoid block 2026-02-13 15:36:04 +08:00
chengyongru
740294fd74 fix: history messages should not be change[kvcache] 2026-02-13 15:10:07 +08:00
wymcmh
3e9f6d0b6b
Merge branch 'main' into fix/config-temperature 2026-02-13 13:07:37 +08:00
Xubin Ren
5c398c5faf
Merge pull request #567 from 3927o/feature/better-fallback-message
Add max iterations info to fallback message
2026-02-13 12:55:14 +08:00
Re-bin
903caaa642 feat: unified slash commands (/new, /help) across all channels 2026-02-13 03:30:21 +00:00
3927o
dbbbecb25c feat: improve fallback message when max iterations reached 2026-02-12 23:57:34 +08:00
Re-bin
94c21fc235 feat: redesign memory system — two-layer architecture with grep-based retrieval 2026-02-12 15:02:52 +00:00
lemon
a3599b97b9 fix: bug #370, support temperature configuration 2026-02-12 19:12:38 +08:00
Sergio Sánchez Vallés
61e9f7f58a
chore: revert unrelated changes, keep only MCP support 2026-02-12 10:17:44 +01:00
Sergio Sánchez Vallés
cb5964c201
feat(tools): add mcp support 2026-02-12 10:01:30 +01:00
Re-bin
de3324807f fix(subagent): add edit_file tool and time context to sub agent 2026-02-12 07:49:36 +00:00
Re-bin
7087947e0e feat(cron): add one-time 'at' schedule to skill docs and show timezone in system prompt 2026-02-12 06:50:44 +00:00
Re-bin
73935da95f Merge branch 'main' into pr-533 2026-02-12 06:36:49 +00:00
Re-bin
d335494212 feat: add interleaved chain-of-thought to agent loop 2026-02-12 06:25:25 +00:00
3927o
a66fa650a1 feat(cron): add 'at' parameter for one-time scheduled tasks 2026-02-12 11:06:57 +08:00
Re-bin
8626caff74 fix: prevent safety guard from blocking relative paths in exec tool 2026-02-10 07:39:15 +00:00
Re-bin
f3ab8066a7 fix: use websockets backend, simplify subtype check, add Slack docs 2026-02-09 11:39:13 +00:00
Re-bin
74e3c411a1 resolve merge conflicts: keep all channels and add slack 2026-02-09 11:17:07 +00:00
Re-bin
2931694eb8 fix: preserve reasoning_content in conversation history for thinking models 2026-02-08 18:37:41 +00:00
Re-bin
f7f812a177 feat: add /reset and /help commands for Telegram bot 2026-02-08 05:06:41 +00:00
Re-bin
572eab8237 feat: add AiHubMix provider support and refactor provider matching 2026-02-07 08:10:05 +00:00
Re-bin
943579b96a refactor(security): lift restrictToWorkspace to tools level 2026-02-06 09:28:08 +00:00