Most boss AIs I've looked at so far have multiple variants of one sort or another: Margit is a Morgott variant and seems to have a separate variant for the fight in the Leyndell outskirts, Mad Pumpkin Head has multiple weapon loadouts, and so on. But most of those variants have totally separate AI files that just happen to have similar logic and animations. Black Knife Assassin is different: all of its many variants are crammed into one single file.
Standard AI
Black Knife Assassin has five main AI variants, and the behavior for all of them is controlled by a single AI file with a whole bunch of if statements scattered throughout. This is a map of the combos used by the most common variant, used by the Black Knife Assassins in Black Knife Catacombs, outside Sainted Hero's Grave, and in Leyndell:
Despite having relatively few distinct moves, the chart ends up quite complex because those moves can chain into one another in almost any combination. Like Margit, this AI relies on limiting a few core attacks to only being used once per combo in order to prevent combos from dragging on indefinitely; although unlike Margit, it does so by checking how many seconds have elapsed since it last executed those attacks rather than using counters that increment when particular attacks are performed.
Deathtouched Catacombs
Deathtouched Catacombs is in Limgrave, the starting continent, and it's clear that the designers wanted to make this boss fight more approachable to players who were still early in the game. The AI is much simpler than the other variants, limiting how many moves it can start a combo with and omitting the Helmsplitter and Blade of Death attacks completely.
As an aside: parsing out which attacks are used for which boss is actually quite tricky. Everything in the AI is handled with "special effect IDs", which are just opaque integers that can be applied to characters. These IDs can be set in any number of ways: by consuming items, using or being hit with attacks, being at a particular point in an animation, or even just being a particular instance of an enemy.
Although there is a canonical list of each ID's buff/debuff effects, there's not a list of how each ID is applied. If I see some AI code that says if ID 12345 is set and I need to figure out what that means, I have to search through all the places an ID can possibly come from to try to figure out what it actually means. It took at least an hour to map that out for the Black Knives!
Sage's Cave
The Black Knife Assassin in Sage's Cave is notoriously invisible unless you're wielding the Sentry's Torch which reveals it. To mitigate how frustrating this is for players, its AI is curtailed a little bit: it can't do the ranged Blade of Death attack since the player has no way to see it coming, and it won't retaliate with an attack after being damaged.
I elided it from the chart for simplicity's sake, but this Assassin also does slightly different grab attacks than the rest of them. Rather than sliding to the right and lunging forward into a grab, this one will only grab at close range to give players a better shot of avoiding the attack.
Alecto
Perhaps surprisingly for a late-game boss with a unique name, Alecto's AI is almost identical to the standard Assassin AI. The only difference is that, when she reaches the "finisher" state in which most assassins just do a Helmsplitter or a Knife Sweep, once every 20 seconds she'll do her notorious Imbued Helmsplitter instead and just absolutely fuck the player up.
Tiche
I don't have a graph for this one because making these is a lot of work and I don't need it for the Fextralife wiki, but I did keep an eye out for the differences in her AI. The two main differences seem to be that she can't do grab attacks (since enemies in general may not be set up to handle these gracefully), and she has about 1/3 the cooldown on her Blade of Death ranged attacks as other Assassins.
