forked from Archives/langchain
[agent_executor] convenience func: lookup tool by name (#2001)
A quick convenience function to lookup a tool by name Co-authored-by: blob42 <spike@w530>
This commit is contained in:
parent
4be2f9d75a
commit
b7f392fdd6
@ -363,6 +363,10 @@ class AgentExecutor(Chain, BaseModel):
|
||||
else:
|
||||
return self.agent.return_values
|
||||
|
||||
def lookup_tool(self, name: str) -> BaseTool:
|
||||
"""Lookup tool by name."""
|
||||
return {tool.name: tool for tool in self.tools}[name]
|
||||
|
||||
def _should_continue(self, iterations: int) -> bool:
|
||||
if self.max_iterations is None:
|
||||
return True
|
||||
|
@ -289,3 +289,25 @@ def test_agent_with_new_prefix_suffix() -> None:
|
||||
prompt_str = agent.agent.llm_chain.prompt.template
|
||||
assert prompt_str.startswith(prefix), "Prompt does not start with prefix"
|
||||
assert prompt_str.endswith(suffix), "Prompt does not end with suffix"
|
||||
|
||||
|
||||
def test_agent_lookup_tool() -> None:
|
||||
"""Test agent lookup tool."""
|
||||
fake_llm = FakeListLLM(
|
||||
responses=["FooBarBaz\nAction: Search\nAction Input: misalignment"]
|
||||
)
|
||||
tools = [
|
||||
Tool(
|
||||
name="Search",
|
||||
func=lambda x: x,
|
||||
description="Useful for searching",
|
||||
return_direct=True,
|
||||
),
|
||||
]
|
||||
agent = initialize_agent(
|
||||
tools=tools,
|
||||
llm=fake_llm,
|
||||
agent="zero-shot-react-description",
|
||||
)
|
||||
|
||||
assert agent.lookup_tool("Search") == tools[0]
|
||||
|
Loading…
Reference in New Issue
Block a user