agent_utils.py 1.2 KB

123456789101112131415161718192021222324
  1. import json
  2. from pqai_agent.agents.simple_chat_agent import SimpleOpenAICompatibleChatAgent
  3. from pqai_agent.data_models.agent_configuration import AgentConfiguration
  4. from pqai_agent.toolkit import get_tools
  5. from pqai_agent.toolkit.sub_agent_toolkit import SubAgentToolkit
  6. def create_agent_from_config(agent_config: AgentConfiguration, session_maker) -> SimpleOpenAICompatibleChatAgent:
  7. tools = get_tools(json.loads(agent_config.tools))
  8. sub_agent_ids = json.loads(agent_config.sub_agents)
  9. if sub_agent_ids:
  10. # 查询子Agent配置
  11. with session_maker() as session:
  12. sub_agent_configs = session.query(AgentConfiguration).filter(
  13. AgentConfiguration.id.in_(sub_agent_ids)).all()
  14. # 将子Agent配置转换为工具
  15. for sub_agent_config in sub_agent_configs:
  16. sub_agent_tool = SubAgentToolkit.create_tool_from_agent(sub_agent_config)
  17. tools.append(sub_agent_tool)
  18. chat_agent = SimpleOpenAICompatibleChatAgent(model=agent_config.execution_model,
  19. system_prompt=agent_config.system_prompt,
  20. tools=tools)
  21. return chat_agent