Custom instructions for thread

How can i give instructions to assistant without overriding default instructions?
For example, I want to address a reply to a particular user by giving their full name. How can I do this?

I have read that giving instructions when creating a run will override default instructions and I was wondering if there is a way to do this without overriding.

You are right, you can override the instruction on createRun. However it only does it for the current run.

You can also simply add something like 'My name is …" + programmatically to the first message?

When you create a run on a thread, a new parameter was recently introduced that appends an instruction instead of completely overwriting existing instructions.

additional_instructions - string or null - Optional

Appends additional instructions at the end of the instructions for the run. This is useful for modifying the behavior on a per-run basis without overriding other instructions.

It reads: “This is useful for modifying the behavior on a per-run basis”.
Will the additional instruction be “valid” in subsequent runs?
Let’s say that an additional instruction is: “You will address the user as John”, and the user asks “Who am I?” a few runs later. How will the assistant answer that question?

A run is equivalent to executing a single user input.

The conversation history that resulted from any different interaction will remain, but a new run will not continue the instruction following without the additional_instructions being included.