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

Over the past month, our test instance of KRAIT has processed 52 evolution cycles. It successfully merged 38 new skills, correctly rejected 11 proposals that violated security rules, and has 3 pending human review. Here are the most interesting stories.

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. Total evolution time: 4.2 seconds from proposal to merge.

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.