feat(events): human_message content uses OpenAI user message format

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
rayhpeng 2026-04-04 09:07:34 +08:00
parent 17c8dbd9aa
commit db59dfa6fb
2 changed files with 20 additions and 2 deletions

View File

@ -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)

View File

@ -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"