Keyleth and Percy have a strong bond of friendship, despite the fact that the human is, in Keyleth's own words, her "total opposite". Occasionally, she serves as a moral compass to him, especially during the Whitestone story arc. She helped Percy create his Diplomacy gauntlet.
As the characters matured and emerged from life-changing events, they began disagreeing more frequently on matters of diplomacy and leadership. Keyleth had become very concerned with Percy's morality, pointing out that he had a history of making terrible deals with dangerous partners, while Percy thought Keyleth came off as being snobbish. However, around the time Vox Machina liberated Westruun from the Herd of Storms and Umbrasyl, the two of them patched things up, with both of them better understanding how the other thinks.
Taliesin:[narrating] "I would like, on one wall, to carve the names of every survivor who stayed in the city. [...] And on the other wall, start carving in the story of what we've done to save the city, and where the story and where the city came from, and what has happened, and make a place where, other people, they can start carving in also the history and everything they need to say about the city. Just one of the giant walls, I just want to start filling in with stories of the city." [...]
Percy: "You disagree with my opinions."
Keyleth: "I don't really agree with immortalizing ourself in stone—"
Percy: "It's not about us."
Keyleth: "—way before we're even dead."
Vex'ahlia: "It's not us, Keyleth. It's the history of the town. Perk up! You're driving me crazy."
Percy: "How long do you live?"
Keyleth: "If I complete my journey, it could be upwards of a thousand years or more."
Percy: "How long do you think I live?"
Keyleth: "Less than a hundred?" [with a wry smile] "If you're lucky."
Keyleth: "How long?"
Percy:[sighs] "I am Percival Fredrickstein Von Musel Klossowski de Rolo III."
Keyleth: "No kidding."
Percy: "My ancestry dates back thousands of years and will continue for thousands more, unless Whitestone falls. This place is the human soul. This is what we have built with our tiny moments. To lose a place like this, we don't feel it immediately, but it would ruin everyone in small ways."
Keyleth: "Not all of us are lucky enough to have a lineage in a name."
Percy: "Not all of us are lucky enough to have a lineage in a lifespan."
Keyleth: "Not many of us are lucky enough to have a lineage at all."
Percy: "Which is why we save everyone we can."
Keyleth: "I guess that is one thing we can both agree on."
Percy: "This is good we do here. This is great good. And it's not about idolizing ourselves; it's about a very long story, which we are—even you—a tiny part of."
Percy, we had many conversations about life and death. And in many ways you were my total opposite, but you were also my best friend. And even though I told you that day that I gave you [the bird skull around your neck] that we're all going to die and that you can still be saved from yourself, it was clear the journey was far from over and it still isn't. [casts Conjure Woodland Beings to create a murder of crows surrounding her] As much as you might think your journey is now over, just because yours might be, ours isn't. Because we need you, and I need you.
When Percy died, Keyleth was devastated and contributed to the slaying of his killer, Anna Ripley. When he was brought to Whitestone for a resurrection ritual, she deduced that the shadow demon Orthax was still bound to Ripley's weapon, Animus, and thereby blocking the ritual. Keyleth used Greater Restoration to sever the connection between the weapon and Orthax, freeing Percy's soul and giving Pike the opportunity to commence. During the ritual, Keyleth did what she could to convince him to return to the Material Plane, calling him her best friend.