Our AI kept overruling the corrections users made

    Stacy Wycoff
    Stacy Wycoff4d ago

    We let people correct us. Mark a sender as important. Fix a classification we got wrong. Tell us something we flagged as revenue isn't actually revenue.

    Then a background job would rescan that same email later and quietly put its own answer back.

    So someone tells the system "this isn't revenue," and the next day there it is again. From their side that isn't a bug, it's a personality. Being wrong once is forgivable. Being wrong again after they fixed it means the thing doesn't listen.

    We'd already caught one process doing this and patched it. Went looking anyway and found a second writer sitting in the main classification flow. That's the part that still bothers me — nobody reported it. We just had a whole second thing writing to those fields that nobody had inventoried.

    The fix itself is boring. Human answer wins, and we store where each value came from, model or person.

    What I keep chewing on is that a system learning from corrections and a system overwriting them look identical from the inside. Same tables, same code path. The only difference is whether anything tracks provenance, and we weren't tracking it because we'd spent all our attention on accuracy and none on who gets the last word.

    So for anyone else building on a model — how are you handling this? Do you store where a value came from, or does newest write just win? I don't think we've solved it. We've stopped the bleeding.

    💬20

    Comments (2)

    Olga Kargopolova
    Olga Kargopolova2d ago

    Yeah, testing is so important. I had a similar issue during the build and now for me the model output and user correction go in different fields, and the user's answer wins on read. Sounds like the same conclusion you landed on.

    Stacy Wycoff
    Stacy Wycoff16h agoReply

    Exactly. Separating the two feels like the important part. We initially treated it as an accuracy problem, but it turned out to be a provenance problem too - we needed to know not just what the current value was, but who put it there.

    I like your approach of keeping the model output and user correction in separate fields. Have you run into any cases where you eventually want the model to reconsider a user correction, or does the user's answer remain authoritative indefinitely?

    Sign in to comment or upvote.