Files
prisma/src/main.py
T
Barabashka 2111964d8b Добавить MVP workflow запуска сценария поиска первоисточника.
Подключает stub-инструменты и последовательный Agno workflow в CLI и AgentOS, чтобы запускать сценарий по URL и получать структурированный JSON-результат.
2026-04-21 16:24:52 +03:00

65 lines
1.6 KiB
Python

import argparse
import asyncio
import json
from dotenv import load_dotenv
from src.agent_runner import run_agent
from src.observability import init_phoenix_tracing
from src.workflow_runner import run_news_source_workflow
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
description="Run base chat agent.",
)
parser.add_argument(
"--message",
help="Single message mode. If omitted, starts interactive chat.",
)
parser.add_argument(
"--workflow-input-url",
help="Run workflow mode for a news URL and print run result as JSON.",
)
parser.add_argument(
"--scenario-id",
default="news_source_discovery_v1",
help="Scenario id for workflow mode.",
)
return parser
async def _main() -> None:
load_dotenv()
init_phoenix_tracing()
args = build_parser().parse_args()
if args.workflow_input_url:
run_result = await run_news_source_workflow(
input_url=args.workflow_input_url,
scenario_id=args.scenario_id,
)
print(json.dumps(run_result, ensure_ascii=False, indent=2))
return
if args.message:
result = await run_agent(args.message)
print(result)
return
print("Chat mode started. Type 'exit' or 'quit' to stop.")
while True:
user_message = input("you> ").strip()
if not user_message:
continue
if user_message.lower() in {"exit", "quit"}:
print("Bye.")
break
result = await run_agent(user_message)
print(f"agent> {result}")
if __name__ == "__main__":
asyncio.run(_main())