| | |
| |
|
| | 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() |
| |
|