Should "_call_tools" in mellea/stdlib/functional.py be public? #1460
Replies: 5 comments 4 replies
How are tools currently processed in those scenarios? |
|
Here is the _call_tools code |
I would not promote as is. If we did expose something like this, we should probably implement a new helper, maybe something like Would be good for others to weigh in too: @generative-computing/mellea-maintainers |
|
Yes, expose it. Users calling We already ship a On the shape: keep External frameworks point the same way, but the stronger argument is in our own tree. For reference: LangGraph's On "matches codebase conventions": Fix: drop the underscores ( Side note — filed as #1475: lines 502 and 1271 in |
|
Here is a plan: Make _call_tools Public API Context Currently, _call_tools is a private function in mellea's functional API that executes tool calls from model responses. It includes built-in support for:
The problem: Users who need direct tool execution currently must either:
Documentation and examples already teach patterns using the private function, making the "gap" official but undocumented. Goal: Make _call_tools a stable public API that users can rely on with full transparency about hook and telemetry support. Proposed Solution Rename _call_tools → call_tools and enhance documentation to:
Scope constraints:
Implementation Plan Phase 1: Code Changes
Phase 2: Documentation
Phase 3: Testing & Verification
Phase 4: Migration Path
Critical Files to Modify
Verification Checklist
Notes
Exploration Results (Completed) Location & Signature
Hooks Fired
Telemetry
Return Type
Current Usage
|
Uh oh!
There was an error while loading. Please reload this page.
The "_call_tools" is the only method that executes tools requested by the model call. It is used only in
So Mellea executes tools automatically in only these cases.
Programs that use "(a)instruct" or "(a)act" must process the tool_call in model response. The "_call_tools" method is useful for the case but it is an internal function.
Should "_call_tools" in mellea/stdlib/functional.py be changed public?
All reactions