""" 内容寻找 Agent 运行入口 使用示例: python run.py """ import asyncio import logging from pathlib import Path from agent.core.runner import AgentRunner, RunConfig from agent.trace.store import FileSystemTraceStore from agent.llm import create_openrouter_llm_call from agent.memory.stores import FileSystemMemoryStore from agent import SearchRequest, ContentFinderAgent # 导入工具(确保工具被注册) from tools import crawler, content_eval, feedback logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) async def main(): """主函数""" # 初始化存储 base_path = Path(__file__).parent / ".cache" trace_store = FileSystemTraceStore(base_path=str(base_path / "traces")) memory_store = FileSystemMemoryStore(base_path=str(base_path / "memory")) # 初始化LLM llm_call = create_openrouter_llm_call( model="anthropic/claude-sonnet-4.5" ) # 初始化Runner runner = AgentRunner( llm_call=llm_call, trace_store=trace_store, memory_store=memory_store, skills_dir=str(Path(__file__).parent / "skills"), ) # 初始化ContentFinderAgent agent = ContentFinderAgent( runner=runner, trace_store=trace_store, memory_store=memory_store, ) # 示例1:搜索内容 logger.info("=== 示例1:搜索美食类视频内容 ===") search_request = SearchRequest( keywords=["美食", "探店", "美食推荐"], tags=["美食", "探店"], platforms=["douyin", "kuaishou"], filters={ "min_views": 10000, "min_likes": 500, }, max_results=20, ) results = await agent.search_content(search_request) logger.info(f"找到 {len(results)} 条内容") # 示例2:收集运营反馈 if results: logger.info("\n=== 示例2:收集运营反馈 ===") first_content = results[0] feedback = await agent.collect_feedback( content_id=first_content.content_id, rating="excellent", notes="内容质量很高,符合平台调性", operator_id="operator_001", ) logger.info(f"反馈已记录:{feedback}") # 示例3:更新内容表现 if results: logger.info("\n=== 示例3:更新内容表现 ===") from agent import ContentPerformance from datetime import datetime performance = ContentPerformance( content_id=first_content.content_id, platform_views=150000, platform_likes=8000, platform_shares=500, internal_views=5000, internal_engagement=0.15, conversion_rate=0.08, update_time=datetime.now(), ) await agent.update_performance( content_id=first_content.content_id, performance=performance, ) logger.info("表现数据已更新") # 示例4:优化搜索策略 logger.info("\n=== 示例4:优化搜索策略 ===") strategy = await agent.optimize_strategy() logger.info(f"优化后的策略:{strategy}") if __name__ == "__main__": asyncio.run(main())