Replies: 5 comments
-
|
Here's my take on it:
|
Beta Was this translation helpful? Give feedback.
-
|
Hello @araujof I think this is overall a very good proposal. To answer your questions:
Let me ask a couple of questions:
|
Beta Was this translation helpful? Give feedback.
-
|
Thanks much for the comments! I updated the proposal and initial PR to reflect the discussion about the runnable output type.
|
Beta Was this translation helpful? Give feedback.
-
|
@araujof thank you for your answer: it clarifies my doubts. The |
Beta Was this translation helpful? Give feedback.
-
|
The proposal has been implemented and documented. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi BeeAi community, I'd love to hear your thoughts on this proposal.
Thanks to @jenna-winkler, @Tomas2D, @antonpibm, @michael-desmond, @terylt, @imolloy for your inputs and help with this proposal!
Current Challenge
BeeAI Framework currently implements many objects that can be invoked with a
runmethod, but these implementations are inconsistent and lack a unified interface. This creates several issues:runmethods vary across objects, even for objects of the same kind*args: Any, **kwargs: Anypatterns that provide flexibility but sacrifice:BaseAgentcurrently defines:This approach limits discoverability, makes the codebase harder to maintain, and places a burden on developers to learn and manage heterogeneous abstractions.
Proposal
Introduce a unified interface and set of abstractions for "runnables" - components that encapsulate executable logic—across various modules. The goal is to standardize the interface, reduce boilerplate, and improve type safety and extensibility.
The new
Runnableinterface defines explicit types forinput,output, and executionoptionsfor runnable objects.Key Points:
runMethod: Standardizes therunmethod signature across modules.inputparameter is always the first and only positional argument.RunContext.enter()and handler wrapping.Reference: proposal.
Questions
Runnableinterface. Should tools subclassRunnable, or have their own separate interface? One issue to consider is that tools can have arbitrary input/output types.Runnable'sinputbe typed asstr | list[AnyMessage]?RunnableOutput'soutputbe alist[AnyMessage]?Beta Was this translation helpful? Give feedback.
All reactions