Skip to main content

Glossary

The Arc Framework DSL provides a rich set of functions that can be used to implement complex logic in a concise and readable manner.

If you are looking for a description of the Agent Fields DSL, please check out the Defining Agents.

Example of the time and memory functions:

  agent {
name = "MyAgent"
prompt {
val name = memory<String>("user_name")
"""
The user's name is $name.
The time is ${time()}
"""
}
}

The following list some of the most common functions that can be used in the DSL.

NameDescriptionDetails
getReturns a bean from the Agent Context.More
llmCalls the llm.More
userProfileReturns a value from the customer profile.More
systemReturns a system property.More
limitRate limiterMore
getDataReturns a data set that was loaded during the current request.More
addDataSets a data set that was loaded during the current request.More
timeReturns the current time.More
debug, info, warn, and errorLogs messages to the logging systemMore
tracerReturns the AgentTracer.More
memoryStores and retrieves values from memory.More
emitMessageReturns a message to the client. Multiple messages can be returned to the client in a single turn.
breakWithThe breakWith function can be used to stop the agent from further processing the message and a return a dedicated response.More
retryRe-runs the current Agent. This is useful for when the Agent initially generates a bad response.More
callAgentCall another Agent and retrieve its response.More
nextAgentDefines an Agent that should be called after the current Agent. That Agent will receive the output of the current AgentMore