There is no clear intuitive separation between abstractions such as
- Agent vs Task
- within an Agent** - Goal vs. Backstory.
- What logic or intent belongs intrinsically to the Agent (via role, goal, backstory), versus what should be expressed in the Task description? In many examples throughout the course, there is significant overlap. e.g. in Module 1 graded notebook, Part of task says
review_security = Task(
description=(
. . .
"Use the SerperDevTool to find the most relevant security best practices from OWASP "
“and pass the URLs to the ScrapeWebsiteTool to get detailed information.”
),
It doesn’t make sense to me why you are defining what tool to use in the TASK abstraction. What tool to use for a given task is something that AGENT should figure out!!! Why are you putting that in the TASK? That should be put in the AGENT abstraction!
Analogically,
Task = Join two pieces of wood.
Agent = Figures out, I need to use screw, hammer, etc. TO DO THIS GIVEN TASK
There is an obvious lack of semantic separation between these abstractions, which is very confusing.
-
Encoding behavior in a Task like shown in the lecture becomes redundant or conflicting with the Agent’s goal or backstory.
-
How to avoid duplication or ambiguity when both abstractions can influence reasoning and behavior?
Let me illustrate another instance of the same 'Lack of distinction between Agent and Task abstractions problem. Think of a Guardrail. Intuitively a guardrail is meant to control an AGENT (not a TASK) by selectively blocking its output. Therefore intuitively guardrails are meant to be applied to Agents, so it doesn’t make sense why you’d pass guardrail to TASK instead of AGENT abstraction. The framework is supposed to make it intuitively easy for developers to put these pieces together . Here the intuitive hotchpotch between Agent and Task abstractions is making it more confusing.
As an ML engineer looking to learn this framework, I need proper UNAMBIGUOUS recipie for drawing a distinction/boundary between these abstractions that matches real life developer intuition.
