| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- """
- 内容寻找 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())
|