Version Control

In HelperAI, the following resources support version control:

  • Tools
  • Agents

Tool Version Control

In the HelperAI platform, a specific release of a Tool is known as a Tool Release. When a Tool is created, it automatically generates a unique and special Draft Tool Release under that Tool. This Draft Tool Release represents the latest draft definition of the Tool and is assigned a special version number called 'draft'. Tenants can use a series of Tool APIs provided by HelperAI to modify the configuration of the Draft Tool Release. This includes adding or removing Command definitions within the Draft Tool Release.

Since a Tool can only have one Draft Tool Release, in this document, we sometimes refer to the Draft Tool Release as the Tool itself. For example, when we say we want to change the Commands of a Tool, we actually mean modifying the Command definitions within the Draft Tool Release of that Tool.

Once the tenant considers that the current Draft Tool Release has reached a mature and usable state, they can copy and create another Tool Release based on the current state of the Draft Tool Release. The newly created Tool Release is assigned a unique version number. This Tool Release is considered a static snapshot of the Tool and cannot be further modified. It is also referred to as a released version, as it can be included in the skill list of a specific Agent.

It is crucial to select the appropriate released version of a Tool Release in the skill list of an Agent. This ensures that the Agent uses a Tool Release that is immutable, thus guaranteeing the expected behavior of the Agent when executing actions.

Agent Version Control

In the HelperAI platform, a specific release of an Agent is referred to as an Agent Instance, representing a particular version of that Agent. When an Agent is initially created, it automatically generates a unique and special Draft Agent Instance, which is assigned the version number 'draft'. Tenants can use a series of management APIs provided by HelperAI to modify the capabilities or conversation flow of the Draft Agent Instance. For example, tenants can add skills using specific Tools to the Draft Agent Instance, or change the way the Draft Agent Instance speaks and solves problems by setting targets and constraints.

It is important to note that an Agent can only have one Draft Agent Instance, which is the only Agent Instance that can be modified. Therefore, in this document, we sometimes refer to the Draft Agent Instance as the Agent itself. For example, when we mention changing the skills of an Agent, we actually mean modifying the skill settings of the Draft Agent Instance.

Once the tenant has shaped the Draft Agent Instance into a state suitable for release, they can copy it to create another Agent Instance. This new Agent Instance is considered a released version and cannot be further modified. It serves as a static snapshot of the Agent and can be used in subsequent deployment scenarios. For more information about Agent Instances and deployments, please refer to the Operations Management documentation.

Use "Draft Tool Release" as Skill

We mentioned that it is important to use a static and stable Tool Release version as the skill for an Agent. This ensures that the Tool Release used by the Agent at runtime is a version that will not change, guaranteeing consistent behavior. However, there is an exception to this rule when you are the developer of the Tool. In this case, you can choose to use a Draft Tool Release as the skill for the Draft Agent Instance. It is important to note that this special configuration is only allowed when the Tool and Agent belong to the same tenant.

This configuration allows you to develop and debug a new Tool within an actual Agent without the need to versionize the Tool release. Once you deem the Tool ready for release, you can copy the Draft Tool Release and create a new Tool Release to be used as the skill for the Agent.

Since this configuration applies only to the Draft Agent Instance, when you are ready to release the Draft Agent Instance as a static released version, you must change the skill settings of the Draft Agent Instance to use a static Tool Release version. Otherwise, HelperAI will reject your Agent release request.

Summary

In HelperAI platform, both Tool and Agent have version control functionality, which allows tenants to develop and manage their AI applications more effectively. When editing a Tool, it actually means editing a Draft Tool Release, and when editing an Agent, it means editing a Draft Agent Instance. When the editing of a draft reaches a suitable state for release, tenants can copy and create a new release version, which can be used in subsequent configuration steps.

Here is a summary of these names using a simple table:

Resource NameVersioned Resource NameSpecial Draft Version Number
ToolTool Releasedraft
AgentAgent Instancedraft