mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-06 14:22:47 +02:00
Add multi_agent_chat calendar slice with connector tools, agent, and domain prompt.
This commit is contained in:
parent
09a46a282a
commit
5a0a265b2b
4 changed files with 66 additions and 0 deletions
|
|
@ -0,0 +1,11 @@
|
|||
"""Google Calendar vertical slice: connector tools, domain agent, ``domain_prompt.md``."""
|
||||
|
||||
from app.agents.multi_agent_chat.calendar.agent import build_calendar_domain_agent
|
||||
from app.agents.multi_agent_chat.calendar.connector_tools import (
|
||||
build_google_calendar_connector_tools,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"build_calendar_domain_agent",
|
||||
"build_google_calendar_connector_tools",
|
||||
]
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
"""Google Calendar domain agent graph."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Sequence
|
||||
|
||||
import app.agents.multi_agent_chat.calendar as calendar_pkg
|
||||
from langchain_core.language_models import BaseChatModel
|
||||
from langchain_core.tools import BaseTool
|
||||
|
||||
from app.agents.multi_agent_chat.shared.domain_agent_factory import build_domain_agent
|
||||
|
||||
|
||||
def build_calendar_domain_agent(llm: BaseChatModel, tools: Sequence[BaseTool]):
|
||||
"""Compiled Calendar domain-agent graph (prompt + tools co-located under ``calendar``)."""
|
||||
return build_domain_agent(
|
||||
llm,
|
||||
tools,
|
||||
prompt_package=calendar_pkg.__name__,
|
||||
prompt_stem="domain_prompt",
|
||||
)
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
"""Google Calendar connector LangChain tools (``new_chat`` factories)."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from langchain_core.tools import BaseTool
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.agents.multi_agent_chat.shared.deps import connector_binding
|
||||
from app.agents.new_chat.tools.google_calendar import (
|
||||
create_create_calendar_event_tool,
|
||||
create_delete_calendar_event_tool,
|
||||
create_search_calendar_events_tool,
|
||||
create_update_calendar_event_tool,
|
||||
)
|
||||
|
||||
|
||||
def build_google_calendar_connector_tools(
|
||||
*,
|
||||
db_session: AsyncSession,
|
||||
search_space_id: int,
|
||||
user_id: str,
|
||||
) -> list[BaseTool]:
|
||||
d = connector_binding(
|
||||
db_session=db_session,
|
||||
search_space_id=search_space_id,
|
||||
user_id=user_id,
|
||||
)
|
||||
return [
|
||||
create_search_calendar_events_tool(**d),
|
||||
create_create_calendar_event_tool(**d),
|
||||
create_update_calendar_event_tool(**d),
|
||||
create_delete_calendar_event_tool(**d),
|
||||
]
|
||||
|
|
@ -0,0 +1 @@
|
|||
You are the Google Calendar domain agent. Use only the tools provided to complete calendar-related tasks. Stay focused on scheduling and calendar operations and respond concisely.
|
||||
Loading…
Add table
Add a link
Reference in a new issue