# Hermans Wei (chuanjie.ai) > Personal site of Hermans Wei, AI Builder at a Singapore AI startup, trained in AI at NUS. Bilingual (Chinese default, English via ?lang=en). Topics: vertical-industry AI, LLM agents, harness engineering, evaluation and quality gates, proactive agents, memory and routing for assistants, content engineering for the AI retrieval layer (GEO). ## Site map - https://chuanjie.ai/ : home. Sections: projects (#projects), about and now (#about), the working belief "the moat is the weld" (#the-weld), research directions (#research), latest writing (#writing), experience (#experience), contact (#contact). - https://chuanjie.ai/writing/ : all essays and the VOLO engineering-diary series (https://chuanjie.ai/writing/?series=volo-diary). - https://chuanjie.ai/feed.xml : RSS (add ?lang=en for English). - https://chuanjie.ai/sitemap.xml : sitemap. ## Research directions (summary) 1. Agent harness: reliability lives in the system around the model. Every review finding must become a fix, a checker, or a documented gap. 2. Bounded recursive self-improvement: diagnose, repair reversibly, write rules to long-term memory only after adjudication; rules carry their own tests. 3. Quality gates for LLM output: deterministic rules first, multi-model judge panels second; a gate trims the tail, not the mode; fail-open when generating, fail-closed when publishing. 4. Proactive agents and attention allocation: the system asks its own questions; diversity and attention budgets are the hard part. 5. Memory, routing and tools for conversational assistants: dual-mode routing, increment-only cross-session memory, one toolset published internally and via MCP. 6. Content engineering for the AI retrieval layer: server-readable pages, frozen numeric snapshots, distinguishing fetched-not-cited from never-fetched. ## Projects - [Work] AI core engine: from questions to analysis (2025 — 2026; live): Connect domain context, structured queries and analysis tools through task orchestration, turning natural-language questions into usable analysis. - [Work] AI strategy architecture and the “weld” moat (2026; live): One layered map and one project gate, so a dozen AI workstreams argue against the same picture. - [Work] An operations agent: from reads to writes (2026; building): Authorize AI to change business state while keeping authorization, audit and final decisions with people. - [Work] Proactive agents: AI finds the scene (2026; live): Invert people-finding-AI: the analysis is done before the user arrives. - [Work] Matching and ranking engine (2025 — 2026; live): Collaborative filtering for dense cases, representation learning for cold start, then business constraints baked into training. - [Work] Entity and relation foundation (2026; building): First agree on who is who: map languages, aliases, typos and codes back to canonical entities so pages, AI and tools share one truth. - [Work] AI-driven growth and content factories (2026; live): The cheapest growth is activation, not acquisition: runnable demos, multilingual tutorials and self-running content pipelines bring users into AI. - [Side] VOLO: what AI does to your work, one task at a time (2026-09 — Present; live): Breaking "will AI replace you" into task-level judgments: 70 careers, 351 tasks, each one labelled as standing on a verified record or on our own inference, and each stating what it does not establish. - [Side] VOLO: taking an aviation platform from zero to findable by Google and by AI (2026-02 — 2026-05; archived): As CTO, built a multilingual private-aviation platform in one sprint, then spent three months making it findable and callable by search engines and AI agents alike. The whole run is documented in 25 engineering diaries. - [Side] InnJoy: a BnB recommender you talk to (2023-10; archived): A real-time BnB recommender driven by a chatbot, with NeuralCF underneath. - [Side] BirdRealm Explorer: snap a bird, ask who it is (2023-10; archived): A CNN identifies the species, a fine-tuned BERT answers expert questions about it, all inside a Telegram bot. ## Essays - [Not every judgment should reach the frontier model](https://chuanjie.ai/writing/heterogeneous-intelligence?lang=en) · 中文: https://chuanjie.ai/writing/heterogeneous-intelligence : Classification, routing, reranking and verification all call an LLM today, but those tasks want judgment, choice and scoring rather than prose. The next step may be heterogeneous intelligence — a frontier model for open problems, decision models for judgments, search for live facts, databases for deterministic ones — competing as a system rather than as a model. - [A conformed dimension can be a column, not a layer](https://chuanjie.ai/writing/conformed-dimension-as-a-column?lang=en) · 中文: https://chuanjie.ai/writing/conformed-dimension-as-a-column : Our data agent doesn't write SQL, it fills parameters. The fair challenge is whether definitions drift across cubes — they didn't, because normalisation happens on the write side. But the trade has a hard boundary. - [Generation owns texture, code owns fact](https://chuanjie.ai/writing/generation-owns-texture?lang=en) · 中文: https://chuanjie.ai/writing/generation-owns-texture : The expensive generative error is not the obviously fake one; it is the entirely plausible one that is false. So remove the part that must be exact from the solution space, rather than adding a check to catch it. - [What AI eats is a layer, not a person](https://chuanjie.ai/writing/ai-eats-layers?lang=en) · 中文: https://chuanjie.ai/writing/ai-eats-layers : Every layer AI eats makes the layer above it more expensive. So the question isn't whether you will be replaced, but whether you are ready for the layer above — and the hardest condition is leaving while you are still very good at it. - [Let the system improve itself, but don't let it define "better"](https://chuanjie.ai/writing/bounded-self-improvement?lang=en) · 中文: https://chuanjie.ai/writing/bounded-self-improvement : The hard part isn't letting it change, it's letting it change only within bounds. Objective, evaluator, permissions and numeric definitions stay off limits. - [Build tools, not features](https://chuanjie.ai/writing/tools-not-features?lang=en) · 中文: https://chuanjie.ai/writing/tools-not-features : A feature can only be clicked; a tool can be called. One definition with two exits, graded by read versus write — the rest is routing and memory. - [Fetched but not cited, and never fetched, are two different problems](https://chuanjie.ai/writing/fetched-but-not-cited?lang=en) · 中文: https://chuanjie.ai/writing/fetched-but-not-cited : They look identical from outside and their fixes are opposites: one is infrastructure, the other is how you write. Conflate them and you keep taking the wrong medicine. - ["Be careful next time" is not a fix](https://chuanjie.ai/writing/next-time-is-not-a-fix?lang=en) · 中文: https://chuanjie.ai/writing/next-time-is-not-a-fix : A review finding has exactly three legal destinations: fix it, encode it as a checker, or write down why it can't be automated yet. None of the three means there was no review. - [Fail open when drafting, fail closed when publishing](https://chuanjie.ai/writing/fail-open-fail-closed?lang=en) · 中文: https://chuanjie.ai/writing/fail-open-fail-closed : Deterministic rules first, a review panel second, people at the last gate. A gate trims the tail; it doesn't reshape the body. - [People don't have that many questions](https://chuanjie.ai/writing/not-that-many-questions?lang=en) · 中文: https://chuanjie.ai/writing/not-that-many-questions : Answer quality decides whether you take an occasion. It does not decide how many occasions there are — the product form does, not the model. - [How do I know the agents actually made my team faster?](https://chuanjie.ai/writing/did-agents-speed-us-up?lang=en) · 中文: https://chuanjie.ai/writing/did-agents-speed-us-up : "Yes" is an answer with no information in it. Classify the work into six phases, count how often a person stepped in within each, then count how many of those step-ins became checkers. - [The moat is the weld, not the parts](https://chuanjie.ai/writing/moat-is-the-weld?lang=en) · 中文: https://chuanjie.ai/writing/moat-is-the-weld : A vertical AI company's moat isn't any single component. It's the interlock between industry semantics, data assets and AI capability that keeps feeding back. - [More important than whom to chase: whom not to](https://chuanjie.ai/writing/whom-not-to-chase?lang=en) · 中文: https://chuanjie.ai/writing/whom-not-to-chase : How an operational judgment becomes a system rule: measure the history first, then encode the team's hard-won rules as lines the system won't cross. - [Nine products, one denominator](https://chuanjie.ai/writing/one-denominator?lang=en) · 中文: https://chuanjie.ai/writing/one-denominator : A product matrix without a common denominator hands resources to whoever tells the best story. One multiplicative north star, and three anti-gaming rules. - [Keep a positive angle to the foundation models](https://chuanjie.ai/writing/positive-angle?lang=en) · 中文: https://chuanjie.ai/writing/positive-angle : Models upgrade every 6 to 12 months on a curve we don't control. The only thing we choose is our angle to it: complement, don't substitute. - [The first write is the operating system's birth certificate](https://chuanjie.ai/writing/first-write-syscall?lang=en) · 中文: https://chuanjie.ai/writing/first-write-syscall : Query, analysis and generation are all reads, and the ceiling for reads is an advisor. The moment AI is authorized to change business state, the product changes kind. - [AI finds the scene, instead of people finding AI](https://chuanjie.ai/writing/ai-finds-the-scene?lang=en) · 中文: https://chuanjie.ai/writing/ai-finds-the-scene : Think of a question, open a chat window, wait: most users never finish that path. Invert the paradigm. - [Why I built this site](https://chuanjie.ai/writing/hello-world?lang=en) · 中文: https://chuanjie.ai/writing/hello-world : One place I fully own for my work, projects and thinking, instead of scattering them across platforms. ## Engineering diary — VOLO series (25 parts, Feb–May 2026) > From February to May 2026 I built a multilingual private-aviation platform from zero as CTO and wrote down each day's engineering judgments: how the stack was chosen, how agents were served, how SEO went from "nobody can find us" to tens of thousands of indexed pages, and which decisions later proved wrong. The platform pivoted in September 2026; the diaries are archived here in full, in day order. > Series index: https://chuanjie.ai/writing/?series=volo-diary - [Engineering Diary, Day 1: Building a Multilingual AI Aviation Platform in 48 Hours](https://chuanjie.ai/writing/engineering-diary-day-1-building-multilingual-ai-aviation?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-1-building-multilingual-ai-aviation : A behind-the-scenes look at the engineering decisions, challenges, and breakthroughs in building VOLO's platform. From Next.js 16 to natural language flight search. - [Engineering Diary, Day 2: Building an AI Concierge That Makes Other AIs Want to Stay](https://chuanjie.ai/writing/engineering-diary-day-2-agent-concierge-and-quote-engine?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-2-agent-concierge-and-quote-engine : How we built a quote matching engine, a dynamic results page, and an Agent Concierge API in a single sprint — and what we learned about designing APIs that serve AI agents, not just humans. - [Engineering Diary Day 3: 126 Tests, Image Deduplication & Automated Health Monitoring](https://chuanjie.ai/writing/engineering-diary-day-3-126-tests-image-dedup-ci-cron?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-3-126-tests-image-dedup-ci-cron : Day 3 of production hardening. - [Engineering Diary, Day 4: Building a Marketing Command Center Without HubSpot](https://chuanjie.ai/writing/engineering-diary-day-4-marketing-command-center?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-4-marketing-command-center : Why we built a self-hosted marketing dashboard instead of buying SaaS — and how 2,346 lines of code replaced a $45K/year marketing stack. - [Engineering Diary, Day 5: The FocusJet Widget Saga & Resurrecting 70 Dead Gallery Images](https://chuanjie.ai/writing/engineering-diary-day-5-focusjet-global-widget-and-gallery-resurrection?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-5-focusjet-global-widget-and-gallery-resurrection : Four iterations to get a minimized timer right, a programmatic Unsplash resurrection script, and the hard lesson that page-level state is a trap when your widget needs to live everywhere. - [Engineering Diary, Day 6: 199 Jets, 197 New Images, and the Data Audit That Killed 10 Aircraft](https://chuanjie.ai/writing/engineering-diary-day-6-fleet-page-199-jets-and-the-data-audit-that-killed-10-aircraft?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-6-fleet-page-199-jets-and-the-data-audit-that-killed-10-aircraft : The CEO pulled up NetJets and said our fleet page was amateur. - [Engineering Diary, Day 7: Nobody Can Find Us — So We Published Everywhere](https://chuanjie.ai/writing/engineering-diary-day-7-nobody-can-find-us?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-7-nobody-can-find-us : We built the world's first agent-native aviation MCP server. Then realized no AI agent could actually discover it. - [Engineering Diary, Day 8: The GPT Store Crashed, 100 Empty Legs, and the Route Descriptions Nobody Could Read](https://chuanjie.ai/writing/engineering-diary-day-8-gpt-store-api-crash-100-empty-legs-seo?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-8-gpt-store-api-crash-100-empty-legs-seo : The GPT Store integration was broken because two API endpoints were calling a GraphQL backend that doesn't exist on Vercel. - [Engineering Diary, Day 9: Five Reports, One Night — VOLO Insights Launches with 3.5 Million Flights](https://chuanjie.ai/writing/engineering-diary-day-9-five-reports-one-night-volo-insights?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-9-five-reports-one-night-volo-insights : The CEO gave us 10 hours to ship 5 business aviation data reports — October through January plus the full year annual — all extracted from the data partner HTML, transformed into TypeScript, and rendered as SEO/GEO-optimized pages. - [Engineering Diary, Day 10: From Mock Data to Real Inventory — VOLO Goes Live with the data partner](https://chuanjie.ai/writing/engineering-diary-day-10-from-mock-data-to-real-inventory?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-10-from-mock-data-to-real-inventory : Today we ripped out every piece of fake data on VOLO and replaced it with real-time connections to the data partner's production systems. A MySQL database with thousands of empty leg flights. - [Engineering Diary, Day 11: Google Said No — SEO Triage Across 1,700 Pages](https://chuanjie.ai/writing/engineering-diary-day-11-google-said-no-seo-triage-1700-pages?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-11-google-said-no-seo-triage-1700-pages : Google Search Console delivered six different error categories across our entire site — 5xx crashes, broken canonicals, duplicate pages, 404s, 1,700+ undiscovered URLs, and 61 pages Google crawled and explicitly rejected. - [Engineering Diary, Day 12: Navigation Alignment, SEO Route Audit, and Blog Categories](https://chuanjie.ai/writing/engineering-diary-day-12-navigation-alignment-seo-audit-blog-categories?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-12-navigation-alignment-seo-audit-blog-categories : CEO spotted that our Header and Footer navigation were telling different stories — different names, different routes, different structures. - [Engineering Diary, Day 13: Content Expansion & Schema Richness — 52 Operators, 20 Case Studies, and Google Can't Ignore Us Now](https://chuanjie.ai/writing/engineering-diary-day-13-content-expansion-schema-richness?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-13-content-expansion-schema-richness : CEO said our content sections were too thin. - [Engineering Diary, Day 14: The Sitemap That Lied to Google, a Security Audit, and 3,680 URLs Finally Visible](https://chuanjie.ai/writing/engineering-diary-day-14-sitemap-security-indexing-crisis?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-14-sitemap-security-indexing-crisis : Google Search Console showed 87% of our pages unindexed: 267 indexed, 2,028 invisible, 23 Merchant Listing errors. - [Engineering Diary, Day 15: 29 Users, 3-Second Bounces, and the Cookie Banner That Blinded Our Analytics](https://chuanjie.ai/writing/engineering-diary-day-15-ga-data-growth-plan-cookie-consent?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-15-ga-data-growth-plan-cookie-consent : Our first real Google Analytics data arrived: 29 active users, 9s average engagement, homepage bouncing at 3 seconds, and only 1 organic search session in a month. - [Engineering Diary, Day 16: From 'Nice Website' to 'Take My Money' — Building a Conversion Funnel in One Day](https://chuanjie.ai/writing/engineering-diary-day-16-conversion-funnel-trust-signals-aeo?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-16-conversion-funnel-trust-signals-aeo : We had a beautiful website with zero conversion paths. Every CTA led to a /contact page — a dead-end form that felt like emailing a hotel's info@ address. - [Engineering Diary, Day 17: 211,153 Flights, 200+ Entity Links, and the SEO Web We Wove Through Our Insights Hub](https://chuanjie.ai/writing/engineering-diary-day-17-february-report-entity-linking-seo?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-17-february-report-entity-linking-seo : Today was about connecting the dots — literally. - [Engineering Diary, Day 18: 10 Languages, 224 Routes, and the isZh Massacre — Going Global in 48 Hours](https://chuanjie.ai/writing/engineering-diary-day-18-10-languages-224-routes-global-i18n?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-18-10-languages-224-routes-global-i18n : Two days. 153 files changed. 27,000+ lines of code. - [Engineering Diary, Day 19: We Built a CLI Because AI Agents Hate Browsers](https://chuanjie.ai/writing/engineering-diary-day-19-cli-agent-native-interface?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-19-cli-agent-native-interface : In 2026, the hottest new UI paradigm isn't a design system — it's a terminal. AI agents complete tasks 28% more reliably through CLI than MCP, and consume 4-32x fewer tokens than browser automation. - [Engineering Diary, Day 20: Building a Backlink Machine — Embeddable Widgets, Open Data, and the Press Page That Sells Itself](https://chuanjie.ai/writing/engineering-diary-day-20-backlink-infrastructure-embeddable-widgets?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-20-backlink-infrastructure-embeddable-widgets : SEO without backlinks is a car without fuel. - [Engineering Diary, Day 21: 13,000 URLs, 6,000 Indexed — So We Built 510 New Pages, Rewired the Link Graph, and Added 161 Aircraft Renders](https://chuanjie.ai/writing/engineering-diary-day-21-seo-overhaul-510-pages-3d-aircraft?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-21-seo-overhaul-510-pages-3d-aircraft : Google Search Console told us the truth: 13,000 URLs in the sitemap, only 6,000 indexed. A 46% indexing rate. The diagnosis was clear — our programmatic pages were thin, isolated islands. Routes didn't link to aircraft. - [Engineering Diary, Day 22: Six Features in One Session — Getaways, Fixed-Price Charter, Membership Overhaul, Medical Upgrade, Video Centre, and Trust Infrastructure](https://chuanjie.ai/writing/engineering-diary-day-22-six-features-product-expansion?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-22-six-features-product-expansion : Google Search Console showed 8,350 indexed pages — up from 6,000 just a week ago. But indexed pages alone don't close deals. - [Engineering Diary, Day 23: Building a Business Aviation Intelligence Center — 103 Insights, 11 Languages, 1,331 New Indexed Pages](https://chuanjie.ai/writing/engineering-diary-day-23-industry-insights-1331-pages?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-23-industry-insights-1331-pages : Yesterday we had 8,350 indexed pages and a monthly data reports system. - [Engineering Diary, Day 24: SEO/GEO Push to 10K — 2,433 New URLs Across 4 Waves and a Hub Linking Restructure](https://chuanjie.ai/writing/engineering-diary-day-24-seo-push-to-10k-2433-new-urls?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-24-seo-push-to-10k-2433-new-urls : We started the day with 8,000 Google-indexed pages — down from a peak of 9,200 — and a CEO directive: get to 10,000+. - [Engineering Diary, Day 25: 8 PRs, 1 Production Outage, and the URL Fragment Deprecation Nobody Told Us About](https://chuanjie.ai/writing/engineering-diary-day-25-agent-platform-week-and-the-url-fragment-bug?lang=en) · 中文: https://chuanjie.ai/writing/engineering-diary-day-25-agent-platform-week-and-the-url-fragment-bug : Day 24 ended with three predictions for what Day 25 would be. Day 25 turned out to be none of them. ## Open standards - [AI short-video production standard](https://chuanjie.ai/standard/short-video-production.html) (CC BY 4.0): The full production standard of a short-video line built on generative tools — ten hard rules, specs, a nine-step process, delivery QA, troubleshooting, and the self-evolution rule that a rule which cannot be machine-verified has not entered the process yet. Company-specific identifiers removed; the transferable engineering is intact. ## Contact - Email: Hermans@foxmail.com