|
|
|
|
|
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() |
|
|
|
elif mode == "mcp": |
|
run_mcp_agent(config) |
|
|
|
else: |
|
print(f"[Error] Неизвестный режим: {mode}") |
|
sys.exit(1) |
|
|
|
if __name__ == "__main__": |
|
launch() |
|
|