<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SSRF on YennJ12 Engineering Blog</title><link>https://yennj12.js.org/yennj12_blog_V4/tags/ssrf/</link><description>Recent content in SSRF on YennJ12 Engineering Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 07 Aug 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://yennj12.js.org/yennj12_blog_V4/tags/ssrf/feed.xml" rel="self" type="application/rss+xml"/><item><title>OpenWorker 深度解析（三）：Harness — 權限模型、Inbox 與人機協作</title><link>https://yennj12.js.org/yennj12_blog_V4/posts/openworker-intro-part3-harness-permissions-inbox-zh/</link><pubDate>Fri, 07 Aug 2026 11:00:00 +0800</pubDate><guid>https://yennj12.js.org/yennj12_blog_V4/posts/openworker-intro-part3-harness-permissions-inbox-zh/</guid><description>大多數 agent 專案的安全設計是：「危險工具加一個 confirm()」。 好一點的會做 allowlist。 但真正的問題不是「要不要問」，而是「沒人在的時候要問誰」、 「問完之後進程重開了怎麼辦」、以及「模型讀到的網頁叫它去打 169.254.169.254 怎麼辦」。
本篇是 OpenWorker 深度解析系列 的第三篇。前一篇把 agent 迴圈拆完了，這一篇處理迴圈外面的東西 —— 也就是 harness（外殼）。
一、Harness 是什麼，以及為什麼它比迴圈大 30 倍 「Agent harness」指的是包在 LLM 迴圈外面、決定它能做什麼、不能做什麼、 做之前要不要問人的那一整套機制。
┌─────────────────────────────────────────────────────────────────────────┐ │ Harness（本篇主題） │ │ │ │ ┌───────────────┐ ┌────────────────┐ ┌──────────────────────────┐ │ │ │ 風險分類 │ │ 權限決策 │ │ 人類決策路由 │ │ │ │ risk.py 58 行 │─▶│ permissions.py │─▶│ Inbox 368 + unattended │ │ │ └───────────────┘ │ 238 行 │ │ + durable resume │ │ │ └────────────────┘ └──────────────────────────┘ │ │ │ │ ┌───────────────┐ ┌────────────────┐ ┌──────────────────────────┐ │ │ │ 輸入防線 │ │ 輸出防線 │ │ 稽核 │ │ │ │ web/guard.</description></item></channel></rss>