Blog
Architecture
Overview Harness Data Layer Skills
Pricing Get Started

LangChain Just Validated MeetKai's Agent Architecture (And We Built It First)

LangChain dropped Deep Agents last week. Their new harness for building production AI agents. The repo admits it: "explicitly inspired by Claude Code."

I read the code. Same patterns MeetKai has been running for months. Orchestrator → sub-agents → tools. Planning layer. Task delegation. Hard iteration limits. Reflection checkpoints.

MeetKai is the agent system Connor built to run his business operations. It runs on OpenClaw (the framework), but the architecture—the orchestrator/domain/skill hierarchy—is ours. Here's what LangChain got right, what we were already doing, and three principles worth stealing.

The Pattern LangChain Copied

Deep Agents uses a three-layer hierarchy:

  1. Main Agent (Orchestrator) — plans work, delegates tasks, synthesizes results
  2. Sub-Agents (Domain Specialists) — isolated context, specific tools, hard limits
  3. Tools — read/write files, execute shell commands, search the web

The orchestrator writes a todo list using write_todos. Delegates research to sub-agents via task() tool. Sub-agents return findings. Orchestrator consolidates and writes the final report.

Sound familiar? That's our Tier 1 / Tier 2 / Tier 3 architecture.

How MeetKai's Architecture Maps

MeetKai has been running this pattern since January 2026. Three-tier hierarchy built on OpenClaw:

TIER 1: ORCHESTRATOR (main session) ├─ Routes incoming messages ├─ Spawns domain agents via sessions_spawn └─ Aggregates results TIER 2: DOMAIN AGENTS (spawned in parallel) ├─ kaicalls-agent.md → Check leads, outreach queue ├─ finance-agent.md → MRR, churn alerts, revenue ├─ research-agent.md → Papers, patents, news └─ abp-agent.md → Vendor matching, lead scoring TIER 3: SKILLS (procedural guides) └─ kaicalls-outbound/SKILL.md → Outreach scripts patent-scanner/SKILL.md → Patent tracking memory-layer/SKILL.md → Semantic search

The orchestrator runs a 30-minute heartbeat. Spawns all domain agents. Each checks its domain. Returns NOTHING if healthy. Alerts if threshold crossed. Finance agent posts to #finance. KaiCalls agent posts to #kai-calls. Research agent posts to #research.

LangChain's version does the same thing, but for ad-hoc research queries instead of scheduled health checks.

Three Principles They Got Right

1. Hard Limits on Iterations

Their researcher sub-agent has explicit budgets:

Simple queries: 2-3 search tool calls maximum
Complex queries: Up to 5 search tool calls maximum
Always stop: After 5 search tool calls if you cannot find sources

No exceptions. The agent hits the limit and stops. This prevents runaway loops where the agent keeps searching because it thinks it needs more data.

We added this after reading their code. Our domain agents now have hard limits:

2. Reflection After Each Step

Deep Agents includes a think_tool. After every search, the agent reflects:

What key information did I find?
What's missing?
Do I have enough to answer comprehensively?
Should I search more or provide my answer?

This cuts false positives. The agent decides whether to continue or stop based on what it learned, not blind iteration.

Our domain agents now include reflection checkpoints:

## kaicalls-agent.md Step 1: Check leads - Run: cmo kaicalls leads --days=1 - REFLECT: Hot leads (score ≥ 7)? Yes/No Step 2: If hot leads exist → outreach queue - Run: kaicalls-outreach-queue - REFLECT: Outreach successful? Check logs. Step 3: If no hot leads or outreach complete → NOTHING

3. Explicit Stop Conditions

Their instructions define when to stop immediately:

Stop Immediately When:
- You can answer the user's question comprehensively
- You have 3+ relevant examples/sources for the question
- Your last 2 searches returned similar information

We adopted this. Every domain agent now lists stop conditions upfront:

## finance-agent.md STOP CONDITIONS: - MRR is stable (no change >5% from yesterday) - No failed charges in last 24h - No at-risk subscriptions flagged If all stop conditions met → return NOTHING

What MeetKai Does Differently

LangChain's pattern is for ad-hoc research queries. User asks "research quantum computing" → spawn 1 sub-agent → return answer.

MeetKai's pattern is for scheduled health checks. Every 30 minutes → spawn all 6 domain agents → each checks its domain → alert if needed.

They bias towards single sub-agent. MeetKai spawns in parallel by default. Both approaches are correct for their use case.

One Thing They're Missing

Deep Agents has no concept of persistent memory across sessions. Each run starts fresh. No knowledge graph. No wisdom consolidation. No learnings that carry forward.

MeetKai has that. The memory layer tracks:

The orchestrator searches memory before spawning sub-agents. "Did we research this already?" "What did we learn last time?" "What corrections apply here?"

LangChain's agents don't remember. Ours do.

Production Stats

This architecture has been running in production since January 2026. Here's what it manages:

The heartbeat system caught 3 churn risks last week (past_due subscriptions). Finance agent alerted before they became cancellations. All three recovered.

Why This Matters

When LangChain — the biggest agent framework in the world — copies the pattern MeetKai has been running for months, that's validation.

The orchestrator/domain/skill hierarchy works. Hard limits prevent runaway loops. Reflection cuts false positives. Stop conditions keep agents focused.

Anthropic invented this with Claude Code. MeetKai applied it to business operations instead of coding tasks. LangChain applied it to research tasks. Same underlying architecture.

The pattern is converging. That means it's worth betting on.

Build Your Own Agent Hierarchy

MeetKai runs on OpenClaw (the framework). The domain agent files live in agents/. Skills live in skills/. The architecture is open—you can clone the approach today.

View OpenClaw on GitHub →

Want to see how MeetKai structures domain agents, reflection checkpoints, and stop conditions? Check out the awesome-meetkai repo for examples. ☕