-
Notifications
You must be signed in to change notification settings - Fork 40
Description
Is there an existing issue for the same bug? (If one exists, thumbs up or comment on the issue instead).
- I have checked the existing issues.
Describe the bug and reproduction steps
Description
1.When the LLM calls the task_tracker tool to plan tasks, the entries written to the file are all “Untitled task.”
2.After inspecting the OpenHands source, I found in function_calling.py that the code uses task.get('title', 'Untitled task') to get the task title. When incoming data uses the name field, title does not exist, so the default value "Untitled task" is used.
# Normalize task_list to ensure it's always a list of dictionaries
normalized_task_list = []
for i, task in enumerate(raw_task_list):
if isinstance(task, dict):
# Task is already in correct format, ensure required fields exist
normalized_task = {
'id': task.get('id', f'task-{i + 1}'),
'title': task.get('title', 'Untitled task'),
'status': task.get('status', 'todo'),
'notes': task.get('notes', ''),
}3.I further reviewed the prompts and examples related to the task_tracker tool in OpenHands and noticed that OH does not actually teach the LLM how to populate the input parameters.
Parameters:
(1) command (string, required): The command to execute. `view` shows the current task list. `plan` creates or updates the task list based on provided requirements and progress. Always `view` the current list before making changes.
Allowed values: [`view`, `plan`]
(2) task_list (array, optional): The full task list. Required parameter of `plan` command.
4.I captured the request/response messages between OpenHands and the LLM. Searching through them shows that the fields inside task_list are being filled ad-hoc by the LLM without clear guidance.
Steps to Reproduce
1.In the OpenHands UI, guide the LLM to call the task_tracker tool to plan a to-do list.
2.Observe the result after a successful task_tracker call: the tasks are typically titled “Untitled task.”
Root Cause
While working with the fn_call_converter.py file, I noticed that the convert_tools_to_description function does not parse nested parameters, especially when the tool arguments contain array-type inputs.
As a result, nested input parameters inside task_list are missing, which leads to incomplete prompt descriptions for tools like task_tracker.
OpenHands Installation
Development workflow
OpenHands Version
1.0.1
Model Name
No response
Operating System
Linux
Logs, Errors, Screenshots, and Additional Context
No response