Kohler uses a Fluidmaster fill valve.
The cap may just need cleaning.
I have Kohler class 5 and it will not stop running. I've checked everything (float, flapper, etc.) but besides changing the whole mechanism, I can't think of anything else to do. I think the main problem is the float and the fact that there is not enought water coming back into the tank. Has anyone else had this problem and did you find a solution?
Also, make sure that the water level is at the proper height. There is a small adjustment screw to raise or lower the level.
Another thought. My first toilet (unfortunately bought 2) would start to run after about 5 flushes. I opened the lid and noticed that the Tall Black Valve that is attached by a chain to the Flush Lever was being pulled ever so slightly in a clockwise direction with every flush. After the 5 flushes, it had rotated enough the the chain was not allowing it to drop all the way down.
There are 3 position on the Flush Lever that is inside the tank. Make sure the chain is attached to the one at the end of the lever so that it is on the center line of the Valve. I also think I shortened the chain so that it could not rotate but was still long enough to allow the Valve to seat properly. This seems to have corrected the problem.