Know which data actually makes your AI better.
Measure which documents, examples, policies, and conversations improve your agent, and by how much. Rank them by impact and cost, then put each where it belongs.
curl -sSfL https://raw.githubusercontent.com/uknoAI/kno/main/install.sh | sh- v0.1 · early
- Single Go binary
- No infrastructure
- Works with your existing evals
- OpenAI-compatible endpoints
- Anthropic · Bedrock · Vertex
- exec: your own agent
- Local fake agent, free
- Budget guarded
- Apache-2.0
ASSET IMPACT DECISION
new_refund_policy.md +18% keep → knowledge_base
example_42.json +7% keep → context
example_91.json +1% reject
old_refund_policy.md -9% reject → harmfulIllustrative numbers; real runs report each delta with a 95% confidence interval.
See the real output, free local agent, no API keys
ASSET DELTA (95% CI, positive = goal dir) CONTROL NOTE
brand-guide +0.0000 [-0.3960, +0.3960] low -0.5815 (underpowered)
refund-example-17 +0.0000 [-0.3960, +0.3960] low -0.5815 (underpowered)
refund-policy-v3 +0.0000 [-0.3960, +0.3960] low -0.5815 (underpowered)Deltas read zero because the free agent answers every case with what the case expects. The point is the loop: routing, injection, fresh controls, intervals, all working, for $0.
You're measuring your models. Why aren't you measuring your data?
Agent teams route data constantly, into RAG, into context, into the fine-tune, with intuition as the decision method. Five hundred help-center docs, two thousand support conversations, fifty policies: which earn their place? The damage shows up later, a stale policy contradicting the new one, a few-shot example dragging answers down. Kno turns each of those decisions into a measured experiment.
- Documents────────►RAG
- Examples────────►Context
- Conversations─────►Fine-tuning
- Policies──────────►???
DECISION METHOD / INTUITION
- Data─────►KNO─────►impact
- ├──►confidence
- ├──►cost
- ├──►destination
- └──►keep / reject
Same data. Same agent. The only difference is who decides — and the number on the table when they do.
Know what helps. Know what hurts. Know what it costs.
- 01
Know what helps
Measure the marginal impact of each candidate asset against your own evals.
- 02
Know what hurts
Find contradictory and harmful data, and regressions other tools miss, before they reach production.
- 03
Know what it costs
Compare improvement against inference cost. Ranking is per dollar, not per point.
- 04
Know where it belongs
Context, knowledge base, or tuning set, every selected asset gets a destination, not just a score.
- 05
Know what's missing
Find the case types nothing in your data fixes, the report lists them as gaps (GAP / UNKNOWN), so you know what to collect next.
Every step answers one question.
- Initshipped
How is this run set up?
- Mineshipped
Where do the evals come from?
- Baselineshipped
How good is the agent now?
- Valueshipped
Which assets improve it?
- Selectshipped
Which combination should I keep?
- Validateshipped
Does the combination still work on untouched evals?
- Exportshipped
Where should each asset go?
- Reportshipped
What does the whole run say?
Status as of v0.1.5, generated from the repository — the full table is on the roadmap.
Answers to questions you already have
- 01Which examples deserve space in my context window?
- 02Which conversations should I fine-tune on?
- 03Which data is actively hurting my agent?
- 04Is this policy actually improving my agent?
- 05Which documents should go into my RAG system?
- 06Which data is redundant?
- 07Which knowledge sources actually help my support agent?
Questions engineers actually ask
Does Kno replace my eval framework?
Does Kno send my data somewhere?
What happens to traces?
Can it accidentally spend unlimited API money?
Are the results statistically meaningful?
Why not script this myself?
What providers work?
From zero to your first valuation
No API keys, no spend. Five commands.
Install
Single Go binary, checksum-verified. Homebrew and go install also work, see the install guide.
curl -sSfL https://raw.githubusercontent.com/uknoAI/kno/main/install.sh | shWrite some cases
One scoreable interaction per line. Ten gives Kno room to seal a holdout, with fewer than three cases it refuses to start: a run that can never produce a holdout number is not worth spending.
for i in $(seq 1 10); do printf '{"id":"refund-%02d","input":"How do I get a refund?","expected":"Refunds are issued within 5 business days."}\n' "$i" done > cases.jsonlMeasure the agent as it is today
The reference every later number is compared against.
kno baseline --evals cases.jsonlWrite a pool of candidate assets
The documents, examples, and policies you are considering adding.
cat > pool.jsonl <<'EOF' {"id":"refund-policy-v3","content":"Refunds are issued within 5 business days.","kind":"knowledge"} {"id":"refund-example-17","content":"Example: a 30-day-old refund request is declined.","kind":"knowledge"} {"id":"brand-guide","content":"Use sentence case everywhere.","kind":"knowledge"} EOFValue them
Each asset is injected into the slices it could affect, re-measured against controls, and reported with an interval. Paste the run id from step 2's Baseline line. The deltas read zero because the fake agent answers every case with what the case expects, the point is proving the loop, not the asset.
kno value --evals cases.jsonl --pool pool.jsonl --baseline-run-id <run id> refund-example-17 +0.0000 [-0.3960, +0.3960] low -0.5815 (underpowered) refund-policy-v3 +0.0000 [-0.3960, +0.3960] low -0.5815 (underpowered)
Still zero dollars: everything above ran on the local fake agent. When you're ready for real numbers, point Kno at a real provider and cap the run before it starts: kno baseline --evals cases.jsonl --agent openai:gpt-4.1 --max-cost-usd 5.00 --yes Real runs cost roughly two calls per asset per case it is measured on, plus a control arm: the ten-case quickstart above plans 36 calls for three assets, not 30. Kno prints the exact count before the first call, estimates the bill from it, and the cap binds first.
Your eval framework measures the agent. Kno measures the data feeding it.
One measurement on top of your evals. Same cases, same scores.
| Capability | Eval framework | Kno |
|---|---|---|
| Model performance | ✓ | uses |
| Prompt performance | ✓ | uses |
| Asset-level impact | — | ✓ |
| Marginal data value | — | ✓ |
| Data cost | — | ✓ |
| Destination selection | — | ✓ |
| Portfolio validation | — | ✓ |
Kno is designed to be extended
Five surfaces, from bring-your-own-data to the valuation math itself.
Adapters
Bring another data source. Langfuse, LangSmith, and Braintrust eval adapters, Hugging Face evals and pools, CSV and Markdown pools, and a full Zendesk recipe all work today, and the pattern transfers to any stack that exports data.
Judges
Add evaluation logic so Kno can score a new kind of case, a rubric judge, a retrieval judge, yours.
Goals
Add an optimization target so select can rank for it, answer cost alongside accuracy, say.
Providers
Connect a new agent runtime. exec: already runs your own agent behind a shell command; the wiring pattern is the extension point.
Core
Improve the valuation engine itself, plan first, review adversarially, then code.
Your next data decision can be measured.
Install Kno and run the quickstart, the whole loop, in minutes, with zero spend. Point it at a real provider with a budget cap, and the numbers start meaning something.
curl -sSfL https://raw.githubusercontent.com/uknoAI/kno/main/install.sh | sh