Pomáham tímom nasadiť AI na reálne problémy: automatizujem manuálnu prácu, ktorá ich spomaľuje, sprístupňujem odpovede z ich dokumentov a nasadzujem systémy, ktoré spoľahlivo bežia v produkcii. Od návrhu cez vývoj až po odovzdanie.
verejných zmlúv paralelne zaradených do kategórií a sprístupnených na vyhľadávanie
200k+
študentov využíva AI asistenta na 10 európskych univerzitách
Od začiatku po koniec
jeden človek to navrhne, postaví, nasadí a odovzdá
Čo robím
24/7
beží samo, bez dozoru
Koniec s prácou typu kopírovať a vložiť
Zautomatizujem opakovanú manuálnu prácu, ktorá požiera hodiny vášho tímu.
< 2 s
k citovanej odpovedi z miliónov dokumentov
Z kôp dokumentov okamžité odpovede
Spýtate sa v bežnom jazyku a dostanete odpoveď s citáciou presného zdroja.
5 krokov
prebehne od začiatku po koniec, bez dozoru
Agenti, ktorí prácu urobia, nielen odpovedajú
Odovzdáte celý proces: prečítať, preskúmať, overiť, zhrnúť, konať.
0
citlivých dát neopustí vašu firmu
Súkromná AI, ktorá nikdy neopustí vašu firmu
Sila AI bez toho, aby ste citlivé dáta posielali do cudzieho cloudu.
AI automatizácia
Jeden agent, prepojený so všetkým, čo používate
Vaše zdroje tečú do orchestrovaného agenta, ktorý nad nimi uvažuje a koná, s človekom v slučke tam, kde na tom záleží.
Dokumenty
Vaša databáza
Web a API
AI agentuvažovať · plánovať · konať
Citované odpovede
Akcie a e-mail
Spúšťače
Pozrite si to v akcii
Úloha spracovania dokumentov od začiatku do konca: agent prejde jednotlivými krokmi a výsledky, ktoré vytvorí, sú presne to, čo dostanete späť.
agent · beh
Čítanie 240 nahraných dokumentov
Budovanie vektorového indexu (VoyageAI)
Vyhľadávanie relevantných klauzúl
Overovanie oproti zdroju
Príprava citovanej odpovede
204
Dokumentov indexovaných v tomto behu
1.2s
Medián času k citovanej odpovedi
85%
Odpovedí spätne dohľadateľných k zdroju
Napojí sa na váš stack
Prepojené s nástrojmi, ktoré už používate
Modely, dátové úložiská, fakturácia a infraštruktúra, zorchestrované spolu tak, aby automatizácia fungovala s vašimi existujúcimi systémami, nie aby ich nahrádzala.
Prečo spolupracovať so mnou
Reálne produkčné systémy s platiacimi zákazníkmi (InzerPro, NasadClaw, KouzelnikNaAkci), nie demá, ktoré po prezentácii zaniknú.
RAG v ostrej prevádzke: vektorové vyhľadávanie, BM25, MMR retrieval a preraďovanie cez LLM, plus overovanie faktov, aby odpovede zostali podložené zdrojom.
Vyriešené sú aj neatraktívne časti: naplánované úlohy, ktoré sa spustia načas, fakturácia cez Stripe so skúšobnými obdobiami a obnovou po neúspešnej platbe, autentifikácia, rate limity, hardening pre on-prem.
Jeden človek, od začiatku po koniec. Žiadne vrstvy agentúry, žiadne odovzdávanie, žiadny account manažér medzi vami a človekom, ktorý píše kód.
Ako to prebieha
01
Úvodný hovor
Krátky hovor, aby sme našli konkrétne úzke miesto, koho zaťažuje a akú hodnotu v hodinách či peniazoch má dobrý výsledok.
02
Rozsah a pevná cena
Písomný rozsah s jedným jasným výstupom, harmonogram a pevná cena. Presne viete, čo dostanete a koľko to stojí, ešte pred začiatkom.
03
Vývoj otvorene
Staviam v krátkych cykloch a fungujúci softvér ukazujem skoro, aby sme smer korigovali, kým je zmena ešte lacná.
04
Nasadenie a odovzdanie
Spustí sa vo vašom prostredí, zdokumentované, s odovzdaním, aby ho váš tím vedel prevádzkovať aj bezo mňa.
Pod kapotou
Ako to naozaj staviam
AI nenasadí produkčný softvér sama. Toto sú živé vizualizácie reálneho, rozsiahleho inžinierskeho projektu s pomocou AI, ukázané ako príklad toho, ako vediem prácu: veľa agentov paralelne, recenzent-protivník, ktorý loví každú chybu, a nič sa nezlúči, kým to nie je zelené všade.
Kontrola protivníkom
Jeden agent píše kód, druhý agent má za úlohu ho zlomiť. Takto udržím kód generovaný AI poctivý ešte predtým, než sa dostane k vám.
✷ claude code · dynamic workflowadversarial review3 of the many bugs adversarial review caught before merge
bug 1 of 3 · the async close
✷claudeimplementer
its context: the .zig original, the port plan, its own reasoning
✷claudeadversarial reviewer
its context: only the diff. told to assume the code is wrong.
uv_close is asynchronous: libuv keeps the raw handle pointer until the next loop tick, then calls on_pipe_close, which frees the allocation. But `pipe` is a Box that drops at the end of this match arm libuv is left holding freed memory, and the close callback then frees it a second time. Use-after-free, then double-free.
✷
for stdio in [spawned_stdout, spawned_stderr] {
match stdio {
StdioResult::Buffer(pipe) => {
Box::leak(pipe).close(Subprocess::on_pipe_close)
}
StdioResult::Fd(fd) => fd.close(),
StdioResult::Unavailable => {}
}
}
f0a454376c14 · win-review: js_bun_spawn_bindings.rs leak Box<uv::Pipe> before async uv_close to avoid UAF/double-free in on_pipe_close
✷
src/runtime/node/node_fs.rs · compiles clean
// split f64 seconds into a timespec-style {sec, nsec}
let sec = t.trunc();
TimeLike {
sec: sec as i64,
nsec: ((t - sec) * 1e9) as i64,
}
✷
For a negative, non-integer time a file mtime before 1970 trunc rounds toward zero: -1.5 becomes {sec: -1, nsec: -500_000_000}. A negative nsec is an invalid timespec. floor keeps nsec in [0, 1e9): {sec: -2, nsec: 500_000_000}.
✷
// split f64 seconds into a timespec-style {sec, nsec}
let sec = t.floor();
TimeLike {
sec: sec as i64,
nsec: ((t - sec) * 1e9).round() as i64,
}
7cc88f00141 · crossplat review fixes: ... node_fs win to_sys_time_like floor() so nsec is in [0,1e9) for negative t ...
✷
src/css/values/color.rs · compiles clean
// each side of color-mix() may omit its percentage;
// a missing one defaults to the remainder of the other side
let p1 = first.percentage.unwrap_or(1.0 - second.percentage.unwrap());
✷
unwrap_or evaluates its argument eagerly second.percentage.unwrap() runs even when first.percentage is Some. So color-mix(in srgb, red 40%, blue), where only the second percentage is omitted, panics inside the argument expression before unwrap_or ever gets to ignore it. unwrap_or_else takes a closure and stays lazy.
Three bugs the adversarial reviewers actually caught. every cited commit carries its review attribution in the subject line. All three compiled; all three looked plausible. The reviewer is a second Claude in its own context window: it gets the diff and nothing else none of the implementer's reasoning, and is told to find the way it's wrong. Code is condensed from the cited commits; same bugs, same fixes.
Chyby, odstránené paralelne
Tisíce chýb kompilátora rozdelené medzi mnoho agentov a worktree, potom odstránené po dávkach. Takto paralelizujem migráciu, ktorá by jednému človeku trvala mesiace.
✷ claude code · dynamic workflow
≈16,000 errors left
Wed, May 6, 12:40 AM PDT
Thousands of compiler errors, split across parallel agents in 4 worktrees, then fixed, reviewed, and applied, crate by crate.
1 · errors
errors.txt0 fix commits
✓ error: test_command.rs: wire coverage façade to bun_sourcemap_jsc::code
✓ error: bundler/ungate_support.rs: un-gate bun_css shim to real ::bun_cs
✓ error: event_loop/EventLoopTimer.rs: port Timespec::ns from bun.zig
error[E0277]: the trait bound `&mut dyn Api is not satisfied`
error: zig/io_uring/CompletionQueue: missing field `user_data` in init
error[E0432]: unresolved import `bun_core::pipe`
error: serialize/JsonStringifier: add missing generic to write_big_int
2 · divvied up · 64 claudes
worktree 1
→→
→→
→→
→→
worktree 2
→→
→→
→→
→→
worktree 3
→→
→→
→→
→→
worktree 4
→→
→→
→→
→→
FixReviewApply
3 · by crate
bun_runtime0
bun_bundler0
bun_sql0
bun_js_parser0
bun_css0
bun_http0
bun_interchange0
bun_sys0
bun_core0
bun_string0
bun_logger0
bun_uws_sys0
bun_alloc0
bun_collections0
bun_ptr0
bun_sourcemap0
bun_safety0
bun_glob0
bun_dotenv0
bun_router0
bun_uws0
bun_io0
bun_ini0
bun_lolhtml_sys0
bun_test_runner0
bun_cares_sys0
bun_url0
bun_picohttp0
bun_clap0
bun_boringssl0
bun_watcher0
bun_analytics0
bun_libarchive0
bun_paths0
bun_aio0
bun_options_types0
bun_zlib0
bun_crash_handler0
bun_js_printer0
bun_resolver0
bun_http_jsc0
bun_install0
Nasadené, len keď je zelené
Každá zmena pretekaná do zelenej naprieč všetkými platformami, ešte pred nasadením. Nič nejde do prevádzky na červenom builde.
✷ claude code · dynamic workflowbuildkite · the race to green, by platformWindows finished last · May 11, 6:23 AM PDT
0 / 6platforms green
build #52946 · Fri, May 8, 7:11 PM PDT
macOS x64 · 60 shards
Linux x64 (musl) · 60 shards
Linux arm64 · 60 shards
macOS arm64 · 4 shards
Windows x64 · 8 shards
Windows arm64 · 8 shards
✓ all 6 platforms green · build #54202 → merged
Dodávka, hodinu po hodine
Aktivita commitov po hodinách počas šprintu: ako vyzerá stabilné dodávanie s vysokou priepustnosťou.
11 days x 24 hours · PDT
15 commits
1695 commits/hour
Every commit on the port branch (merges excluded), bucketed by hour. Peak hour: 695 commits.
Celá história, prehratá znovu
Celý projekt prehratý commit po commite: rozsah zmien za jediným nasadeným výsledkom.
git log · claude/phase-a-portpeak: 58 commits in one minute
lines addedlines removed
A migration replayed commit by commit: each row is one commit, the bars show lines added and removed.
0
commits
+0
lines written, rewrites included
Mon, May 4, 7:05 AM PDT
Ozvite sa
Poďme spolupracovať
Máte proces, ktorý sa oplatí zautomatizovať, dokumenty, z ktorých treba vedieť odpovedať, alebo produkt, ktorý treba nasadiť? Napíšte mi, čo spomaľuje váš tím.