run.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. """
  2. 内容寻找 Agent
  3. 使用示例:
  4. python run.py
  5. """
  6. import asyncio
  7. import logging
  8. import sys
  9. from pathlib import Path
  10. sys.path.insert(0, str(Path(__file__).parent.parent.parent))
  11. from dotenv import load_dotenv
  12. load_dotenv()
  13. import core
  14. # 配置日志
  15. log_dir = Path(__file__).parent / '.cache'
  16. log_dir.mkdir(exist_ok=True)
  17. logging.basicConfig(
  18. level=logging.INFO,
  19. format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
  20. handlers=[
  21. logging.FileHandler(log_dir / 'agent.log'),
  22. logging.StreamHandler()
  23. ]
  24. )
  25. logger = logging.getLogger(__name__)
  26. async def main():
  27. """主函数"""
  28. try:
  29. # 使用 core.py 的共享逻辑,启用流式输出
  30. result = await core.run_agent(query=None, stream_output=True)
  31. if result["status"] == "completed":
  32. print(f"\n[完成] trace_id={result['trace_id']}")
  33. else:
  34. print(f"\n[失败] trace_id={result.get('trace_id')}, 错误: {result.get('error')}")
  35. sys.exit(1)
  36. except KeyboardInterrupt:
  37. print("\n用户中断")
  38. except Exception as e:
  39. logger.error(f"执行失败: {e}", exc_info=True)
  40. print(f"\n执行失败: {e}")
  41. sys.exit(1)
  42. if __name__ == "__main__":
  43. asyncio.run(main())