Help make bots that do not enter each other

I tried to enter the code from the example of the RVO so that the bots when following the player did not enter each other and did not move, but the problem is that the character control script takes the direction and position where you need to run in order to control animations and movement. The RVO example shows how to move an object, but as I am not trying, instead of interacting directly with the transform, to send the source data received from the RVO controller, I cannot achieve a smooth walk. The character twitches, does not rotate adequately, although it stops when it encounters another character in the path. But if the character on the way stands still, then the patrolling character just stops, instead of somehow getting around and continuing his movement, which also does not suit me, even if I solved the problem with the normal movement of the character controller through my script. If anyone has at least some advice, I will be happy to hear. I have almost lost hope … I am the owner of the asset version, so any advice related to the asset is suitable for me.

I am ready to tell you any data you are interested in about my character control script. I just need to understand what can help you help me with the solution of my question.

It seems that I started to get it on the third day.

private void Update()
        {
            if (patrolType == PatrolType.NonPatrole || patrolType == PatrolType.StandLookAround)
                return;

            if (path != null && path.vectorPath != null && path.vectorPath.Count > 0)
            {
                if((path.vectorPath[currentPointPath] - modelRoot.position).sqrMagnitude < aData.gridGraph.nodeSize * aData.gridGraph.nodeSize)
                {
                    currentPointPath++;
                    Debug.Log(currentPointPath);
                    if(currentPointPath >= path.vectorPath.Count)
                    {
                        StopMove();
                        path.vectorPath.Clear();
                        return;
                    }
                }

                Vector3 targetPoint = modelRoot.position + (path.vectorPath[currentPointPath] - modelRoot.position) * movementSpeed;
                controller.SetTarget(targetPoint, movementSpeed, 10);
                Debug.DrawLine(modelRoot.position, targetPoint);

                Vector3 delta = controller.CalculateMovementDelta(modelRoot.position, movementSpeed);
                Debug.DrawLine(modelRoot.position, modelRoot.position + delta, Color.red);
                moveToPosition = modelRoot.position + delta;
            }
            else
            {
                StopMove();
            }
        }

It seems like this is how my controller script normally processes movement when I pass to the point where to go.
The jerking problem was solved when I was in this line Time.deltaTime thought of replacing the character with my own speed of moving from the controller’s own script.

Vector3 delta = controller.CalculateMovementDelta(modelRoot.position, movementSpeed);

However, if you have any tips for improvement, I’m all in the spotlight!