Releases: hardness1020/learn-agent-architecture
Release list
v1.6.0: Renamed to learn-agent-architecture
Renames the repo from awesome-agent-architecture to learn-agent-architecture. The old name signaled a curated link list. This repo is a section by section teaching writeup with runnable code, so it now carries the same learn- prefix as its companions, learn-agent-memory and learn-deepseek-harness.
Old URLs, clones, and raw file links redirect to the new name. Stars, forks, issues, and pull requests carry over. The title, banner alt text, and tree root are updated in the five root READMEs. No section content, source, or config changed.
v1.5.2: Japanese and Korean translations
Adds Japanese and Korean translations of every README. Fifty new files (README.ja.md and README.ko.md for the root and all 24 sections), every switcher line extended to five languages, and CONTRIBUTING now requires all five language files per README. No source, config, or English section content changed.
The ja and ko files were translated from the English baseline, not from a sibling translation. A first machine-translated pass was discarded in full after it stated the opposite of the English in several mechanism claims: the section 3 rule on treating stored memory as untrusted, the section 17 lock ordering, the section 18 board pull direction, the section 19 config precedence chain, and the section 20 claim about eval running off the hot path. It also read domain words in the wrong sense (call as a phone call, poll as a vote, board as a board of directors, fire as a blaze, claim as a complaint, state as a province, production as manufacturing, redaction as censorship). The shipped pass keeps the repo's technical terms and every product and paper name in English, uses one rendering per term across all 25 files per language, and holds one register per file: ja prose in desu-masu, ko prose in hapnida-che, with noun-form table cells in both.
The zh-TW and zh-CN READMEs got a second audit against the English. Mechanism claims that drifted are restored (section blockquotes, hooks not being called by the loop, the autonomy self-organization fix, the evaluation "inside the run" rationale), clauses with no English counterpart are dropped, and leftover Traditional forms are swept out of zh-CN.
Structure verified against English for all 100 translated files: heading counts and levels match, table row and column counts match, every fenced code block is byte-identical, no line over 180 characters, no em or en dashes, all anchors resolve. No native speaker has reviewed the ja and ko text yet.
All in five languages.
v1.5.1: Chinese translation refresh
Replaces every zh-TW and zh-CN README, and the top-level trio, with a new translation pass, then corrects the meaning drift that pass carried in. The English section READMEs are unchanged and served as the meaning baseline throughout. Fifty-one files in total; no source, config, or English section content changed.
The new pass reads more naturally than what it replaced. It also drifted. Three zh-CN strings were garbled by a bad regional substitution, one of them destroying the claim that the Claude API handles context editing so the harness ships no code for it. Section 18 reversed two mechanisms: the manager stopping the whole run became ending unnecessary tasks, and locks needed because claims go stale became an invented claim-timeout. Section 3 lost the lethal-trifecta targeting that gives the permission gate its point, generalizing it to high-risk calls. Seven absolutes were softened into hedges, among them context rot starting well before the window fills and an injected instruction the next session reads back. Section 21 dropped the contrast in stopping on a budget rather than on hope.
A second pass then settled mismatches that predate the replacement. Claims English never makes are gone: file inboxes crossing machines, gateway RPC, a loop that cannot be extracted, a catalog surviving a resume, one path shared by results and stops, pipeline as a routing example. Dropped detail is restored: the serialize, save, and GLOBAL_MODEL_STATS identifiers in the section 20 sources, locks guarding against double fire, a poll that saw no change, deterministic jitter, and reporting the spread rather than one number. Section 23 gives back any secret in place of a key, grounds the rubric in what a domain expert checks rather than who wrote it, and attributes score drift to a second model playing the user rather than to swapping that model.
Every section was audited against the English, and each finding was checked against the previous translation to separate a regression from long-standing wording. Structural parity holds across all twenty-five language trios: code fences, table rows, headings, links, diagrams, and the exact sets of URLs and image paths. Shell commands stay byte-identical across languages with only their comments translated, section cross-references are unchanged, no line exceeds 180 characters, and the twenty-three offline section tests pass.
All in three languages.
v1.5.0: + deepseek-harness
Adds deepseek-harness as the fourth system under study, pinned at dsh-v0.1.0-rc.7, across sections 1 to 8, 10 to 14, and 16 to 21.
A column lands only where the system has a real contrasting mechanism, so nineteen sections gain one and the rest do not. Section 9 gets nothing because there is no cross-run memory. Section 15 gets nothing because there is no worktree analogue. Section 22 gets a source cite only, since the answer matches the existing Claude Code column. Section 0 carries the thesis in prose: every part is a plugin, the loop included, and no core is privileged over the rest.
The mechanisms drawn out across the chain: a swappable loop plugin over a durable append-only session log, with turn and step admission through an inbox. A scoped tool registry with fail-closed parallel and exclusive scheduling. Deny-only monotonic guards, sandbox argv wrapping, and permission presets. Typed waterfall hooks with next() delegation, bridging Claude Code and Codex shell hooks under a deny > ask > allow merge. Compaction as a durable start-summary-end lock with a message projection and a spill store for oversized tool output. A system-prompt section registry ordered in numeric bands with scope shadowing and strict {{variable}} rendering. Retry as fresh numbered turns rather than a call wrapper, routing a canonical context-window error into compaction. Kind-agnostic background jobs with owner-session fencing and first-wins settlement. Session-local reminders with no cron and a five-minute floor. Hierarchical-only coordination where the report tool is the sole child-to-parent channel. ACP spoken both ways, as a server and as a client with a graded dispose ladder.
Three sections gain runnable demos, each section-local with no forward ripple: section 4 adds the hook waterfall with next() and the strictest-wins merge, section 8 adds a spill store that saves an oversized result whole and keeps a preview plus the path, and section 10 adds the ordered prompt-section registry.
All in three languages.
v1.4.0: + Evaluation
Adds section 23 evaluation (environments and resets, user simulation with progressive disclosure, dataset design and contamination defense, the metric dictionary, LLM-as-judge, statistical significance) with a runnable src/ carrying section 22 forward, and scopes section 20 back to observability so each section teaches one mechanism.
Then sixteen enrichment passes over the existing chain, adopted from ai-agent-book (《深入理解 AI Agent》, 李博杰). Section 16 gains the context sharing checklist, the topology taxonomy, the handoff packet, and the MAST failure taxonomy. Section 21 gains carrier routing and dual-loop separation. Section 11 gains a four-layer failure taxonomy and graded recovery. Section 2 gains tool granularity, description craft, and the coding search and edit comparisons. Section 3 gains the lethal trifecta and sandbox dimensions. Sections 8 and 10 gain context rot and the KV cache cost model. Smaller passes land in sections 0, 4, 7, 9, 13, 14, 17, 18, 19, 20, and 22.
Every touched section now separates what its runnable builds from what it only describes. Designs the src/ does not implement sit under a Further reading subsection after How it integrates, behind a one-line caveat naming the source and stating that the studied systems are not confirmed to work that way. Building that split surfaced three claims the prose had overstated, in sections 9, 20, and 21, all now corrected against the code.
Contradictions between the book and the studied systems are presented both ways, with observed behaviour as fact. Benchmark numbers without a named primary source were dropped rather than repeated.
All in three languages.
v1.3.0: + Graph engineering
Adds section 22 graph engineering (nodes, coded edges, cycles, agents as nodes) with a runnable src/ carrying section 21 forward, and updates section 19 for the stable 2026-07-28 MCP spec revision, in all three languages.
v1.2.0: + learn-agent-memory
Extracts the production memory track into the standalone learn-agent-memory repo, links it from the systems table and section 9 in all three languages, and adds CONTRIBUTING.md with a PR checklist.
v1.1.0: + Hermes Agent
Adds Hermes Agent as the second system under study across sections 00-20: skill evolution, session log search, scheduled channel delivery, bubbling timeout default-deny, and inbound channel gating.
v1.0.0: Claude Code
Harness architecture, sections 00-20, with Claude Code as the system under study.