From db59dfa6fb502295840b835941ae404db1095989 Mon Sep 17 00:00:00 2001 From: rayhpeng Date: Sat, 4 Apr 2026 09:07:34 +0800 Subject: [PATCH] feat(events): human_message content uses OpenAI user message format Co-Authored-By: Claude Sonnet 4.6 --- .../harness/deerflow/runtime/runs/worker.py | 2 +- backend/tests/test_run_journal.py | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/backend/packages/harness/deerflow/runtime/runs/worker.py b/backend/packages/harness/deerflow/runtime/runs/worker.py index b4b4ea0e7..81bf959e8 100644 --- a/backend/packages/harness/deerflow/runtime/runs/worker.py +++ b/backend/packages/harness/deerflow/runtime/runs/worker.py @@ -78,7 +78,7 @@ async def run_agent( run_id=run_id, event_type="human_message", category="message", - content=user_input, + content={"role": "user", "content": user_input}, metadata=msg_metadata or None, ) journal.set_first_human_message(user_input) diff --git a/backend/tests/test_run_journal.py b/backend/tests/test_run_journal.py index 8200f6f39..05c5a6112 100644 --- a/backend/tests/test_run_journal.py +++ b/backend/tests/test_run_journal.py @@ -373,7 +373,7 @@ class TestDbBackedLifecycle: run_id = record.run_id # Write human_message - await event_store.put(thread_id="t1", run_id=run_id, event_type="human_message", category="message", content="Hello DB") + await event_store.put(thread_id="t1", run_id=run_id, event_type="human_message", category="message", content={"role": "user", "content": "Hello DB"}) # Simulate journal journal = RunJournal(run_id, "t1", event_store, flush_threshold=100) @@ -554,3 +554,21 @@ class TestDictContent: assert len(record["content"]) <= 100 await close_engine() + + +class TestOpenAIHumanMessage: + @pytest.mark.anyio + async def test_human_message_openai_format(self): + store = MemoryRunEventStore() + await store.put( + thread_id="t1", + run_id="r1", + event_type="human_message", + category="message", + content={"role": "user", "content": "What is AI?"}, + metadata={"message_id": "msg_001"}, + ) + messages = await store.list_messages("t1") + assert len(messages) == 1 + assert messages[0]["content"] == {"role": "user", "content": "What is AI?"} + assert messages[0]["content"]["role"] == "user"