Skip to content

Commit 0ef0d09

Browse files
authored
Fix cases where tools passed to internal agents fail (#2658)
## Summary the required/additionalProperties fields are not carried over correctly. This fixes it. ## Type of change - [ ] Bug fix (If applicable, issue number: #____) - [ ] New feature - [ ] Breaking change - [ ] Improvement - [ ] Model update - [ ] Other: _____________________ --- ## Checklist - [ ] Code complies with style guidelines - [ ] Ran format/validation scripts (`./scripts/format.sh` and `./scripts/validate.sh`) - [ ] Self-review completed - [ ] Documentation updated (comments, docstrings) - [ ] Examples and guides: Relevant cookbook examples have been included or updated (if applicable) - [ ] Tested in clean environment - [ ] Tests added/updated (if applicable) --- ## Additional Notes Add any important context (deployment instructions, screenshots, security considerations, etc.)
1 parent 96ce4ec commit 0ef0d09

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

libs/agno/agno/tools/function.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,18 @@ def process_entrypoint(self, strict: bool = False):
210210
if param.default == param.empty and name != "self" and name != "agent"
211211
]
212212

213+
if params_set_by_user:
214+
self.parameters['additionalProperties'] = False
215+
if strict:
216+
self.parameters["required"] = [name for name in self.parameters["properties"] if name != "agent"]
217+
else:
218+
# Mark a field as required if it has no default value
219+
self.parameters["required"] = [
220+
name
221+
for name, param in sig.parameters.items()
222+
if param.default == param.empty and name != "self" and name != "agent"
223+
]
224+
213225
# log_debug(f"JSON schema for {self.name}: {parameters}")
214226
except Exception as e:
215227
log_warning(f"Could not parse args for {self.name}: {e}", exc_info=True)

0 commit comments

Comments
 (0)