mirror of
https://github.com/tcsenpai/agenticSeek.git
synced 2025-06-01 16:50:10 +00:00
78 lines
3.2 KiB
Python
Executable File
78 lines
3.2 KiB
Python
Executable File
#!/usr/bin python3
|
|
|
|
import sys
|
|
import argparse
|
|
import configparser
|
|
import asyncio
|
|
|
|
from sources.llm_provider import Provider
|
|
from sources.interaction import Interaction
|
|
from sources.agents import Agent, CoderAgent, CasualAgent, FileAgent, PlannerAgent, BrowserAgent, McpAgent
|
|
from sources.browser import Browser, create_driver
|
|
from sources.utility import pretty_print
|
|
|
|
import warnings
|
|
warnings.filterwarnings("ignore")
|
|
|
|
config = configparser.ConfigParser()
|
|
config.read('config.ini')
|
|
|
|
async def main():
|
|
pretty_print("Initializing...", color="status")
|
|
stealth_mode = config.getboolean('BROWSER', 'stealth_mode')
|
|
personality_folder = "jarvis" if config.getboolean('MAIN', 'jarvis_personality') else "base"
|
|
languages = config["MAIN"]["languages"].split(' ')
|
|
|
|
provider = Provider(provider_name=config["MAIN"]["provider_name"],
|
|
model=config["MAIN"]["provider_model"],
|
|
server_address=config["MAIN"]["provider_server_address"],
|
|
is_local=config.getboolean('MAIN', 'is_local'))
|
|
|
|
browser = Browser(
|
|
create_driver(headless=config.getboolean('BROWSER', 'headless_browser'), stealth_mode=stealth_mode),
|
|
anticaptcha_manual_install=stealth_mode
|
|
)
|
|
|
|
agents = [
|
|
CasualAgent(name=config["MAIN"]["agent_name"],
|
|
prompt_path=f"prompts/{personality_folder}/casual_agent.txt",
|
|
provider=provider, verbose=False),
|
|
CoderAgent(name="coder",
|
|
prompt_path=f"prompts/{personality_folder}/coder_agent.txt",
|
|
provider=provider, verbose=False),
|
|
FileAgent(name="File Agent",
|
|
prompt_path=f"prompts/{personality_folder}/file_agent.txt",
|
|
provider=provider, verbose=False),
|
|
BrowserAgent(name="Browser",
|
|
prompt_path=f"prompts/{personality_folder}/browser_agent.txt",
|
|
provider=provider, verbose=False, browser=browser),
|
|
PlannerAgent(name="Planner",
|
|
prompt_path=f"prompts/{personality_folder}/planner_agent.txt",
|
|
provider=provider, verbose=False, browser=browser),
|
|
#McpAgent(name="MCP Agent",
|
|
# prompt_path=f"prompts/{personality_folder}/mcp_agent.txt",
|
|
# provider=provider, verbose=False), # NOTE under development
|
|
]
|
|
|
|
interaction = Interaction(agents,
|
|
tts_enabled=config.getboolean('MAIN', 'speak'),
|
|
stt_enabled=config.getboolean('MAIN', 'listen'),
|
|
recover_last_session=config.getboolean('MAIN', 'recover_last_session'),
|
|
langs=languages
|
|
)
|
|
try:
|
|
while interaction.is_active:
|
|
interaction.get_user()
|
|
if await interaction.think():
|
|
interaction.show_answer()
|
|
interaction.speak_answer()
|
|
except Exception as e:
|
|
if config.getboolean('MAIN', 'save_session'):
|
|
interaction.save_session()
|
|
raise e
|
|
finally:
|
|
if config.getboolean('MAIN', 'save_session'):
|
|
interaction.save_session()
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main()) |