aiq.agent.rewoo_agent.agent#

Attributes#

Classes#

ReWOOGraphState

State schema for the ReWOO Agent Graph

ReWOOAgentGraph

Configurable LangGraph ReWOO Agent. A ReWOO Agent performs reasoning by interacting with other objects or tools

Module Contents#

logger#
class ReWOOGraphState(/, **data: Any)#

Bases: pydantic.BaseModel

State schema for the ReWOO Agent Graph

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

task: langchain_core.messages.human.HumanMessage = None#
plan: langchain_core.messages.ai.AIMessage = None#
steps: langchain_core.messages.ai.AIMessage = None#
intermediate_results: dict[str, langchain_core.messages.tool.ToolMessage] = None#
result: langchain_core.messages.ai.AIMessage = None#
class ReWOOAgentGraph(
llm: langchain_core.language_models.BaseChatModel,
planner_prompt: langchain_core.prompts.chat.ChatPromptTemplate,
solver_prompt: langchain_core.prompts.chat.ChatPromptTemplate,
tools: list[langchain_core.tools.BaseTool],
use_tool_schema: bool = True,
callbacks: list[langchain_core.callbacks.base.AsyncCallbackHandler] = None,
detailed_logs: bool = False,
)#

Bases: aiq.agent.base.BaseAgent

Configurable LangGraph ReWOO Agent. A ReWOO Agent performs reasoning by interacting with other objects or tools and utilizes their outputs to make decisions. Supports retrying on output parsing errors. Argument “detailed_logs” toggles logging of inputs, outputs, and intermediate steps.

planner_prompt#
solver_prompt#
tools_dict#
_get_tool(tool_name)#
static _get_current_step(state: ReWOOGraphState) int#
static _parse_planner_output(
planner_output: str,
) langchain_core.messages.ai.AIMessage#
static _replace_placeholder(
placeholder: str,
tool_input: str | dict,
tool_output: str | dict,
) str | dict#
static _parse_tool_input(tool_input: str | dict)#
async planner_node(state: ReWOOGraphState)#
async executor_node(state: ReWOOGraphState)#
async solver_node(state: ReWOOGraphState)#
async conditional_edge(state: ReWOOGraphState)#
async _build_graph(state_schema)#
async build_graph()#
static validate_planner_prompt(planner_prompt: str) bool#
static validate_solver_prompt(solver_prompt: str) bool#