mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-02-16 08:16:06 +08:00
106 lines
2.8 KiB
Python
106 lines
2.8 KiB
Python
# Import base tool
|
|
from agent.tools.base_tool import BaseTool
|
|
from agent.tools.tool_manager import ToolManager
|
|
|
|
# Import basic tools (no external dependencies)
|
|
from agent.tools.calculator.calculator import Calculator
|
|
from agent.tools.current_time.current_time import CurrentTime
|
|
|
|
# Import file operation tools
|
|
from agent.tools.read.read import Read
|
|
from agent.tools.write.write import Write
|
|
from agent.tools.edit.edit import Edit
|
|
from agent.tools.bash.bash import Bash
|
|
from agent.tools.grep.grep import Grep
|
|
from agent.tools.find.find import Find
|
|
from agent.tools.ls.ls import Ls
|
|
|
|
# Import memory tools
|
|
from agent.tools.memory.memory_search import MemorySearchTool
|
|
from agent.tools.memory.memory_get import MemoryGetTool
|
|
|
|
# Import web tools
|
|
from agent.tools.web_fetch.web_fetch import WebFetch
|
|
|
|
# Import tools with optional dependencies
|
|
def _import_optional_tools():
|
|
"""Import tools that have optional dependencies"""
|
|
tools = {}
|
|
|
|
# Google Search (requires requests)
|
|
try:
|
|
from agent.tools.google_search.google_search import GoogleSearch
|
|
tools['GoogleSearch'] = GoogleSearch
|
|
except ImportError:
|
|
pass
|
|
|
|
# File Save (may have dependencies)
|
|
try:
|
|
from agent.tools.file_save.file_save import FileSave
|
|
tools['FileSave'] = FileSave
|
|
except ImportError:
|
|
pass
|
|
|
|
# Terminal (basic, should work)
|
|
try:
|
|
from agent.tools.terminal.terminal import Terminal
|
|
tools['Terminal'] = Terminal
|
|
except ImportError:
|
|
pass
|
|
|
|
return tools
|
|
|
|
# Load optional tools
|
|
_optional_tools = _import_optional_tools()
|
|
GoogleSearch = _optional_tools.get('GoogleSearch')
|
|
FileSave = _optional_tools.get('FileSave')
|
|
Terminal = _optional_tools.get('Terminal')
|
|
|
|
|
|
# Delayed import for BrowserTool
|
|
def _import_browser_tool():
|
|
try:
|
|
from agent.tools.browser.browser_tool import BrowserTool
|
|
return BrowserTool
|
|
except ImportError:
|
|
# Return a placeholder class that will prompt the user to install dependencies when instantiated
|
|
class BrowserToolPlaceholder:
|
|
def __init__(self, *args, **kwargs):
|
|
raise ImportError(
|
|
"The 'browser-use' package is required to use BrowserTool. "
|
|
"Please install it with 'pip install browser-use>=0.1.40'."
|
|
)
|
|
|
|
return BrowserToolPlaceholder
|
|
|
|
|
|
# Dynamically set BrowserTool
|
|
BrowserTool = _import_browser_tool()
|
|
|
|
# Export all tools (including optional ones that might be None)
|
|
__all__ = [
|
|
'BaseTool',
|
|
'ToolManager',
|
|
'Calculator',
|
|
'CurrentTime',
|
|
'Read',
|
|
'Write',
|
|
'Edit',
|
|
'Bash',
|
|
'Grep',
|
|
'Find',
|
|
'Ls',
|
|
'MemorySearchTool',
|
|
'MemoryGetTool',
|
|
'WebFetch',
|
|
# Optional tools (may be None if dependencies not available)
|
|
'GoogleSearch',
|
|
'FileSave',
|
|
'Terminal',
|
|
'BrowserTool'
|
|
]
|
|
|
|
"""
|
|
Tools module for Agent.
|
|
"""
|