# agents/cli.py | |
import argparse | |
import yaml | |
import sys | |
from agent import main as cli_main, run_agent, run_mcp_agent | |
from repl import run_repl | |
def load_config(path="config.yml"): | |
try: | |
with open(path, "r", encoding="utf-8") as f: | |
return yaml.safe_load(f) | |
except FileNotFoundError: | |
print(f"[Error] Config file not found: {path}") | |
sys.exit(1) | |
except yaml.YAMLError as e: | |
print(f"[Error] Failed to parse YAML config: {e}") | |
sys.exit(1) | |
def launch(): | |
parser = argparse.ArgumentParser(description="HMP-Agent Launcher") | |
parser.add_argument("--mode", choices=["interactive", "cli", "mcp"], default=None, | |
help="Режим запуска агента") | |
parser.add_argument("--config", default="config.yml", help="Путь к конфигурационному файлу") | |
args = parser.parse_args() | |
config = load_config(args.config) | |
mode = args.mode or config.get("agent_mode", "cli") | |
if mode == "interactive": | |
run_repl(config) | |
elif mode == "cli": | |
cli_main() # запускается agent.py в CLI-режиме | |
elif mode == "mcp": | |
run_mcp_agent(config) | |
else: | |
print(f"[Error] Неизвестный режим: {mode}") | |
sys.exit(1) | |
if __name__ == "__main__": | |
launch() | |