Spaces:
Sleeping
Sleeping
from typing import List | |
from langchain.agents import AgentExecutor, create_openai_tools_agent | |
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder | |
from langchain_core.tools import BaseTool | |
from langchain_openai import ChatOpenAI | |
def create_agent( | |
llm: ChatOpenAI, | |
tools: List[BaseTool], | |
system_prompt: str | |
) -> AgentExecutor: | |
"""Create an agent executor with given tools and a system prompt.""" | |
prompt = ChatPromptTemplate.from_messages( | |
[ | |
("system", system_prompt), | |
MessagesPlaceholder(variable_name="messages"), | |
MessagesPlaceholder(variable_name="agent_scratchpad"), | |
] | |
) | |
agent = create_openai_tools_agent(llm, tools, prompt) | |
executor = AgentExecutor(agent=agent, tools=tools) | |
return executor |