create_self_ask_with_search_agent() — langchain Function Reference
Architecture documentation for the create_self_ask_with_search_agent() function in base.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD b53efa09_8814_c578_b880_c924cff3e16c["create_self_ask_with_search_agent()"] 1fab5269_943e_e7a5_4729_eee14e04448a["base.py"] b53efa09_8814_c578_b880_c924cff3e16c -->|defined in| 1fab5269_943e_e7a5_4729_eee14e04448a style b53efa09_8814_c578_b880_c924cff3e16c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain/langchain_classic/agents/self_ask_with_search/base.py lines 97–216
def create_self_ask_with_search_agent(
llm: BaseLanguageModel,
tools: Sequence[BaseTool],
prompt: BasePromptTemplate,
) -> Runnable:
"""Create an agent that uses self-ask with search prompting.
Args:
llm: LLM to use as the agent.
tools: List of tools. Should just be of length 1, with that tool having
name `Intermediate Answer`
prompt: The prompt to use, must have input key `agent_scratchpad` which will
contain agent actions and tool outputs.
Returns:
A Runnable sequence representing an agent. It takes as input all the same input
variables as the prompt passed in does. It returns as output either an
AgentAction or AgentFinish.
Examples:
```python
from langchain_classic import hub
from langchain_anthropic import ChatAnthropic
from langchain_classic.agents import (
AgentExecutor,
create_self_ask_with_search_agent,
)
prompt = hub.pull("hwchase17/self-ask-with-search")
model = ChatAnthropic(model="claude-3-haiku-20240307")
tools = [...] # Should just be one tool with name `Intermediate Answer`
agent = create_self_ask_with_search_agent(model, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools)
agent_executor.invoke({"input": "hi"})
```
Prompt:
The prompt must have input key `agent_scratchpad` which will
contain agent actions and tool outputs as a string.
Here's an example:
```python
from langchain_core.prompts import PromptTemplate
template = '''Question: Who lived longer, Muhammad Ali or Alan Turing?
Are follow up questions needed here: Yes.
Follow up: How old was Muhammad Ali when he died?
Intermediate answer: Muhammad Ali was 74 years old when he died.
Follow up: How old was Alan Turing when he died?
Intermediate answer: Alan Turing was 41 years old when he died.
So the final answer is: Muhammad Ali
Question: When was the founder of craigslist born?
Are follow up questions needed here: Yes.
Follow up: Who was the founder of craigslist?
Intermediate answer: Craigslist was founded by Craig Newmark.
Follow up: When was Craig Newmark born?
Intermediate answer: Craig Newmark was born on December 6, 1952.
So the final answer is: December 6, 1952
Question: Who was the maternal grandfather of George Washington?
Are follow up questions needed here: Yes.
Follow up: Who was the mother of George Washington?
Intermediate answer: The mother of George Washington was Mary Ball Washington.
Follow up: Who was the father of Mary Ball Washington?
Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
So the final answer is: Joseph Ball
Question: Are both the directors of Jaws and Casino Royale from the same country?
Are follow up questions needed here: Yes.
Follow up: Who is the director of Jaws?
Intermediate answer: The director of Jaws is Steven Spielberg.
Follow up: Where is Steven Spielberg from?
Intermediate answer: The United States.
Follow up: Who is the director of Casino Royale?
Intermediate answer: The director of Casino Royale is Martin Campbell.
Follow up: Where is Martin Campbell from?
Domain
Subdomains
Source
Frequently Asked Questions
What does create_self_ask_with_search_agent() do?
create_self_ask_with_search_agent() is a function in the langchain codebase, defined in libs/langchain/langchain_classic/agents/self_ask_with_search/base.py.
Where is create_self_ask_with_search_agent() defined?
create_self_ask_with_search_agent() is defined in libs/langchain/langchain_classic/agents/self_ask_with_search/base.py at line 97.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free