Add update method to Agent class for modifying agent properties

- Implemented an `update` method in the `Agent` class to allow modification of agent properties such as name, system prompt, and associated tools.
- Enhanced tool management by configuring `AgentPressTools` and `MCPTools` for the update process.
- Updated the `create` method in `KortixAgent` to maintain consistency with the new method signature.
This commit is contained in:
mykonos-ibiza 2025-08-01 01:40:31 +05:30
parent 4ca74e9907
commit 2302b656f0
1 changed files with 39 additions and 1 deletions

View File

@ -4,6 +4,7 @@ from .tools import AgentPressTools, MCPTools, KortixTools
from .api.agents import (
AgentCreateRequest,
AgentPress_ToolConfig,
AgentUpdateRequest,
AgentsClient,
CustomMCP,
MCPConfig,
@ -15,6 +16,39 @@ class Agent:
self._client = client
self._agent_id = agent_id
async def update(
self,
name: str,
system_prompt: str,
mcp_tools: list[KortixTools] = [],
):
agentpress_tools = {}
custom_mcps: list[CustomMCP] = []
for tool in mcp_tools:
if isinstance(tool, AgentPressTools):
agentpress_tools[tool] = AgentPress_ToolConfig(
enabled=True, description=tool.get_description()
)
elif isinstance(tool, MCPTools):
mcp = tool
custom_mcps.append(
CustomMCP(
name=mcp.name,
type=mcp.type,
config=MCPConfig(url=mcp.url),
enabled_tools=mcp.enabled_tools,
)
)
await self._client.update_agent(
self._agent_id,
AgentUpdateRequest(
name=name,
system_prompt=system_prompt,
custom_mcps=custom_mcps,
agentpress_tools=agentpress_tools,
),
)
async def run(
self,
prompt: str,
@ -37,7 +71,11 @@ class KortixAgent:
self._client = client
async def create(
self, name: str, system_prompt: str, model: str, mcp_tools: list[KortixTools] = []
self,
name: str,
system_prompt: str,
model: str,
mcp_tools: list[KortixTools] = [],
) -> Agent:
agentpress_tools = {}
custom_mcps: list[CustomMCP] = []