From afdff1708b2b4c89ffa88a270874f36a89ae5b83 Mon Sep 17 00:00:00 2001 From: Daniel O'Connell Date: Sun, 2 Nov 2025 16:46:26 +0100 Subject: [PATCH] prompt from bot user --- src/memory/discord/messages.py | 6 +++--- src/memory/workers/tasks/discord.py | 4 ++-- src/memory/workers/tasks/scheduled_calls.py | 5 ++++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/memory/discord/messages.py b/src/memory/discord/messages.py index ae061a3..e24ede5 100644 --- a/src/memory/discord/messages.py +++ b/src/memory/discord/messages.py @@ -207,7 +207,7 @@ def comm_channel_prompt( def call_llm( session: Session | scoped_session, - bot_user: BotUser, + bot_user: DiscordUser, from_user: DiscordUser | None, channel: DiscordChannel | None, model: str, @@ -253,7 +253,7 @@ def call_llm( from memory.common.llms.tools.discord import make_discord_tools from memory.common.llms.tools.base import WebSearchTool - tools = make_discord_tools(bot_user, from_user, channel, model=model) + tools = make_discord_tools(bot_user.system_user, from_user, channel, model=model) tools |= {"web_search": WebSearchTool()} # Filter to allowed tools if specified @@ -264,7 +264,7 @@ def call_llm( return provider.run_with_tools( messages=provider.as_messages(message_content), tools=tools, - system_prompt=system_prompt, + system_prompt=bot_user.system_prompt + "\n\n" + system_prompt, max_iterations=settings.DISCORD_MAX_TOOL_CALLS, ).response diff --git a/src/memory/workers/tasks/discord.py b/src/memory/workers/tasks/discord.py index 02ce8d4..aa34a0e 100644 --- a/src/memory/workers/tasks/discord.py +++ b/src/memory/workers/tasks/discord.py @@ -118,7 +118,7 @@ def should_process(message: DiscordMessage) -> bool: response = call_llm( session, - bot_user=message.recipient_user.system_user, + bot_user=message.recipient_user, from_user=message.from_user, channel=message.channel, model=settings.SUMMARIZER_MODEL, @@ -192,7 +192,7 @@ def process_discord_message(message_id: int) -> dict[str, Any]: try: response = call_llm( session, - bot_user=discord_message.recipient_user.system_user, + bot_user=discord_message.recipient_user, from_user=discord_message.from_user, channel=discord_message.channel, model=settings.DISCORD_MODEL, diff --git a/src/memory/workers/tasks/scheduled_calls.py b/src/memory/workers/tasks/scheduled_calls.py index 14e79a7..b6c0ed0 100644 --- a/src/memory/workers/tasks/scheduled_calls.py +++ b/src/memory/workers/tasks/scheduled_calls.py @@ -27,9 +27,12 @@ def _call_llm_for_scheduled(session, scheduled_call: ScheduledLLMCall) -> str | message = cast(str, scheduled_call.message) allowed_tools_list = cast(list[str] | None, scheduled_call.allowed_tools) + bot_user = ( + scheduled_call.user.discord_users and scheduled_call.user.discord_users[0] + ) return call_llm( session=session, - bot_user=scheduled_call.user, + bot_user=bot_user, from_user=scheduled_call.discord_user, channel=scheduled_call.discord_channel, messages=[message],