ComfyUI icon indicating copy to clipboard operation
ComfyUI copied to clipboard

Loops do not repeat execution for leaf nodes (for Execution Model Inversion)

Open Shyryp opened this issue 1 year ago • 1 comments

Expected Behavior

I would expect that the final branches (leaf nodes (nodes without return pins)) in the loop body would also be re-executed with each loop, or I would expect to be able to control this somehow, but I haven't found such functionality.

Actual Behavior

Currently, any leaf nodes in the node tree inside the loop body are not executed in subsequent loops (leaf nodes are executed only once). For example, in the screenshot below, you can see that the preview (on the left) of the very first image created by the loop is displayed, rather than the very last image that is displayed after the loop (on the right). While the loop is running, the image previews are not updated inside the loop body.

Screenshot with workflow with problem: image

Issue/bug for @guill

Steps to Reproduce

Here is a simple workflow that makes it easy to reproduce this issue: Leaf_Node_Problem_Example_Workprocess.json

Debug Logs

-

Other

Is it possible to force leaf nodes (nodes without return pins) to be re-executed in Execution Model Inversion? If so, how? Or will this be implemented in the future?

Shyryp avatar Aug 28 '24 01:08 Shyryp

@elitecodegroovy Hello there! I'm here to assist you with bugs, questions, and becoming a contributor. If you need help, feel free to reach out to me.

The agent's answer content might not be inserted into the messages table because the response mode is set to streaming. In streaming mode, the response is returned as a series of events rather than a single response object. This mode is designed for real-time updates and might not directly insert the final answer into the messages table.

To ensure the agent's answer content is inserted into the messages table, you might need to handle the streaming events and aggregate the final answer before inserting it into the database. Ensure that your implementation correctly handles these events and inserts the final aggregated answer into the messages table [1].

To continue talking to Dosu, mention @dosu.

dosubot[bot] avatar Jul 02 '24 09:07 dosubot[bot]

I am sure that case that message event stream answer content is empty and then insert the empty value to the field answer in the table messages

elitecodegroovy avatar Jul 02 '24 10:07 elitecodegroovy

response event stream like this as following.

data: {"event": "agent_thought", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "d01ba9c8-e3cc-4b8c-9b72-d4f3dbc719d1", "position": 1, "thought": "", "observation": "", "tool": "", "tool_labels": {}, "tool_input": "", "message_files": []}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\n"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": ""}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": ""}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "```"}

data: {"event": "agent_thought", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "d01ba9c8-e3cc-4b8c-9b72-d4f3dbc719d1", "position": 1, "thought": "```", "observation": "", "tool": "is_internet_travel_post", "tool_labels": {"is_internet_travel_post": {"en_US": "is_internet_travel_post", "zh_Hans": "is_internet_travel_post"}}, "tool_input": "{\"is_internet_travel_post\": \"18921360001\"}", "message_files": []}

data: {"event": "agent_thought", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "d01ba9c8-e3cc-4b8c-9b72-d4f3dbc719d1", "position": 1, "thought": "```", "observation": "{\"is_internet_travel_post\": \"there is not a tool named is_internet_travel_post\"}", "tool": "is_internet_travel_post", "tool_labels": {"is_internet_travel_post": {"en_US": "is_internet_travel_post", "zh_Hans": "is_internet_travel_post"}}, "tool_input": "{\"is_internet_travel_post\": \"18921360001\"}", "message_files": []}

data: {"event": "agent_thought", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "5773c3a8-bf97-4889-81e8-9ac17dfea4da", "position": 2, "thought": "", "observation": "", "tool": "", "tool_labels": {}, "tool_input": "", "message_files": []}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "F"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "i"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "n"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "a"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "l"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": " "}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "A"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "n"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "s"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "w"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "e"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "r"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": ":"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": " "}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u4e3a"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u4fdd"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u969c"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u60a8"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u7684"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u6743"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u76ca"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\uff0c"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u8bf7"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u60a8"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u5148"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u8fdb"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u884c"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u8eab"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u4efd"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u9274"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u6743"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": "\u3002"}

data: {"event": "agent_message", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "answer": ""}

data: {"event": "message_end", "conversation_id": "a5233957-01e3-4bcf-bc9c-4390c1b92429", "message_id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "created_at": 1719915570, "task_id": "1ae6620c-f80e-4da8-9900-3dc370010bee", "id": "47d025d4-4141-4b70-9fdc-f921d5be0010", "metadata": {"usage": {"prompt_tokens": 15744, "prompt_unit_price": "0", "prompt_price_unit": "0", "prompt_price": "0E-7", "completion_tokens": 77, "completion_unit_price": "0", "completion_price_unit": "0", "completion_price": "0E-7", "total_tokens": 7906, "total_price": "0E-7", "currency": "USD", "latency": 5.146229874997516}}}


elitecodegroovy avatar Jul 02 '24 10:07 elitecodegroovy

The event stream final data with empty value for the answer field is inserted into the table 'messages', It is expected to be all the answer content but actionally inserted the last content.

elitecodegroovy avatar Jul 02 '24 10:07 elitecodegroovy

I also have this problem. What kind of llm did you connect?

liuminxuan avatar Jul 27 '24 15:07 liuminxuan