2111964d8b
Подключает stub-инструменты и последовательный Agno workflow в CLI и AgentOS, чтобы запускать сценарий по URL и получать структурированный JSON-результат.
65 lines
1.6 KiB
Python
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())
|