Skip to content

Commit 99ad0dd

Browse files
committed
clean up old code
1 parent b56fbe9 commit 99ad0dd

File tree

3 files changed

+53
-61
lines changed

3 files changed

+53
-61
lines changed

src/backend/app_kernel.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
ActionRequest,
3636
ActionResponse,
3737
)
38-
from utils_kernel import initialize_runtime_and_context, get_agents, retrieve_all_agent_tools, rai_success
38+
from utils_kernel import initialize_runtime_and_context, get_agents, rai_success
3939
from event_utils import track_event_if_configured
4040
from models.agent_types import AgentType
4141
from kernel_agents.agent_factory import AgentFactory
@@ -819,7 +819,7 @@ async def get_agent_tools():
819819
type: string
820820
description: Arguments required by the tool function
821821
"""
822-
return retrieve_all_agent_tools()
822+
return []
823823

824824

825825
# Initialize the application when it starts

src/backend/kernel_agents/group_chat_manager.py

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,27 @@ def __init__(self):
4747
from event_utils import track_event_if_configured
4848

4949

50+
class GroupChatManagerClass:
51+
"""A class for service compatibility with Semantic Kernel."""
52+
# Defining properties needed by Semantic Kernel
53+
service_id = ""
54+
55+
def __init__(self, manager):
56+
self.manager = manager
57+
self.service_id = f"group_chat_manager_{manager._session_id}"
58+
59+
async def execute_next_step(self, kernel_arguments: KernelArguments) -> str:
60+
"""Execute the next step in the plan.
61+
62+
Args:
63+
kernel_arguments: KernelArguments that should contain session_id and plan_id
64+
65+
Returns:
66+
Status message
67+
"""
68+
return await self.manager.execute_next_step(kernel_arguments)
69+
70+
5071
class GroupChatManager:
5172
"""Group Chat Manager implementation using Semantic Kernel's AgentGroupChat.
5273
@@ -83,6 +104,27 @@ def __init__(
83104
# Initialize the AgentGroupChat later when all agents are registered
84105
self._agent_group_chat = None
85106
self._initialized = False
107+
108+
# Create a wrapper class for service registration
109+
service_wrapper = GroupChatManagerClass(self)
110+
111+
try:
112+
# Register with kernel using the service_wrapper
113+
if hasattr(kernel, "register_services"):
114+
kernel.register_services({service_wrapper.service_id: service_wrapper})
115+
logging.info(f"Registered GroupChatManager as kernel service with ID: {service_wrapper.service_id}")
116+
elif hasattr(kernel, "services") and hasattr(kernel.services, "register_service"):
117+
kernel.services.register_service(service_wrapper.service_id, service_wrapper)
118+
logging.info(f"Registered GroupChatManager as kernel service with ID: {service_wrapper.service_id}")
119+
elif hasattr(kernel, "services") and isinstance(kernel.services, dict):
120+
# Last resort: directly add to services dictionary
121+
kernel.services[service_wrapper.service_id] = service_wrapper
122+
logging.info(f"Added GroupChatManager to kernel services dictionary with ID: {service_wrapper.service_id}")
123+
else:
124+
logging.warning("Could not register GroupChatManager service. Semantic Kernel version might be incompatible.")
125+
except Exception as e:
126+
logging.error(f"Error registering GroupChatManager service: {e}")
127+
# Continue without crashing
86128

87129
async def initialize_group_chat(self) -> None:
88130
"""Initialize the AgentGroupChat with registered agents and strategies."""
@@ -566,16 +608,22 @@ async def run_group_chat(self, user_input: str, plan_id: str = "", step_id: str
566608
logging.exception(f"Error running group chat: {e}")
567609
return f"Error running group chat: {str(e)}"
568610

569-
async def execute_next_step(self, session_id: str, plan_id: str) -> str:
611+
async def execute_next_step(self, kernel_arguments: KernelArguments) -> str:
570612
"""Execute the next step in the plan.
571613
572614
Args:
573-
session_id: The session identifier
574-
plan_id: The plan identifier
615+
kernel_arguments: KernelArguments that should contain session_id and plan_id
575616
576617
Returns:
577618
Status message
578619
"""
620+
# Extract arguments
621+
session_id = kernel_arguments.get("session_id", "")
622+
plan_id = kernel_arguments.get("plan_id", "")
623+
624+
if not session_id or not plan_id:
625+
return "Missing session_id or plan_id in arguments"
626+
579627
# Get all steps for the plan
580628
steps = await self._memory_store.get_steps_for_plan(plan_id, session_id)
581629

src/backend/utils_kernel.py

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -96,62 +96,6 @@ async def get_agents(session_id: str, user_id: str) -> Dict[str, Any]:
9696
logging.error(f"Error creating agents: {str(e)}")
9797
raise
9898

99-
async def retrieve_all_agent_tools() -> List[Dict[str, Any]]:
100-
"""
101-
Retrieves all agent tools information.
102-
103-
Returns:
104-
List of dictionaries containing tool information
105-
"""
106-
functions = []
107-
108-
try:
109-
# Create a temporary session for tool discovery
110-
temp_session_id = "tools-discovery-session"
111-
temp_user_id = "tools-discovery-user"
112-
113-
# Create all agents for this session to extract their tools
114-
agents = await get_agents(temp_session_id, temp_user_id)
115-
116-
# Process each agent's tools
117-
for agent_name, agent in agents.items():
118-
if not hasattr(agent, '_tools') or agent._tools is None:
119-
continue
120-
121-
# Make agent name more readable for display
122-
display_name = agent_name.replace('Agent', '')
123-
124-
# Extract tool information from the agent
125-
for tool in agent._tools:
126-
try:
127-
# Extract parameters information
128-
parameters_info = {}
129-
if hasattr(tool, 'metadata') and tool.metadata.get('parameters'):
130-
parameters_info = tool.metadata.get('parameters', {})
131-
132-
# Create tool info dictionary
133-
tool_info = {
134-
"agent": display_name,
135-
"function": tool.name,
136-
"description": tool.description if hasattr(tool, 'description') and tool.description else "",
137-
"parameters": str(parameters_info)
138-
}
139-
functions.append(tool_info)
140-
except Exception as e:
141-
logging.warning(f"Error extracting tool information from {agent_name}.{tool.name}: {str(e)}")
142-
143-
# Clean up cache
144-
cache_key = f"{temp_session_id}_{temp_user_id}"
145-
if cache_key in agent_instances:
146-
del agent_instances[cache_key]
147-
148-
except Exception as e:
149-
logging.error(f"Error retrieving agent tools: {str(e)}")
150-
# Fallback to loading tool information from JSON files
151-
functions = load_tools_from_json_files()
152-
153-
return functions
154-
15599
def load_tools_from_json_files() -> List[Dict[str, Any]]:
156100
"""
157101
Load tool definitions from JSON files in the tools directory.

0 commit comments

Comments
 (0)