<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Harness on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/harness/</link><description>Recent content in Harness on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Sat, 04 Jul 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/harness/feed.xml" rel="self" type="application/rss+xml"/><item><title>Auto Agent System - Part 2 - Harness 引擎:多模型容錯、自我修正與 LLM 評審</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/auto-agent-system-part2-harness-engine-zh/</link><pubDate>Sat, 04 Jul 2026 10:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/auto-agent-system-part2-harness-engine-zh/</guid><description>Demo 版的 AI:json.loads(resp.content)——今天能跑。 上線版的 AI:模型回了 ```json {...} ```、或回 429、或一本正經編造欄位——明天就炸。 差別不在模型多強,而在你有沒有一層「挽具」接住這些意外。 這一篇就是拆解 agent_auto_system 的 Harness 引擎——它如何把不可靠的 LLM,變成可預測的服務。
Part 1 我們鳥瞰了整個系統,並指出 executor.py 和 harness/ 是心臟。這一篇我們把它剖開,順著這個專案的 merged PR 歷史,看它是如何一步步長出「可靠性」的。
Harness 層有五個元件:
src/automation/harness/ ├── provider.py 選模型、算 fallback 順序 ├── validator.py 每個任務的結果驗證規則 ├── evaluator.py 獨立的 LLM 評審,0–100 打分 ├── costs.py token 用量與美元成本估算 └── langfuse_tracer.py 可觀測性(Part 4 深入) 我們一個一個看,並穿插它們背後的 PR。
一、最不起眼卻最致命的第一個坑:被 markdown 包住的 JSON 對應 PR #1:fix: parse markdown-fenced JSON from LLM flow output
任何做過 LLM 結構化輸出的人都遇過這件事。你在 prompt 裡明明白白寫「只回 JSON」,結果模型很貼心地回你:</description></item><item><title>Auto Agent System - Part 1 - 系統總覽:一個 CrewAI 多代理自動化平台如何運作</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/auto-agent-system-part1-overview-zh/</link><pubDate>Sat, 04 Jul 2026 09:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/auto-agent-system-part1-overview-zh/</guid><description>大部分人寫 AI Agent:把 prompt 丟給 OpenAI SDK,拿到字串,json.loads(),能跑就好。 出事了才發現:模型偶爾回 markdown 包住的 JSON、偶爾 429、偶爾一本正經地亂編——每個任務都要各自處理一次。 這個專案的答案是:把「跟 LLM 打交道的所有髒活」抽成一層 Harness,讓業務邏輯乾乾淨淨。 這一系列會帶你從架構總覽,一路讀到它每一個 merged PR 背後的工程決策。
本系列以 yennanliu/agent_auto_system 這個開源專案為主角,一共五篇:
Part 1(本篇):系統總覽、架構、資料流 Part 2:Harness 引擎——多模型容錯、自我修正、LLM 評審、成本追蹤 Part 3:自動化任務實戰——Shopee 爬蟲、Google Maps 名單、Tasker 自動提案 Part 4:生產化之路——Langfuse 可觀測性、Docker 瘦身、AWS 部署、權限系統 Part 5:前端體驗與 Pipeline 編排——SSE 即時串流、多步驟任務鏈 一、這個系統到底在做什麼 一句話:它是一個「AI 自動化任務的執行平台」。你在網頁上選一個任務(例如「爬 Shopee 賣家」「從 Google Maps 收集潛在客戶名單」「自動幫我在 tasker.com.tw 投標」),填幾個欄位,選一個 LLM 供應商與模型,按下執行——系統就會在背景跑一整個 AI 代理流程,並把進度即時串流回你的畫面。
它不是一個聊天機器人,而是一個把「重複性的知識工作」變成一鍵可執行任務的平台。目前內建 11 種任務類型:
任務類型 做什麼 ────────────────────────────────────────────────────────────── google_form_fill AI 檢視並自動填寫/提交 Google 表單 web_scraper 抓取網址,回傳結構化摘要 google_sheet_reader 讀取公開 Google Sheet,做欄位/統計分析 shopee_seller_scraper 從熱門商品收集賣家清單(最多 100 筆) profit_health_check 四個 agent 協作,分析 Shopee CSV,輸出 PDF 報告 x_scraper 抓取公開 X(Twitter)帳號的近期貼文 hacker_news_digest 把 HN 熱門文章整理成摘要 email_collect Google Maps 漏斗:找商家 → 抓 email → 驗證 → 分級 tasker_apply 自動在 tasker.</description></item><item><title>Harness 工程入門指南：AI 時代的基礎設施自動化</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/harness-engineering-intro-ai-zh/</link><pubDate>Sat, 11 Apr 2026 10:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/harness-engineering-intro-ai-zh/</guid><description>深入探討 Harness 在 AI 時代的角色，從基本概念、核心功能到實戰應用，幫助工程團隊建立高效的自動化部署流程，加速 AI 應用的上線速度。</description></item></channel></rss>