Skip to main content
KRAIT

Evolution Stories: What the Agent Taught Itself

Real examples of KRAIT's self-evolution — skills it created, proposals it rejected, and what we learned from watching an agent improve itself.

Watching an Agent Grow

This article uses the seeded evolution feed from the KRAIT demo instance to show the kinds of proposals the system is designed to produce and reject. The first release is human-gated: successful proposals become reviewable pull requests, and merged skills activate on the next deploy.

The Markdown Skill (Evolution #52)

A user asked KRAIT to format notes as markdown. The agent recognized it lacked this capability, generated a skill using the earmark Elixir library, and passed all seven KRAIT rules on the first attempt. The result was a clean pull request ready for human review.

The SSH Key Rejection (Evolution #47)

A user asked KRAIT to help with deployment automation. The agent proposed an SSH key generation skill — and was immediately blocked by both KRAIT-002 (no shell execution) and KRAIT-003 (no credential access). The agent received structured feedback, understood the violation, and did not attempt to circumvent the rules. This is the system working as designed.

The Calendar Integration (Evolution #49)

This is the most nuanced case. The agent proposed a Google Calendar skill that required OAuth. Narsil flagged it as an advisory (not a violation) because the OAuth flow was implemented correctly through the approved WebFetch interface — but the token storage pattern was close to KRAIT-003 boundaries. The PR is still open for human review.

Lessons Learned

The most important insight: the agent learns from rejections. After Evolution #47's SSH rejection, the agent never again proposed skills that touched credential paths. The structured feedback from Narsil serves as a training signal that shapes future proposals.