Agent Properties Reference
This document describes the property management actions available for agent resources in FoundationaLLM. These actions allow you to read and update specific agent properties without retrieving or replacing the entire agent resource.
Overview
FoundationaLLM provides two actions for managing agent properties:
| Action | Description |
|---|---|
get-properties |
Retrieve specific properties from an agent |
set-properties |
Update specific properties on an agent |
Properties are categorized into:
- Readable properties - Can be retrieved via
get-properties - Writable properties - Can be modified via
set-properties - Read-only properties - Can be retrieved but not modified
Get Properties Action
Retrieves specific properties from an agent resource.
Endpoint
POST /instances/{instanceId}/providers/FoundationaLLM.Agent/agents/{agentName}/get-properties
Request Payload
The request payload uses the ResourcePropertiesGetRequest model:
{
"property_names": [
"property_name_1",
"property_name_2"
],
"metadata_property_names": [
"metadata_property_name_1"
]
}
Payload Structure
| Field | Type | Required | Description |
|---|---|---|---|
property_names |
string[] |
No | Array of property names to retrieve. |
metadata_property_names |
string[] |
No | Array of metadata property names to retrieve. |
Note: At least one property name must be specified in either
property_namesormetadata_property_names. The request will fail with a400 Bad Requestif both arrays are empty.
Response
The response contains a ResourcePropertiesGetResult object:
{
"object_id": "/instances/{instanceId}/providers/FoundationaLLM.Agent/agents/{agentName}",
"is_success": true,
"resource": {
"properties": {
"property_name_1": "value_1",
"property_name_2": { ... }
},
"metadata_properties": {
"metadata_property_name_1": "metadata_value_1"
}
}
}
Example: Get All Agent Properties
{
"property_names": [
"object_id",
"type",
"name",
"display_name",
"description",
"cost_center",
"created_on",
"created_by",
"updated_on",
"updated_by",
"expiration_date",
"deleted",
"inheritable_authorizable_actions",
"workflow",
"tools",
"virtual_security_group_id",
"text_rewrite_settings",
"cache_settings",
"conversation_history_settings",
"shielding_settings",
"realtime_speech_settings",
"show_message_tokens",
"show_message_rating",
"show_view_prompt",
"show_file_upload",
"show_content_artifacts",
"owner_user_id"
],
"metadata_property_names": [
"welcome_message"
]
}
Set Properties Action
Updates specific properties on an agent resource.
Endpoint
POST /instances/{instanceId}/providers/FoundationaLLM.Agent/agents/{agentName}/set-properties
Request Payload
The request payload uses the ResourcePropertiesUpdateRequest model:
{
"properties": {
"property_name": "property_value"
},
"metadata_properties": {
"metadata_property_name": "metadata_property_value"
}
}
Payload Structure
| Field | Type | Required | Description |
|---|---|---|---|
properties |
object |
No | Dictionary containing the agent properties to be updated. Keys must be valid writable property names. |
metadata_properties |
object |
No | Dictionary containing the agent metadata properties to be updated. Keys must be valid metadata property names. |
Note: At least one property must be specified in either
propertiesormetadata_properties. The request will fail with a400 Bad Requestif both dictionaries are empty.
Response
The response contains a ResourceProviderActionResult object:
{
"object_id": "/instances/{instanceId}/providers/FoundationaLLM.Agent/agents/{agentName}",
"is_success": true
}
Property Reference
Read-Only Properties
These properties can be retrieved via get-properties but cannot be modified via set-properties.
Resource Base Read-Only Properties
| Property | JSON Name | Type | Description |
|---|---|---|---|
| Object ID | object_id |
string |
The unique identifier of the resource. |
| Type | type |
string |
The type of the resource (e.g., generic-agent). |
| Name | name |
string |
The name of the resource. |
| Created On | created_on |
DateTimeOffset |
The time at which the resource was created. |
| Created By | created_by |
string |
The entity who created the resource. |
| Deleted | deleted |
boolean |
Indicates whether the resource has been logically deleted. |
Agent-Specific Read-Only Properties
| Property | JSON Name | Type | Description |
|---|---|---|---|
| Workflow | workflow |
object |
The agent's workflow configuration. |
| Tools | tools |
array |
The list of tools that are registered with the agent. |
| Virtual Security Group ID | virtual_security_group_id |
string |
The agent's virtual security group identifier. |
Writable Properties
These properties can be both retrieved via get-properties and modified via set-properties.
Agent-Specific Writable Properties
text_rewrite_settings
Controls the user prompt rewrite functionality for the agent.
Type: object | null
Structure:
{
"text_rewrite_settings": {
"user_prompt_rewrite_enabled": true,
"user_prompt_rewrite_settings": {
"user_prompt_rewrite_ai_model_object_id": "/instances/{instanceId}/providers/FoundationaLLM.AIModel/aiModels/{modelName}",
"user_prompt_rewrite_prompt_object_id": "/instances/{instanceId}/providers/FoundationaLLM.Prompt/prompts/{promptName}",
"user_prompts_window_size": 5
}
}
}
| Field | Type | Description |
|---|---|---|
user_prompt_rewrite_enabled |
boolean |
Indicates whether user prompt rewrite is enabled. Default: false |
user_prompt_rewrite_settings |
object |
The settings for user prompt rewrite. Only valid when user_prompt_rewrite_enabled is true. |
user_prompt_rewrite_settings Structure (AgentUserPromptRewriteSettings):
| Field | Type | Required | Description |
|---|---|---|---|
user_prompt_rewrite_ai_model_object_id |
string |
Yes | The object identifier of the AI model to use for user prompt rewriting. |
user_prompt_rewrite_prompt_object_id |
string |
Yes | The object identifier of the prompt to use for user prompt rewriting. |
user_prompts_window_size |
integer |
Yes | The window size (number of previous user prompts) to consider for rewriting. |
Constraints: Set to null to clear the settings.
cache_settings
Controls the semantic caching functionality for the agent.
Type: object | null
Structure:
{
"cache_settings": {
"semantic_cache_enabled": true,
"semantic_cache_settings": {
"embedding_ai_model_object_id": "/instances/{instanceId}/providers/FoundationaLLM.AIModel/aiModels/{embeddingModelName}",
"embedding_dimensions": 1536,
"minimum_similarity_threshold": 0.975
}
}
}
| Field | Type | Description |
|---|---|---|
semantic_cache_enabled |
boolean |
Indicates whether the semantic cache is enabled. Default: false |
semantic_cache_settings |
object |
The settings for semantic caching. Only valid when semantic_cache_enabled is true. |
semantic_cache_settings Structure (AgentSemanticCacheSettings):
| Field | Type | Default | Description |
|---|---|---|---|
embedding_ai_model_object_id |
string |
required | The object identifier of the AI model to use for generating embeddings. |
embedding_dimensions |
integer |
- | The number of dimensions to use for the embedding vectors. |
minimum_similarity_threshold |
decimal |
0.975 |
The minimum similarity threshold (0.0-1.0) for cache matches. A higher value requires closer semantic matches. |
Constraints: Set to null to clear the settings.
conversation_history_settings
Controls how conversation history is managed for the agent.
Type: object | null
Structure:
{
"conversation_history_settings": {
"enabled": true,
"max_history": 10,
"history_content_artifact_types": "text,image"
}
}
| Field | Type | Description |
|---|---|---|
enabled |
boolean |
Indicates whether conversation history is enabled. |
max_history |
integer |
Maximum number of turns to store in the conversation history. |
history_content_artifact_types |
string |
Comma-separated list of content artifact types to store in history. Optional. |
Constraints: Set to null to clear the settings.
shielding_settings
Selects the shielding plugins Core runs for this agent. Completions are not sent to a Gatekeeper API.
Type: object | null
Structure:
{
"shielding_settings": {
"pre_completion_plugins": [
{ "plugin_name": "Dotnet-FoundationaLLMShieldingPlugins-AzureContentSafety" }
],
"post_completion_plugins": [
{ "plugin_name": "Dotnet-FoundationaLLMShieldingPlugins-Presidio" }
]
}
}
| Field | Type | Description |
|---|---|---|
pre_completion_plugins |
object[] | Plugins that screen the user prompt, in order. |
post_completion_plugins |
object[] | Plugins that screen the model response, in order. |
plugin_name |
string | Name of a shielding plugin from the installed package. |
Constraints: Set to null, or leave both lists empty, to disable completion shielding. The obsolete gatekeeper_settings property is still accepted so older agents load. Core uses it only when shielding_settings is absent.
realtime_speech_settings
Controls realtime speech functionality for the agent.
Type: object | null
Structure:
{
"realtime_speech_settings": {
"enabled": true,
"realtime_speech_ai_model_object_id": "/instances/{instanceId}/providers/FoundationaLLM.AIModel/aiModels/{modelName}",
"stop_words": ["stop", "end conversation", "goodbye"],
"max_session_duration_seconds": 300,
"show_transcriptions": true,
"include_conversation_history": true
}
}
| Field | Type | Default | Description |
|---|---|---|---|
enabled |
boolean |
false |
Whether realtime speech is enabled. |
realtime_speech_ai_model_object_id |
string |
required | Object ID of the AI model to use for realtime speech. |
stop_words |
string[] |
["stop", "end conversation", "goodbye"] |
Examples of clear hangup phrasing for the realtime end_conversation tool. They are not matched as substrings of the transcript. |
max_session_duration_seconds |
integer |
0 |
Maximum session duration in seconds. 0 means unlimited. |
show_transcriptions |
boolean |
true |
Whether to show transcriptions in the chat thread. |
include_conversation_history |
boolean |
true |
Whether to include conversation history in the session context. |
Constraints: Set to null to clear the settings.
show_message_tokens
Controls whether token counts are displayed on messages in the UI.
Type: boolean | null
Default: true
Example:
{
"show_message_tokens": false
}
show_message_rating
Controls whether rating options are displayed on messages in the UI.
Type: boolean | null
Default: true
Example:
{
"show_message_rating": true
}
show_view_prompt
Controls whether the "view prompt" option is displayed on agent messages in the UI.
Type: boolean | null
Default: true
Example:
{
"show_view_prompt": false
}
show_file_upload
Controls whether the file upload option is displayed on agent message input in the UI.
Type: boolean | null
Default: true
Example:
{
"show_file_upload": true
}
show_content_artifacts
Controls whether content artifacts are displayed in the UI.
Type: boolean | null
Default: true
Example:
{
"show_content_artifacts": false
}
owner_user_id
Sets or changes the owner user identifier for the agent.
Type: string
Constraints:
- Cannot be
null. - The calling user must have the Owner role assigned on the agent to change this property.
- The new owner user ID is only set if it differs from the current value.
Example:
{
"owner_user_id": "user-guid-here"
}
Resource Base Writable Properties
These properties are common to all resources.
display_name
The display name of the agent.
Type: string
description
The description of the agent.
Type: string
cost_center
The cost center associated with the agent.
Type: string
updated_on
The timestamp of the most recent update to the resource.
Type: null
Constraints: The value must be null. The system automatically sets this to the current time. This prevents clients from setting an incorrect timestamp.
Note: When using
set-properties, theupdated_onproperty is automatically updated even if not explicitly specified in the request.
updated_by
The user identifier of the most recent updater of the resource.
Type: null
Constraints: The value must be null. The system automatically sets this to the calling user's identity. This prevents clients from setting an incorrect user.
Note: When using
set-properties, theupdated_byproperty is automatically updated even if not explicitly specified in the request.
expiration_date
The expiration date of the agent.
Type: string (ISO 8601 date-time format)
inheritable_authorizable_actions
The list of inheritable authorizable actions for the agent.
Type: string[]
Metadata Properties
Metadata properties are stored in the agent's Properties dictionary and can be used for both get-properties and set-properties.
welcome_message
The welcome message displayed when a user starts a conversation with the agent.
Type: string | null
Constraints: Set to null to remove the welcome message.
Example:
{
"metadata_properties": {
"welcome_message": "Hello! How can I assist you today?"
}
}
Property Summary Tables
All Readable Properties
| Category | Property Name | Read | Write |
|---|---|---|---|
| Resource Base | object_id |
? | ? |
| Resource Base | type |
? | ? |
| Resource Base | name |
? | ? |
| Resource Base | created_on |
? | ? |
| Resource Base | created_by |
? | ? |
| Resource Base | deleted |
? | ? |
| Resource Base | display_name |
? | ? |
| Resource Base | description |
? | ? |
| Resource Base | cost_center |
? | ? |
| Resource Base | updated_on |
? | ?* |
| Resource Base | updated_by |
? | ?* |
| Resource Base | expiration_date |
? | ? |
| Resource Base | inheritable_authorizable_actions |
? | ? |
| Agent | workflow |
? | ? |
| Agent | tools |
? | ? |
| Agent | virtual_security_group_id |
? | ? |
| Agent | text_rewrite_settings |
? | ? |
| Agent | cache_settings |
? | ? |
| Agent | conversation_history_settings |
? | ? |
| Agent | shielding_settings |
? | ? |
| Agent | realtime_speech_settings |
? | ? |
| Agent | show_message_tokens |
? | ? |
| Agent | show_message_rating |
? | ? |
| Agent | show_view_prompt |
? | ? |
| Agent | show_file_upload |
? | ? |
| Agent | show_content_artifacts |
? | ? |
| Agent | owner_user_id |
? | ? |
| Metadata | welcome_message |
? | ? |
* These properties can be included in set-properties but must have a null value. The system automatically sets the actual values.
Example Requests
Get Specific Properties
{
"property_names": [
"display_name",
"description",
"cache_settings",
"conversation_history_settings"
],
"metadata_property_names": [
"welcome_message"
]
}
Update Multiple Properties
{
"properties": {
"show_message_tokens": true,
"show_message_rating": true,
"show_file_upload": false,
"conversation_history_settings": {
"enabled": true,
"max_history": 20
}
},
"metadata_properties": {
"welcome_message": "Welcome! I'm your AI assistant."
}
}
Clear Settings
To clear a settings object, set it to null:
{
"properties": {
"cache_settings": null,
"text_rewrite_settings": null
}
}
Update Shielding Settings
{
"properties": {
"shielding_settings": {
"pre_completion_plugins": [
{ "plugin_name": "Dotnet-FoundationaLLMShieldingPlugins-AzureContentSafety" }
],
"post_completion_plugins": [
{ "plugin_name": "Dotnet-FoundationaLLMShieldingPlugins-Presidio" }
]
}
}
}
Error Responses
| Status Code | Description |
|---|---|
400 Bad Request |
Invalid property name, empty properties dictionary/array, or invalid property value. |
403 Forbidden |
User is not authorized to access/update the agent or specific property (e.g., owner_user_id). |
404 Not Found |
The specified agent does not exist. |
500 Internal Server Error |
A property was not found on the resource (for get-properties). |
Example Error Response
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"detail": "The following property names are invalid: invalid_property_name.",
"instance": "/instances/{instanceId}/providers/FoundationaLLM.Agent/agents/{agentName}/set-properties"
}
Notes
Partial Operations: Both
get-propertiesandset-propertieswork on specific properties. Forget-properties, only requested properties are returned. Forset-properties, only specified properties are updated.Validation: All property names are validated against the allowed property names. Invalid property names result in a
400 Bad Requesterror.Authorization: Some properties (like
owner_user_id) require specific role assignments to update.Automatic Timestamps: When using
set-properties, theupdated_onandupdated_byproperties are automatically updated by the system, even if not explicitly included in the request.Persistence: After updating properties via
set-properties, the agent resource is saved to storage. The changes are immediately effective.Read-Only Properties: Attempting to update read-only properties via
set-propertieswill result in a400 Bad Requesterror.