Agent Configuration
This endpoint group provides methods for managing AI agent configurations, including creation, retrieval, updates, and deletion. It also offers utilities for managing agent avatars and listing available tools.
Endpoints
POST /api/rpc (Method: AgentConfigRpc.create)
- Description: Creates a new agent configuration.
- Request Body:
{ "method": "AgentConfigRpc.create", "params": { "name": "string", "model": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string", "messagingContactId": "string", "avatarUrl": "string", "realtime": "boolean", "projectId": "string" } } - Parameters:
Name Type Required Description nameStringYes The unique name of the agent configuration. modelStringYes The AI model to be used by the agent. descriptionStringNo A description of the agent's purpose. agentClassStringNo The class of the agent (e.g., AIAgent,RealtimeAIAgent).promptSourceStringNo The source of the agent's prompt (e.g., "text", "file"). promptTextStringNo The initial prompt text for the agent. promptFileStringNo The file path for the agent's prompt if promptSourceis "file".saveChatHistoryBooleanNo Whether to save the agent's chat history. communicationModesArray<String>No An array of communication modes the agent supports (e.g., "direct", "omnix_callback", "phoneCall"). personalityEnabledBooleanNo Whether the agent's personality is enabled. personalityObjectNo Configuration for the agent's personality. personality.professionStringNo The agent's profession. personality.styleStringNo The agent's communication style. personality.genderStringNo The agent's perceived gender. personality.verbosityStringNo The agent's verbosity level. personality.defaultMoodStringNo The agent's default mood. personality.adaptMoodBooleanNo Whether the agent should adapt its mood. personality.notesStringNo Additional notes about the agent's personality. voiceEnabledBooleanNo Whether voice capabilities are enabled for the agent. ttsModelStringNo The Text-to-Speech model to use. selectedVoiceStringNo The specific voice to use for TTS. transcriptionModelStringNo The transcription model to use for voice input. speakFirstOutgoingStringNo Determines if the agent speaks first in outgoing calls. allowOutgoingCallsBooleanNo Whether the agent is allowed to make outgoing calls. allowIncomingCallsBooleanNo Whether the agent is allowed to receive incoming calls. allowGroupParticipationBooleanNo Whether the agent can participate in group conversations. forkNewInstanceForCallsBooleanNo Whether to fork a new agent instance for each call. enableDeepWorkBooleanNo Whether the agent can engage in deep work. capabilitiesObjectNo Configuration for the agent's capabilities. capabilities.computer.browserAccessBooleanNo Whether the agent has browser access. capabilities.computer.terminalAccessBooleanNo Whether the agent has terminal access. capabilities.search.enabledBooleanNo Whether the agent has search capabilities. capabilities.search.connectorsArray<String>No List of search connectors the agent can use. capabilities.documentation.accessWorkspaceBooleanNo Whether the agent can access the workspace documentation. capabilities.documentation.modifyWorkspaceBooleanNo Whether the agent can modify the workspace documentation. capabilities.documentation.createOwnBooleanNo Whether the agent can create its own documentation. capabilities.tasks.accessWorkspaceBooleanNo Whether the agent can access tasks in the workspace. capabilities.tasks.modifyWorkspaceBooleanNo Whether the agent can modify tasks in the workspace. capabilities.tasks.createOwnBooleanNo Whether the agent can create its own tasks. roleStringNo The role of the agent. toolsArray<String>No A list of tool names the agent can use. fileContextStringNo The file context for the agent. messagingContactIdStringNo The ID of the messaging contact associated with the agent. avatarUrlStringNo The URL of the agent's avatar. realtimeBooleanNo Indicates if the agent operates in real-time. projectIdStringNo The project ID the agent configuration belongs to. If an empty string ""is provided, the agent will be explicitly global. If not provided, it defaults to thecontext.projectId. - Response:
{ "success": true, "data": { "_id": "string", "name": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string", "messagingContactId": "string", "avatarUrl": "string", "realtime": "boolean", "userId": "string", "subscriptionId": "string", "createdAt": "Date", "updatedAt": "Date", "projectId": "string" } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.create", "params": { "name": "My New Agent", "model": "gpt-4", "description": "A new agent for testing.", "projectId": "myProjectId" } }'
POST /api/rpc (Method: AgentConfigRpc.update)
- Description: Updates an existing agent configuration.
- Request Body:
{ "method": "AgentConfigRpc.update", "params": { "_id": "string", "name": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string" } } - Parameters:
Name Type Required Description _idStringYes The unique identifier of the agent configuration to update. nameStringNo The unique name of the agent configuration. descriptionStringNo A description of the agent's purpose. agentClassStringNo The class of the agent (e.g., AIAgent,RealtimeAIAgent).promptSourceStringNo The source of the agent's prompt (e.g., "text", "file"). promptTextStringNo The initial prompt text for the agent. promptFileStringNo The file path for the agent's prompt if promptSourceis "file".saveChatHistoryBooleanNo Whether to save the agent's chat history. communicationModesArray<String>No An array of communication modes the agent supports (e.g., "direct", "omnix_callback", "phoneCall"). personalityEnabledBooleanNo Whether the agent's personality is enabled. personalityObjectNo Configuration for the agent's personality. personality.professionStringNo The agent's profession. personality.styleStringNo The agent's communication style. personality.genderStringNo The agent's perceived gender. personality.verbosityStringNo The agent's verbosity level. personality.defaultMoodStringNo The agent's default mood. personality.adaptMoodBooleanNo Whether the agent should adapt its mood. personality.notesStringNo Additional notes about the agent's personality. voiceEnabledBooleanNo Whether voice capabilities are enabled for the agent. ttsModelStringNo The Text-to-Speech model to use. selectedVoiceStringNo The specific voice to use for TTS. transcriptionModelStringNo The transcription model to use for voice input. speakFirstOutgoingStringNo Determines if the agent speaks first in outgoing calls. allowOutgoingCallsBooleanNo Whether the agent is allowed to make outgoing calls. allowIncomingCallsBooleanNo Whether the agent is allowed to receive incoming calls. allowGroupParticipationBooleanNo Whether the agent can participate in group conversations. forkNewInstanceForCallsBooleanNo Whether to fork a new agent instance for each call. enableDeepWorkBooleanNo Whether the agent can engage in deep work. capabilitiesObjectNo Configuration for the agent's capabilities. capabilities.computer.browserAccessBooleanNo Whether the agent has browser access. capabilities.computer.terminalAccessBooleanNo Whether the agent has terminal access. capabilities.search.enabledBooleanNo Whether the agent has search capabilities. capabilities.search.connectorsArray<String>No List of search connectors the agent can use. capabilities.documentation.accessWorkspaceBooleanNo Whether the agent can access the workspace documentation. capabilities.documentation.modifyWorkspaceBooleanNo Whether the agent can modify the workspace documentation. capabilities.documentation.createOwnBooleanNo Whether the agent can create its own documentation. capabilities.tasks.accessWorkspaceBooleanNo Whether the agent can access tasks in the workspace. capabilities.tasks.modifyWorkspaceBooleanNo Whether the agent can modify tasks in the workspace. capabilities.tasks.createOwnBooleanNo Whether the agent can create its own tasks. roleStringNo The role of the agent. toolsArray<String>No A list of tool names the agent can use. fileContextStringNo The file context for the agent. - Response:
{ "success": true, "data": { "_id": "string", "name": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string", "messagingContactId": "string", "avatarUrl": "string", "realtime": "boolean", "userId": "string", "subscriptionId": "string", "createdAt": "Date", "updatedAt": "Date", "projectId": "string" } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.update", "params": { "_id": "654321098765432109876543", "description": "Updated description for the agent." } }'
POST /api/rpc (Method: AgentConfigRpc.delete)
- Description: Deletes an agent configuration.
- Request Body:
{ "method": "AgentConfigRpc.delete", "params": { "_id": "string" } } - Parameters:
Name Type Required Description _idStringYes The unique identifier of the agent configuration to delete. - Response:
{ "success": true, "data": { "success": "boolean" } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.delete", "params": { "_id": "654321098765432109876543" } }'
POST /api/rpc (Method: AgentConfigRpc.getData)
- Description: Retrieves agent configurations.
- Request Body:
{ "method": "AgentConfigRpc.getData", "params": { "filter": { "projectId": "string" }, "sort": {}, "page": "number", "pageSize": "number" } } - Parameters:
Name Type Required Description filterObjectNo An object to filter the agent configurations. filter.projectIdStringNo Filters agents by project ID. Can be nullfor global agents.sortObjectNo An object to specify the sorting order. pageNumberNo The page number for pagination (defaults to 1). pageSizeNumberNo The number of items per page (defaults to 25). - Response:
{ "success": true, "data": { "data": [ { "_id": "string", "name": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string", "messagingContactId": "string", "avatarUrl": "string", "realtime": "boolean", "userId": "string", "subscriptionId": "string", "createdAt": "Date", "updatedAt": "Date", "projectId": "string" } ], "totalCount": "number" } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.getData", "params": { "filter": { "projectId": "myProjectId" }, "page": 1, "pageSize": 10 } }'
POST /api/rpc (Method: AgentConfigRpc.findById)
- Description: Retrieves a specific agent configuration by ID.
- Request Body:
{ "method": "AgentConfigRpc.findById", "params": { "_id": "string" } } - Parameters:
Name Type Required Description _idStringYes The unique identifier of the agent configuration. - Response:
{ "success": true, "data": { "_id": "string", "name": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string", "messagingContactId": "string", "avatarUrl": "string", "realtime": "boolean", "userId": "string", "subscriptionId": "string", "createdAt": "Date", "updatedAt": "Date", "projectId": "string" } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.findById", "params": { "_id": "654321098765432109876543" } }'
POST /api/rpc (Method: AgentConfigRpc.getAvailableAgentTools)
- Description: Gets a list of all available tools for agent configuration.
- Request Body:
{ "method": "AgentConfigRpc.getAvailableAgentTools", "params": {} } - Parameters:
Name Type Required Description - Response:
{ "success": true, "data": [ { "value": "string", "label": "string" } ] } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.getAvailableAgentTools", "params": {} }'
POST /api/rpc (Method: AgentConfigRpc.getAvatarUploadKey)
- Description: Gets an upload key for an agent's avatar.
- Request Body:
{ "method": "AgentConfigRpc.getAvatarUploadKey", "params": { "agentConfigId": "string" } } - Parameters:
Name Type Required Description agentConfigIdStringYes The ID of the agent configuration for which to get an avatar upload key. - Response:
{ "success": true, "data": { "uploadKey": "string", "uploadUrl": "string", "maxFileSize": "number", "fileTypes": [ "string" ] } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.getAvatarUploadKey", "params": { "agentConfigId": "654321098765432109876543" } }'
POST /api/rpc (Method: AgentConfigRpc.updateAgentAvatar)
- Description: Updates an agent's avatar path after successful upload.
- Request Body:
{ "method": "AgentConfigRpc.updateAgentAvatar", "params": { "agentConfigId": "string", "uploadKey": "string" } } - Parameters:
Name Type Required Description agentConfigIdStringYes The ID of the agent configuration to update the avatar for. uploadKeyStringYes The upload key received from getAvatarUploadKey. - Response:
{ "success": true, "data": { "_id": "string", "name": "string", "description": "string", "agentClass": "string", "promptSource": "string", "promptText": "string", "promptFile": "string", "saveChatHistory": "boolean", "communicationModes": [ "string" ], "personalityEnabled": "boolean", "personality": { "profession": "string", "style": "string", "gender": "string", "verbosity": "string", "defaultMood": "string", "adaptMood": "boolean", "notes": "string" }, "voiceEnabled": "boolean", "ttsModel": "string", "selectedVoice": "string", "transcriptionModel": "string", "speakFirstOutgoing": "string", "allowOutgoingCalls": "boolean", "allowIncomingCalls": "boolean", "allowGroupParticipation": "boolean", "forkNewInstanceForCalls": "boolean", "enableDeepWork": "boolean", "capabilities": { "computer": { "browserAccess": "boolean", "terminalAccess": "boolean" }, "search": { "enabled": "boolean", "connectors": [ "string" ] }, "documentation": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" }, "tasks": { "accessWorkspace": "boolean", "modifyWorkspace": "boolean", "createOwn": "boolean" } }, "role": "string", "tools": [ "string" ], "fileContext": "string", "messagingContactId": "string", "avatarUrl": "string", "realtime": "boolean", "userId": "string", "subscriptionId": "string", "createdAt": "Date", "updatedAt": "Date", "projectId": "string" } } - Example (cURL):
curl -X POST https://api.example.com/api/rpc \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "method": "AgentConfigRpc.updateAgentAvatar", "params": { "agentConfigId": "654321098765432109876543", "uploadKey": "some-upload-key-abc-123" } }'