Skip to content

Commit b5571dc

Browse files
add max_subtasks to agent (#1973)
* add max_subtasks to agent * (attempt to) fix type checking issue * only provide max_subtasks kwarg to PromptTask if it's set * default max_subtasks to None * type checker friendly version
1 parent 18b3a49 commit b5571dc

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

griptape/structures/agent.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class Agent(Structure):
3131
output_schema: Optional[Union[Schema, type[BaseModel]]] = field(default=None, kw_only=True)
3232
tools: list[BaseTool] = field(factory=list, kw_only=True)
3333
max_meta_memory_entries: Optional[int] = field(default=20, kw_only=True)
34+
max_subtasks: Optional[int] = field(default=None, kw_only=True)
3435
fail_fast: bool = field(default=False, kw_only=True)
3536
_tasks: list[Union[BaseTask, list[BaseTask]]] = field(
3637
factory=list, kw_only=True, alias="tasks", metadata={"serializable": True}
@@ -101,12 +102,16 @@ def _init_task(self) -> None:
101102
else:
102103
prompt_driver = self.prompt_driver
103104

104-
task = PromptTask(
105-
self.input,
106-
prompt_driver=prompt_driver,
107-
tools=self.tools,
108-
output_schema=self.output_schema,
109-
max_meta_memory_entries=self.max_meta_memory_entries,
110-
)
105+
task_kwargs = {
106+
"prompt_driver": prompt_driver,
107+
"tools": self.tools,
108+
"output_schema": self.output_schema,
109+
"max_meta_memory_entries": self.max_meta_memory_entries,
110+
}
111+
112+
if self.max_subtasks is not None:
113+
task_kwargs["max_subtasks"] = self.max_subtasks
114+
115+
task = PromptTask(self.input, **task_kwargs)
111116

112117
self.add_task(task)

0 commit comments

Comments
 (0)