Rebase onto upstream (a4d95fd) #12

Closed
wylab wants to merge 144 commits from rebase-onto-upstream into main
2 changed files with 11 additions and 1 deletions
Showing only changes of commit 816368e4f9 - Show all commits
+1 -1
View File
@@ -119,7 +119,7 @@ class AgentLoop:
self.tools.register(WebFetchTool())
# Message tool
message_tool = MessageTool(send_callback=self.bus.publish_outbound)
message_tool = MessageTool(send_callback=self.bus.publish_outbound, sessions=self.sessions)
self.tools.register(message_tool)
# Spawn tool (for subagents)
+10
View File
@@ -4,6 +4,7 @@ from typing import Any, Awaitable, Callable
from nanobot.agent.tools.base import Tool
from nanobot.bus.events import OutboundMessage
from nanobot.session import SessionManager
class MessageTool(Tool):
@@ -12,11 +13,13 @@ class MessageTool(Tool):
def __init__(
self,
send_callback: Callable[[OutboundMessage], Awaitable[None]] | None = None,
sessions: SessionManager | None = None,
default_channel: str = "",
default_chat_id: str = "",
default_message_id: str | None = None,
):
self._send_callback = send_callback
self._sessions = sessions
self._default_channel = default_channel
self._default_chat_id = default_chat_id
self._default_message_id = default_message_id
@@ -101,6 +104,13 @@ class MessageTool(Tool):
try:
await self._send_callback(msg)
if self._sessions:
session_key = f"{channel}:{chat_id}"
session = self._sessions.get_or_create(session_key)
session.add_message("assistant", content)
self._sessions.save(session)
if channel == self._default_channel and chat_id == self._default_chat_id:
self._sent_in_turn = True
media_info = f" with {len(media)} attachments" if media else ""