RequirementsAgent as proposed basis for all agents #872
imolloy
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
We recently released our
RequirementAgent, an experimental new agent that is flexible and gives developers more control over their agents' behavior, making them more reliable. Depending on user feedback, we plan to deprecate our other agents (ReActAgent,ToolCallingAgent, etc.) in favor of this simpler, and more flexible design.Why is this design necessary
Agent design is often a balance autonomy, placing the agent and the LLM in charge, and control, where the developer more strictly defines the agent behavior at increased development cost and reduced autonomy, such as by defining complex state graphs. Many developers will craft increasingly complex prompts instructing the agent on its goals, order of tasks, desired output formats, and other constraints. The results are often poor: instructions can be ignored or misinterpreted, tools skipped, and actions executed out-of-order, excessively, or not at all, and behavior may be vary significantly from one model to the next.
Requirements Agent Approach
The
RequirementsAgenttakes a simple approach: it adds declarative statements that limit when a tool can—and cannot—be executed, and allows forcing tool call in certain circumstances. Within these constrains, the agent maintains it's autonomy, planning, and reasoning capabilities and can freely adapt to the evolving execution trajectory. At ever step, the agent is informed which tools are available in the current state.We like to think of these requirements as constraints of obligations for the agent, and provide a powerful abstraction. Take a look at the documentation to become more familiar with this new agent class, and let us know what you think of the current design and help us improve it. Here are some open questions we're currently thinking about:
Open questions
force_beforethat could rollback and replay the state)priority?readOnly=FalserequiresAskPermissionRequirementidempotent=Trueimpliescan_be_called_in_a_row=FalseBeta Was this translation helpful? Give feedback.
All reactions