simple_agent.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from agno.agent import Agent
  2. from agno.memory.v2.memory import Memory
  3. from agno.memory.v2.db.sqlite import SqliteMemoryDb
  4. from agno.models.openai import OpenAILike
  5. from agno.storage.sqlite import SqliteStorage
  6. import os
  7. from textwrap import dedent
  8. from dotenv import load_dotenv
  9. load_dotenv()
  10. # Initialize OpenLIT instrumentation
  11. from langfuse._client.client import Langfuse
  12. import openlit
  13. langfuse = Langfuse(
  14. public_key=os.getenv("LANGFUSE_PUBLIC_KEY"),
  15. secret_key=os.getenv("LANGFUSE_SECRET_KEY"),
  16. host=os.getenv("LANGFUSE_HOST"),
  17. )
  18. openlit.init(tracer=langfuse._otel_tracer, disable_batch=True)
  19. agent_storage = "./tmp/agents.db"
  20. simple_info_agent_prompt = dedent('''
  21. 你是一个专业的信息收集助手。你的任务是收集用户的姓名、年龄和用户感兴趣的行业。
  22. 信息收集策略:
  23. 1. 使用开放式问题引导用户提供更多信息
  24. 2. 对模糊的信息进行澄清和确认
  25. 3. 根据上下文,智能地推断和补充相关信息
  26. 4. 保持对话的自然性和连贯性
  27. 对话要求:
  28. 1. 保持友好、专业的语调
  29. 2. 每次回复要简洁明了
  30. 3. 适时总结已收集的信息
  31. 4. 当用户询问一些其他问题时,请礼貌地告诉用户,你是一个信息收集助手,不回答其它不相关问题。提醒用户还没收集完成。
  32. ''')
  33. memory = Memory(
  34. model=OpenAILike(
  35. id="qwen3-32b",
  36. api_key=os.getenv("BAILIAN_API_KEY"),
  37. base_url=os.getenv("BAILIAN_API_BASE_URL"),
  38. request_params={"extra_body": {"enable_thinking": False}},
  39. ),
  40. db=SqliteMemoryDb(table_name="simple_info_agent_memory", db_file=agent_storage),
  41. )
  42. simple_info_agent = Agent(
  43. name="SimpleInfoAgent",
  44. model=OpenAILike(
  45. id="qwen3-32b",
  46. api_key=os.getenv("BAILIAN_API_KEY"),
  47. base_url=os.getenv("BAILIAN_API_BASE_URL"),
  48. request_params={"extra_body": {"enable_thinking": False}},
  49. ),
  50. instructions=simple_info_agent_prompt,
  51. storage=SqliteStorage(table_name="simple_info_agent", db_file=agent_storage),
  52. # 记忆
  53. memory=memory,
  54. add_datetime_to_instructions=True,
  55. add_history_to_messages=True,
  56. num_history_responses=5,
  57. markdown=True,
  58. )