| | """ |
| | **Agent** is a class that uses an LLM to choose a sequence of actions to take. |
| | |
| | In Chains, a sequence of actions is hardcoded. In Agents, |
| | a language model is used as a reasoning engine to determine which actions |
| | to take and in which order. |
| | |
| | Agents select and use **Tools** and **Toolkits** for actions. |
| | |
| | **Class hierarchy:** |
| | |
| | .. code-block:: |
| | |
| | BaseSingleActionAgent --> LLMSingleActionAgent |
| | OpenAIFunctionsAgent |
| | XMLAgent |
| | Agent --> <name>Agent # Examples: ZeroShotAgent, ChatAgent |
| | |
| | |
| | BaseMultiActionAgent --> OpenAIMultiFunctionsAgent |
| | |
| | |
| | **Main helpers:** |
| | |
| | .. code-block:: |
| | |
| | AgentType, AgentExecutor, AgentOutputParser, AgentExecutorIterator, |
| | AgentAction, AgentFinish |
| | |
| | """ |
| |
|
| | from pathlib import Path |
| | from typing import TYPE_CHECKING, Any |
| |
|
| | from langchain_core._api.path import as_import_path |
| | from langchain_core.tools import Tool |
| | from langchain_core.tools.convert import tool |
| |
|
| | from langchain._api import create_importer |
| | from langchain.agents.agent import ( |
| | Agent, |
| | AgentExecutor, |
| | AgentOutputParser, |
| | BaseMultiActionAgent, |
| | BaseSingleActionAgent, |
| | LLMSingleActionAgent, |
| | ) |
| | from langchain.agents.agent_iterator import AgentExecutorIterator |
| | from langchain.agents.agent_toolkits.vectorstore.base import ( |
| | create_vectorstore_agent, |
| | create_vectorstore_router_agent, |
| | ) |
| | from langchain.agents.agent_types import AgentType |
| | from langchain.agents.conversational.base import ConversationalAgent |
| | from langchain.agents.conversational_chat.base import ConversationalChatAgent |
| | from langchain.agents.initialize import initialize_agent |
| | from langchain.agents.json_chat.base import create_json_chat_agent |
| | from langchain.agents.loading import load_agent |
| | from langchain.agents.mrkl.base import MRKLChain, ZeroShotAgent |
| | from langchain.agents.openai_functions_agent.base import ( |
| | OpenAIFunctionsAgent, |
| | create_openai_functions_agent, |
| | ) |
| | from langchain.agents.openai_functions_multi_agent.base import OpenAIMultiFunctionsAgent |
| | from langchain.agents.openai_tools.base import create_openai_tools_agent |
| | from langchain.agents.react.agent import create_react_agent |
| | from langchain.agents.react.base import ReActChain, ReActTextWorldAgent |
| | from langchain.agents.self_ask_with_search.base import ( |
| | SelfAskWithSearchChain, |
| | create_self_ask_with_search_agent, |
| | ) |
| | from langchain.agents.structured_chat.base import ( |
| | StructuredChatAgent, |
| | create_structured_chat_agent, |
| | ) |
| | from langchain.agents.tool_calling_agent.base import create_tool_calling_agent |
| | from langchain.agents.xml.base import XMLAgent, create_xml_agent |
| |
|
| | if TYPE_CHECKING: |
| | from langchain_community.agent_toolkits.json.base import create_json_agent |
| | from langchain_community.agent_toolkits.load_tools import ( |
| | get_all_tool_names, |
| | load_huggingface_tool, |
| | load_tools, |
| | ) |
| | from langchain_community.agent_toolkits.openapi.base import create_openapi_agent |
| | from langchain_community.agent_toolkits.powerbi.base import create_pbi_agent |
| | from langchain_community.agent_toolkits.powerbi.chat_base import ( |
| | create_pbi_chat_agent, |
| | ) |
| | from langchain_community.agent_toolkits.spark_sql.base import create_spark_sql_agent |
| | from langchain_community.agent_toolkits.sql.base import create_sql_agent |
| |
|
| | DEPRECATED_CODE = [ |
| | "create_csv_agent", |
| | "create_pandas_dataframe_agent", |
| | "create_spark_dataframe_agent", |
| | "create_xorbits_agent", |
| | ] |
| |
|
| | |
| | |
| | |
| | DEPRECATED_LOOKUP = { |
| | "create_json_agent": "langchain_community.agent_toolkits.json.base", |
| | "create_openapi_agent": "langchain_community.agent_toolkits.openapi.base", |
| | "create_pbi_agent": "langchain_community.agent_toolkits.powerbi.base", |
| | "create_pbi_chat_agent": "langchain_community.agent_toolkits.powerbi.chat_base", |
| | "create_spark_sql_agent": "langchain_community.agent_toolkits.spark_sql.base", |
| | "create_sql_agent": "langchain_community.agent_toolkits.sql.base", |
| | "load_tools": "langchain_community.agent_toolkits.load_tools", |
| | "load_huggingface_tool": "langchain_community.agent_toolkits.load_tools", |
| | "get_all_tool_names": "langchain_community.agent_toolkits.load_tools", |
| | } |
| |
|
| | _import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) |
| |
|
| |
|
| | def __getattr__(name: str) -> Any: |
| | """Get attr name.""" |
| | if name in DEPRECATED_CODE: |
| | |
| | HERE = Path(__file__).parents[1] |
| | relative_path = as_import_path( |
| | Path(__file__).parent, suffix=name, relative_to=HERE |
| | ) |
| | old_path = "langchain." + relative_path |
| | new_path = "langchain_experimental." + relative_path |
| | raise ImportError( |
| | f"{name} has been moved to langchain experimental. " |
| | "See https://github.com/langchain-ai/langchain/discussions/11680" |
| | "for more information.\n" |
| | f"Please update your import statement from: `{old_path}` to `{new_path}`." |
| | ) |
| | return _import_attribute(name) |
| |
|
| |
|
| | __all__ = [ |
| | "Agent", |
| | "AgentExecutor", |
| | "AgentExecutorIterator", |
| | "AgentOutputParser", |
| | "AgentType", |
| | "BaseMultiActionAgent", |
| | "BaseSingleActionAgent", |
| | "ConversationalAgent", |
| | "ConversationalChatAgent", |
| | "LLMSingleActionAgent", |
| | "MRKLChain", |
| | "OpenAIFunctionsAgent", |
| | "OpenAIMultiFunctionsAgent", |
| | "ReActChain", |
| | "ReActTextWorldAgent", |
| | "SelfAskWithSearchChain", |
| | "StructuredChatAgent", |
| | "ZeroShotAgent", |
| | "create_json_agent", |
| | "create_openapi_agent", |
| | "create_pbi_agent", |
| | "create_pbi_chat_agent", |
| | "create_spark_sql_agent", |
| | "create_sql_agent", |
| | "create_vectorstore_agent", |
| | "create_vectorstore_router_agent", |
| | "get_all_tool_names", |
| | "initialize_agent", |
| | "load_agent", |
| | "load_huggingface_tool", |
| | "load_tools", |
| | "XMLAgent", |
| | "create_openai_functions_agent", |
| | "create_xml_agent", |
| | "create_react_agent", |
| | "create_openai_tools_agent", |
| | "create_self_ask_with_search_agent", |
| | "create_json_chat_agent", |
| | "create_structured_chat_agent", |
| | "create_tool_calling_agent", |
| | "Tool", |
| | "tool", |
| | ] |
| |
|