Hong Tang

I’m building toward human–agent teams that work as one: agents that carry a team’s full context and act as an extension of each person, and teams that stay aligned as every member directs many agents.

Head of Project H, an AI-native engineering group in Alibaba Cloud’s CTO Office whose motto is Team with a Hive Mind, Agents as an Extended Brain. Before agents, two decades of internet-scale distributed systems: founding engineering lead of Alibaba Cloud’s Apsara stack, Hadoop at Yahoo, capacity infrastructure at Meta. Ph.D., Computer Science, UC Santa Barbara.

Now: agent infrastructure

Coding agents raised a team’s production rate by an order of magnitude. Its coordination rate didn’t move. For two decades I scheduled scarce machines; now the scarce resource is human attention.

Project H is a ten-person group that rebuilds its own engineering workflow around coding agents, then turns what works into tools for other teams. Coding agents write and cross-review the code. People own the design (specs, ADRs, design-doc review) and the gates that decide what ships: tests, invariant checks, and evals. I have worked hands-on with coding agents since spring 2026 and full-time since June: about 3,200 agent-hours since July, summed across parallel sessions and measured by my own telemetry.

Selected work

agent-replay & agent-monitor: observability for coding agents

RustOpen source primary author · github.com/tanghong123/claude-replay

When one person runs many agent sessions, the hard question is which of them is waiting on you right now. agent-monitor answers it from a single page. It reads Claude Code, Codex and Qoder transcripts through one agent-agnostic engine, shows which sessions are blocked on a human, searches across all of them, and lets you reply from a paired phone.

agent-monitor on synthetic demo data: a Claude Code session in the payments project is awaiting a reply, showing the question it asked
agent-monitor on synthetic demo data: the session marked “Awaiting a reply” shows the question it is waiting on.

Crux: meeting memory as team context, and the evals behind it

SwiftPythonReactPostgres primary author

Meetings carry most of a team’s decisions, but generic transcription garbles names and jargon, and its summaries are throwaway. Crux began as my on-device macOS app (WhisperKit speech recognition, speaker diarization, a local LLM via Ollama). It grew into a nine-service web system that turns meetings into speaker-attributed, term-corrected transcripts, deduplicated slides and cited summaries, for people and agents alike.

Choosing models by measurement. I built an eval harness that runs the product’s own stage code, so scores include prompts, retries and deadlines. Blind judges come from three model families, and any pair of models is compared only by a judge from neither family, which avoids self-preference. Confidence intervals come from bootstrapping within meetings, and a hard spend cap held the full run to about $80 for 1,600 calls. Results:
  • Two of four stages moved to a cheaper model at parity.
  • Two stayed on the stronger frontier model where the harness measured regressions.
  • Building it exposed a guard that had been silently discarding 27% of outputs.

Knack: a package manager for agent skills

Rust co-designed with one teammate; I wrote the client

Skills (SKILL.md) are becoming the unit of reusable agent know-how, yet teams copy them around by hand with no versioning, no review, and no budget for the context they consume. Knack keeps one git-backed library and installs skills into Claude Code, Codex and Qoder, with edits made inside any agent flowing back to the library.

Knack is still alpha; three teams have lined up to onboard.

agent-metrics: what coding agents actually do

RustSQLite creator

agent-metrics measures active agent time against wall clock, token cost by model, and agent- versus human-authored commits across machines. The team server receives counts only, never prompts or code. Its first surprise was that agents were active only about 8% of open-session time: session counts and wall clock overstate agent work more than tenfold, so we report active time.

mdrev and taskq: human-in-the-loop primitives

TypeScriptPython primary author

mdrev is code review for prose. An agent rewrites twenty pages, and you read a semantic redline across git revisions instead of the whole document again. Notes are anchored to the quoted text, survive later edits, and are picked up by agents, which fix them and resolve each with a link to the commit.

mdrev showing a rendered Markdown redline with struck and inserted text, a changed YAML value and a changed table cell
mdrev: a rendered redline across revisions, with anchored review notes in the margin.

taskq is a durable work queue that every coding agent can share across sessions and machines. It has atomic claims, executable definitions of done (commands that must pass), an audit line in the agent’s transcript for every change, and serverless sharing through git refs.

taskq board showing queues for several repositories with blocked, ready, doing and done columns
The taskq board: every repository’s queue, shared by people and agents.

Also in Project H

As tech lead I also guide a team knowledge base served to agents over MCP (ontology extraction, hybrid vector and graph retrieval), multi-person shared agent sessions, and an agent-maintained task ledger built from meetings. On the side I maintain rowt, a Rust split-routing proxy for macOS that a coding agent sets up for you.

Before agents: distributed systems

Writing, talks & papers