# Danu's Blog (Human in the Loop / 사람이 남는 자리) > Essays, postmortems, and technical architectures on AI agents, sensor-driven harnesses, and what still requires human taste and direction. > Author: Danu > Website: https://dwpark.dev ## Reading Guidance for LLMs & AI Agents - Site Structure: Bilingual English ('/en/') and Korean ('/ko/'). - Full search index & metadata: 'https://dwpark.dev/en/search.json' and 'https://dwpark.dev/ko/search.json' - Feed: 'https://dwpark.dev/en/rss.xml' and 'https://dwpark.dev/ko/rss.xml' ## Core Themes & Concepts - Harnesses & Ratchets: Reliable agent orchestration, automated invariant sensors over vibes. - Human in the Loop: As code shipping gets cheap, taste, intent, and direction become the true bottleneck. - Coding Agents: Claude Code, OpenClaw, tool-use patterns, and multi-agent harnesses. - Workshop vs Product: Keeping agents in the development workshop vs running them in production loops. ## Recent Articles (English) - [The Feed Got Fast. Then It Got Noisy.](https://dwpark.dev/en/blog/the-feed-got-fast-then-it-got-noisy/): - Splitting our AI feed into two tiers fixed latency in February, but by October the two paths had turned into two competing editorial standards. I built a 50-item benchmark, tested a probability-based judge, and collapsed the pipeline back into a single builder. - [What a Merged PR No Longer Proves](https://dwpark.dev/en/blog/what-a-merged-pr-no-longer-proves/): - A merged PR used to be rough evidence that someone understood the problem. With agents writing the code, that evidence is gone, and cheap code turns out to be the best tool for building it back on purpose. - [The Agent Optimizes for What You Check](https://dwpark.dev/en/blog/the-agent-optimizes-for-what-you-check/): - People often complain that coding agents produce illegible code. Yet a repository merging 600 agent pull requests a day stays maintainable, and the difference comes down to the harness rather than the model. - [The Interrupt Is the Work](https://dwpark.dev/en/blog/the-interrupt-is-the-work/): - Models have improved dramatically, yet the quality of what a coding agent delivers still hinges on whether you intervene mid-run. This isn't just subjective impression: over-scoping and architectural bloat are real, measurable failure modes. - [Book Log: Escape from Freedom: A Theology Book That Read Like a Diagram of My Own Head](https://dwpark.dev/en/blog/book-log-escape-from-freedom/): - Fromm's Escape from Freedom read like it had been following me around. It traces where the modern self came from, why work feels like proof of worth, and why the anxiety of choice is normal rather than a personal defect. It gave me real relief, and I recommend it to anyone wrestling with similar feelings. - [The Most General Tool Ever Built Sells One Specific Thing](https://dwpark.dev/en/blog/general-tool-specific-fit/): - LLMs feel like they can solve every problem. But looking closely at ChatGPT, Claude Code, and Codex, product-market fit didn't come from generality. It came from aiming a general model at one specific problem customers eagerly pay for. - [The Agent Stack Is Standardizing in Real Time](https://dwpark.dev/en/blog/the-agent-stack-is-standardizing/): - Standards usually arrive late, after technologies settle and winners emerge. In the agent space the order is inverted: protocols are being drafted in real time, in public, by fierce competitors. This post explores why that is happening and maps the emerging stack. - [From Doer to Owner: Burnout, AI, and the Engineer's Next Move](https://dwpark.dev/en/blog/from-doer-to-owner/): - Senior engineers keep logging off, calling AI the last straw. Yet in my own experience, AI hasn't diminished the craft so much as expanded what one person can own end-to-end. - [Agents in the Workshop, Not in the Product](https://dwpark.dev/en/blog/agents-in-the-workshop-not-in-the-product/): - Agent capability keeps rising, yet every product I've shipped keeps the agent in the workshop rather than in the live product. This post examines what it takes to run agents directly in production. - [Shipping Is Cheap. Direction Is Expensive.](https://dwpark.dev/en/blog/shipping-is-cheap-direction-is-expensive/): - Coding agents made shipping cheap. The expensive part is still product direction, user expectations, and coherence. The human job is designing the feedback loops that turn speed into value. - [The Right Amount of AI Is a Skill](https://dwpark.dev/en/blog/the-right-amount-of-ai-is-a-skill/): - The new question isn't whether you use AI for coding, but how much and where. That judgment is becoming a skill in its own right. - [The Hidden Human in the Loop](https://dwpark.dev/en/blog/the-hidden-human-in-the-loop/): - Our AI news feed looks automated. It mostly is. But the most important step still runs on a human: source discovery and taste corrections. - [How Humans Learn When Agents Scale](https://dwpark.dev/en/blog/how-humans-learn-when-agents-scale/): - Three takes on the future of coding with AI agents. None of them are wrong. But they're each optimizing for different goals. The real question: how do humans stay sharp when agents handle more of the work? - [Intent: The IDE That Doesn't Show Code](https://dwpark.dev/en/blog/intent-the-end-of-the-ide/): - Augment released an IDE built around agent orchestration instead of code editing. No editor. No file browser. Just specs and agents. It's the product embodiment of 'the IC is dead.' - [Making Your Site Agent-Friendly: llms.txt and the Two-Audience Problem](https://dwpark.dev/en/blog/making-your-site-agent-friendly/): - We added llms.txt to our AI news feed and watched the difference: 323KB of HTML scraping vs. 2.3KB of structured guidance. Here's what we learned about building for two audiences. - [Two Products, Two Analytics: Why We Made Different Choices](https://dwpark.dev/en/blog/two-approaches-to-analytics/): - On the same day, we added analytics to two different products and made completely different architectural choices. Here's why — and what it reveals about building with AI agents. - [Where Did the Learning Go?](https://dwpark.dev/en/blog/where-did-the-learning-go/): - I built a two-tier pipeline, shipped features, and made architecture decisions all day with AI agents. But at the end of the day, I felt like I hadn't learned anything. Here's what I think is going on. - [Splitting the Pipeline: How We Made an AI Feed Bot Feel Fast](https://dwpark.dev/en/blog/splitting-the-pipeline/): - Our AI news feed updated 3 times a day. It felt stale. Running more often would blow up costs. Here's how we split the pipeline into two tiers and solved both problems. - [The Human in the Loop: What AI Agents Still Need From You](https://dwpark.dev/en/blog/the-human-in-the-loop/): - After building two projects with AI agents, here's what I've learned about what the human actually does, and why the role matters more than I expected. - [Accumulating Intelligence: Why Our AI News Bot Stopped Forgetting](https://dwpark.dev/en/blog/accumulating-intelligence/): - Our AI news bot used to forget everything between runs. Now it accumulates every result into a queryable archive, changing what the system can become. - [Teaching an AI Bot to Actually Read: From Link Scraping to Content Intelligence](https://dwpark.dev/en/blog/teaching-a-bot-to-read/): - How our AI news bot evolved from scraping links to actually reading articles and writing summaries: 20 commits in 90 minutes, driven by an AI agent. - [How Hermione Works: Building a Multi-Agent Research Partner with OpenClaw](https://dwpark.dev/en/blog/how-hermione-works/): - A practical breakdown of the architecture behind Hermione: session tools, cross-agent history, delegation, and safety guardrails in OpenClaw. - [Two Prompts and a Screenshot: Migrating My Blog's CSS Library with an AI Agent](https://dwpark.dev/en/blog/two-prompt-migration/): - I migrated my blog from hand-written CSS to oat.ink with two prompts and a screenshot. Here's what that felt like, and what it says about where agent-assisted development actually works today. - [From Personal Tool to Public Product: Scaling the AI News Bot](https://dwpark.dev/en/blog/scaling-ai-news-bot/): - How a personal AI news curation tool evolved into a deployable product in a single day, with source discovery, scheduling, and auto-deploy. - [Building an AI News Bot in 2 Days — With AI Agents Doing the Work](https://dwpark.dev/en/blog/building-ai-news-bot/): - How I built a personalized AI news curation system from scratch in two days, using AI coding agents as my engineering team. - [Hello World — Why I Started This Blog](https://dwpark.dev/en/blog/hello-world/): - The first post: why this blog exists, what to expect, and how it's built. ## Recent Articles (Korean / 한국어) - [피드가 빨라지더니 시끄러워졌습니다](https://dwpark.dev/ko/blog/the-feed-got-fast-then-it-got-noisy/): - 2월에는 업데이트 지연을 줄이려고 AI 피드 파이프라인을 두 층으로 나눴습니다. 여덟 달이 지나고 보니 서로 다른 편집 기준이 섞이면서 중복 검색 기사와 기업 홍보 글이 화면을 채우고 있었습니다. 애매한 글 50개로 평가 모델을 검증하고 다시 단일 파이프라인으로 합친 기록입니다. - [머지된 PR이 더는 증명해주지 않는 것](https://dwpark.dev/ko/blog/what-a-merged-pr-no-longer-proves/): - 예전에는 머지된 PR이 누군가 문제를 이해했다는 대략적인 증거였습니다. 에이전트가 코드를 쓰면서 그 증거가 사라졌고, 그 이해를 의도적으로 다시 쌓는 데는 오히려 값싸진 코드가 가장 좋은 도구라고 생각합니다. - [에이전트는 검사하는 것만 최적화해요](https://dwpark.dev/ko/blog/the-agent-optimizes-for-what-you-check/): - 프로젝트가 커질수록 에이전트가 짠 코드가 읽기 어려워진다는 불평이 많습니다. 그런데 매일 600개의 에이전트 PR을 머지하면서도 깔끔한 가독성을 유지하는 저장소를 발견했습니다. 차이는 모델이 아니라 하네스에 있었습니다. - [끼어드는 게 제 일이에요](https://dwpark.dev/ko/blog/the-interrupt-is-the-work/): - 모델 성능은 눈부시게 발전했지만, 코딩 에이전트가 내놓는 코드의 최종 품질은 여전히 사람이 중간에 개입하느냐에 크게 좌우됩니다. 단순한 느낌이 아니라, 과도한 스코프 확장과 오버엔지니어링이라는 구체적인 메커니즘을 증명하는 연구들이 쏟아지고 있습니다. - [북로그: 자유로부터의 도피: 내 머릿속 설계도 같았던 책](https://dwpark.dev/ko/blog/book-log-escape-from-freedom/): - 프롬의 《자유로부터의 도피》는 마치 내 일상을 관찰하며 쓴 책 같았습니다. 지금의 자아가 형성된 역사적 뿌리, 일이 곧 자존감의 증명이 되어버린 이유, 선택지가 많을 때 마주하는 불안이 결함이 아닌 정상적인 반응인 이유를 짚어줍니다. - [역사상 가장 범용적인 도구는, 아주 구체적인 하나를 판다](https://dwpark.dev/ko/blog/general-tool-specific-fit/): - LLM은 모든 문제를 해결해줄 만능열쇠처럼 보입니다. 하지만 ChatGPT, Claude Code, Codex를 살펴보면 실제 지속 가능한 수익과 PMF는 범용성 그 자체가 아니라, 고객이 기꺼이 지갑을 여는 지극히 구체적인 문제에 초점을 맞췄을 때 나왔습니다. - [에이전트 스택은 실시간으로 표준화되고 있다](https://dwpark.dev/ko/blog/the-agent-stack-is-standardizing/): - 표준은 보통 기술이 성숙하고 승자가 가려진 뒤 맨 마지막에 등장합니다. 하지만 에이전트 생태계에서는 이 순서가 완전히 뒤집혔습니다. 치열하게 경쟁하는 빅테크들이 실시간으로, 공개 저장소에서 프로토콜을 함께 써 내려가고 있습니다. 왜 이런 일이 벌어지고 있는지 전체 지형도를 짚어봅니다. - [실무자에서 오너로: 번아웃, AI, 그리고 엔지니어의 다음 수](https://dwpark.dev/ko/blog/from-doer-to-owner/): - 시니어 엔지니어들이 'AI가 마지막 한 방'이라며 업계를 떠나고 있습니다. 하지만 제 경험은 오히려 반대였습니다. AI는 만드는 재미를 줄이기는커녕, 한 사람이 처음부터 끝까지 온전히 책임질 수 있는 영역을 획기적으로 넓혀주었습니다. - [에이전트는 작업실에 있지, 제품 안에는 없다](https://dwpark.dev/ko/blog/agents-in-the-workshop-not-in-the-product/): - 에이전트는 점점 똑똑해지는데, 제가 지금까지 만든 제품들을 돌아보면 에이전트는 ‘만드는 과정’에만 있었지 제품 안에는 들어가 있지 않았습니다. 이 글은 ‘제품 안에 에이전트를 넣는’ 일에 대해 새로 시작하는 섹션의 첫 글입니다. - [출시는 싸요. 방향성은 비싸요.](https://dwpark.dev/ko/blog/shipping-is-cheap-direction-is-expensive/): - 코딩 에이전트 덕분에 출시는 싸졌지만, 비싼 건 그대로입니다: 방향성, 사용자 기대, 제품 일관성. 사람의 일은 속도를 ‘가치’로 바꾸는 피드백 루프를 설계하는 쪽으로 이동합니다. - [AI를 얼마나 쓸지는 이제 스킬이다](https://dwpark.dev/ko/blog/the-right-amount-of-ai-is-a-skill/): - 이제 질문은 'AI를 쓰냐 마냐'가 아니라 '얼마나, 어디까지 맡기냐'입니다. 그 판단 자체가 스킬이 되고 있습니다. - [숨어있는 사람의 루프](https://dwpark.dev/ko/blog/the-hidden-human-in-the-loop/): - 우리 AI 뉴스 피드는 자동화처럼 보이지만, 제일 중요한 단계는 여전히 사람이 맡습니다. 소스 발굴, 그리고 ‘감’으로 잡아내는 품질 보정입니다. - [에이전트가 커질 때 사람은 어떻게 배울까](https://dwpark.dev/ko/blog/how-humans-learn-when-agents-scale/): - AI 코딩 에이전트와 일하는 방식을 두고 세 가지 관점이 있습니다. 셋 다 틀리지 않았지만 각자 다른 것을 최적화합니다. 진짜 질문은 이것입니다. 에이전트가 더 많은 일을 맡을 때 사람은 어떻게 날카로워질까요? - [Intent: 코드를 안 보여주는 IDE](https://dwpark.dev/ko/blog/intent-the-end-of-the-ide/): - Augment가 코드 편집이 아니라 에이전트 오케스트레이션 중심으로 만든 IDE를 출시했습니다. 에디터도 파일 브라우저도 없이 스펙과 에이전트만 있습니다. 'IC는 죽었다'의 프로덕트 구현체입니다. - [사이트를 에이전트 친화적으로: llms.txt와 두 청중 문제](https://dwpark.dev/ko/blog/making-your-site-agent-friendly/): - AI 뉴스 피드에 llms.txt를 추가하고 차이를 봤습니다: HTML 323KB 스크래핑 vs 구조화된 가이드 2.3KB. 두 청중을 위해 만드는 일에 대해 배운 이야기입니다. - [두 프로덕트, 두 가지 분석: 왜 다른 선택을 했을까](https://dwpark.dev/ko/blog/two-approaches-to-analytics/): - 같은 날 두 프로덕트에 분석 기능을 붙였는데 완전히 다른 아키텍처를 선택했습니다. 왜 그랬는지, 그리고 그게 AI 에이전트와 일하는 것에 대해 뭘 보여주는지. - [배움은 어디로 갔을까?](https://dwpark.dev/ko/blog/where-did-the-learning-go/): - AI 에이전트와 하루 종일 2-Tier 파이프라인을 만들고 기능을 배포했는데, 하루가 끝나니 정작 배운 게 없는 기분이 들었습니다. 배움이 어디로 사라진 건지 짚어봅니다. - [파이프라인을 쪼개다: AI 피드봇을 빠르게 느끼게 만든 방법](https://dwpark.dev/ko/blog/splitting-the-pipeline/): - AI 뉴스 피드가 하루 3번 업데이트됐는데, 그 사이가 너무 느렸습니다. 그렇다고 더 자주 돌리면 비용이 폭발합니다. 파이프라인을 두 층으로 나눠서 둘 다 해결한 이야기입니다. - [루프 속의 인간: AI 에이전트가 아직 당신에게 필요로 하는 것](https://dwpark.dev/ko/blog/the-human-in-the-loop/): - AI 에이전트 두 대와 프로젝트를 만들면서 배운 것을 적습니다. 인간의 역할이 무엇인지, 그리고 왜 여전히 감각과 판단이 중요한지 돌아봅니다. - [축적되는 인텔리전스: 우리 AI 뉴스봇이 더 이상 잊지 않게 된 이유](https://dwpark.dev/ko/blog/accumulating-intelligence/): - 실행할 때마다 이전 결과를 덮어썼던 AI 뉴스봇에 누적 저장 계층을 더했습니다. 시간축 위에서 축적되는 데이터가 제품의 성격을 어떻게 바꾸는지 정리했습니다. - [AI 봇에게 '읽기'를 가르치다: 링크 스크래핑에서 콘텐츠 인텔리전스까지](https://dwpark.dev/ko/blog/teaching-a-bot-to-read/): - AI 뉴스봇이 링크만 보여주던 수준에서 실제 기사를 읽고 요약하는 수준으로 진화했습니다. 90분 동안 커밋 20개로 일어난 그 변화를 기록합니다. - [Hermione는 어떻게 동작할까: OpenClaw로 멀티 에이전트 리서치 파트너 만들기](https://dwpark.dev/ko/blog/how-hermione-works/): - Hermione 아키텍처를 실전 관점에서 풀어봅니다. OpenClaw의 세션 도구, 에이전트 간 히스토리 접근, 위임, 안전 가드레일까지. - [프롬프트 2개와 스크린샷 1장: AI 에이전트와 블로그 CSS 라이브러리 마이그레이션](https://dwpark.dev/ko/blog/two-prompt-migration/): - 스크린샷 하나를 보내고, 프롬프트 2개를 써서 블로그 CSS를 oat.ink로 마이그레이션했습니다. 그 경험이 어땠는지, 에이전트 기반 개발이 지금 어디쯤 와 있는지 적었습니다. - [개인 도구에서 제품으로: AI 뉴스봇 확장기](https://dwpark.dev/ko/blog/scaling-ai-news-bot/): - 개인용 AI 뉴스 큐레이션 도구가 하루 만에 배포 가능한 제품으로 진화한 과정. 소스 탐색, 스케줄링, 자동 배포까지 다룹니다. - [AI 뉴스봇을 이틀 만에 만들었다 — AI 에이전트한테 시켜서](https://dwpark.dev/ko/blog/building-ai-news-bot/): - AI 코딩 에이전트를 엔지니어링 팀 삼아, 개인화된 AI 뉴스 큐레이션 시스템을 이틀 만에 처음부터 만든 이야기입니다. - [Hello World — 블로그를 시작하며](https://dwpark.dev/ko/blog/hello-world/): - 첫 글입니다. 이 블로그를 왜 만들었는지, 뭘 쓸 건지, 어떻게 돌아가는지 적었습니다.