chore: update environment variables and improve agent configuration
This commit is contained in:
@@ -8,6 +8,7 @@ from src.core.exceptions import AgentNotFoundError, InternalServerError
|
||||
from src.services.agent_service import get_agent
|
||||
from src.services.agent_builder import AgentBuilder
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import Optional
|
||||
|
||||
logger = setup_logger(__name__)
|
||||
|
||||
@@ -20,6 +21,7 @@ async def run_agent(
|
||||
artifacts_service: InMemoryArtifactService,
|
||||
memory_service: InMemoryMemoryService,
|
||||
db: Session,
|
||||
session_id: Optional[str] = None,
|
||||
):
|
||||
try:
|
||||
logger.info(f"Starting execution of agent {agent_id} for contact {contact_id}")
|
||||
@@ -45,13 +47,15 @@ async def run_agent(
|
||||
artifact_service=artifacts_service,
|
||||
memory_service=memory_service,
|
||||
)
|
||||
session_id = contact_id + "_" + agent_id
|
||||
adk_session_id = contact_id + "_" + agent_id
|
||||
if session_id is None:
|
||||
session_id = adk_session_id
|
||||
|
||||
logger.info(f"Searching session for contact {contact_id}")
|
||||
session = session_service.get_session(
|
||||
app_name=agent_id,
|
||||
user_id=contact_id,
|
||||
session_id=session_id,
|
||||
session_id=adk_session_id,
|
||||
)
|
||||
|
||||
if session is None:
|
||||
@@ -59,7 +63,7 @@ async def run_agent(
|
||||
session = session_service.create_session(
|
||||
app_name=agent_id,
|
||||
user_id=contact_id,
|
||||
session_id=session_id,
|
||||
session_id=adk_session_id,
|
||||
)
|
||||
|
||||
content = Content(role="user", parts=[Part(text=message)])
|
||||
@@ -69,7 +73,7 @@ async def run_agent(
|
||||
try:
|
||||
for event in agent_runner.run(
|
||||
user_id=contact_id,
|
||||
session_id=session_id,
|
||||
session_id=adk_session_id,
|
||||
new_message=content,
|
||||
):
|
||||
if event.is_final_response() and event.content and event.content.parts:
|
||||
@@ -79,7 +83,7 @@ async def run_agent(
|
||||
completed_session = session_service.get_session(
|
||||
app_name=agent_id,
|
||||
user_id=contact_id,
|
||||
session_id=session_id,
|
||||
session_id=adk_session_id,
|
||||
)
|
||||
|
||||
memory_service.add_session_to_memory(completed_session)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import os
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from fastapi import HTTPException, status
|
||||
@@ -27,6 +28,7 @@ def get_agent(db: Session, agent_id: uuid.UUID) -> Optional[Agent]:
|
||||
if not agent:
|
||||
logger.warning(f"Agent not found: {agent_id}")
|
||||
return None
|
||||
|
||||
return agent
|
||||
except SQLAlchemyError as e:
|
||||
logger.error(f"Error searching for agent {agent_id}: {str(e)}")
|
||||
@@ -47,7 +49,11 @@ def get_agents_by_client(
|
||||
try:
|
||||
query = db.query(Agent).filter(Agent.client_id == client_id)
|
||||
|
||||
return query.offset(skip).limit(limit).all()
|
||||
agents = query.offset(skip).limit(limit).all()
|
||||
|
||||
# A propriedade virtual agent_card_url será automaticamente incluída
|
||||
# quando os agentes forem serializados para JSON
|
||||
return agents
|
||||
except SQLAlchemyError as e:
|
||||
logger.error(f"Error searching for client agents {client_id}: {str(e)}")
|
||||
raise HTTPException(
|
||||
@@ -139,6 +145,9 @@ def create_agent(db: Session, agent: AgentCreate) -> Agent:
|
||||
db.commit()
|
||||
db.refresh(db_agent)
|
||||
logger.info(f"Agent created successfully: {db_agent.id}")
|
||||
|
||||
# A propriedade virtual agent_card_url será automaticamente incluída
|
||||
# quando o agente for serializado para JSON
|
||||
return db_agent
|
||||
except SQLAlchemyError as e:
|
||||
db.rollback()
|
||||
|
||||
@@ -2,7 +2,7 @@ from sqlalchemy.orm import Session
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from fastapi import HTTPException, status
|
||||
from src.models.models import MCPServer
|
||||
from src.schemas.schemas import MCPServerCreate
|
||||
from src.schemas.schemas import MCPServerCreate, ToolConfig
|
||||
from typing import List, Optional
|
||||
import uuid
|
||||
import logging
|
||||
@@ -41,7 +41,11 @@ def get_mcp_servers(db: Session, skip: int = 0, limit: int = 100) -> List[MCPSer
|
||||
def create_mcp_server(db: Session, server: MCPServerCreate) -> MCPServer:
|
||||
"""Create a new MCP server"""
|
||||
try:
|
||||
db_server = MCPServer(**server.model_dump())
|
||||
# Convert tools to JSON serializable format
|
||||
server_data = server.model_dump()
|
||||
server_data["tools"] = [tool.model_dump() for tool in server.tools]
|
||||
|
||||
db_server = MCPServer(**server_data)
|
||||
db.add(db_server)
|
||||
db.commit()
|
||||
db.refresh(db_server)
|
||||
@@ -65,7 +69,11 @@ def update_mcp_server(
|
||||
if not db_server:
|
||||
return None
|
||||
|
||||
for key, value in server.model_dump().items():
|
||||
# Convert tools to JSON serializable format
|
||||
server_data = server.model_dump()
|
||||
server_data["tools"] = [tool.model_dump() for tool in server.tools]
|
||||
|
||||
for key, value in server_data.items():
|
||||
setattr(db_server, key, value)
|
||||
|
||||
db.commit()
|
||||
|
||||
Reference in New Issue
Block a user