> The library's architecture emphasizes extensibility and transparency, avoiding the accidental complexity often introduced by heavier frameworks that obscure crucial implementation details.
Can you give examples of crucial obscure implementations compared to your approach?
The main example lies in our core architecture, which uses just three fundamental abstractions: a code executor, a model, and the agent itself (see https://github.com/gradion-ai/freeact/blob/main/freeact/exam...). All actions are expressed through executable Python code (that you can easily inspect) rather than through multiple abstraction layers.
While other libraries or frameworks may offer convenience through extensive abstractions, this often creates black boxes that complicate debugging and customization when you go beyond standard use cases. For example, when you need to trace what prompts are being sent to the LLM or how tool outputs are being processed, multiple layers of abstraction can make this difficult to inspect. With our approach you can easily trace the flow from agent decision to code execution.
HTH!