MarkTechPost AIAI Agent

提示工程 vs 循環工程 vs 圖形工程:各層級有何不同

2026年7月29日 19:30

重點摘要

三個術語現正競爭AI工程職位描述中的同一行地位。提示工程是既有的主流。循環工程於2025年底進入AI詞彙,並主導了截至2026年6月的開發者討論。圖形工程則大約在六週後跟進。三者常被混用。但這合理嗎?它們並非互斥的技術,而是三個不同層級的管控單位,層層堆疊。提示控制單一模型回應,循環控制單一代理的行為週期,圖形則控制多個代理的組織架構。每一層級都保留其下層的基礎:提示不會因為被循環包覆就消失,只是不再由人工手動輸入。本文釐清三者差異:各層級設計什麼、公開論述如何區分、以及每個層級改變了什麼。

站內 AI 整理稿

Three terms now compete for the same line in AI engineering job descriptions.Prompt engineering is the established one.Loop engineering entered the AI vocabulary in late 2025 and dominated developer discussion through June 2026.Graph engineering followed roughly six weeks later.

They get used interchangeably.Should they be?The three are not competing techniques.They are three different units of control, stacked.A prompt controls one model response.A loop controls one agent’s behavior cycle.A graph controls the organization of many agents.

Each layer preserves the layer beneath it.A prompt does not disappear once a loop is built around it.it stops being the thing typed by hand.

This article separates the three: what gets designed at each layer, what the published claim says about when the higher layers pay for themselves, and where the skepticism is warranted.

One task, three layers :root{ --bg:#0B1E1E; --panel:#122C2C; --line:#274B4B; --ink:#E8F5F1; --muted:#8FB3AC; --prompt:#9BD7FF; --loop:#F2B705; --graph:#3FD9A8; --human:#FF9E7D; --mono:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,Consolas,monospace; --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif; } *{box-sizing:border-box} html,body{margin:0;padding:0;background:transparent} #plg-app{background:var(--bg); color:var(--ink); font-family:var(--sans); border:1px solid var(--line); border-radius:14px; overflow:hidden; max-width:920px; margin:0 auto} .

hd{padding:20px 22px 16px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,#143333 0%,#0B1E1E 100%)} .eyebrow{font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin:0 0 8px} .hd h2{margin:0; font-size:clamp(19px,2.

6vw,25px); line-height:1.2; letter-spacing:-.02em; font-weight:700} .hd p{margin:8px 0 0; color:var(--muted); font-size:14px; line-height:1.55; max-width:64ch} .

taskbar{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 22px; background:#0E2525; border-bottom:1px solid var(--line)} .taskbar .tl{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)} .taskbar .tv{font-size:14.

5px; font-weight:600; flex:1; min-width:210px} .btn{appearance:none; cursor:pointer; border:1px solid var(--line); background:#0B1E1E; color:var(--ink); font-family:var(--mono); font-size:11.5px; letter-spacing:.

06em; text-transform:uppercase; padding:9px 15px; border-radius:7px; transition:border-color .18s, background .18s} .btn:hover{border-color:var(--graph); background:#123232} .btn:focus-visible{outline:2px solid var(--graph); outline-offset:2px} .btn.

primary{border-color:var(--graph); color:var(--graph)} .btn[disabled]{opacity:.45; cursor:not-allowed} .lanes{display:grid; grid-template-columns:repeat(3,1fr); background:var(--panel)} .lane{padding:0 0 14px; border-right:1px solid var(--line)} .lane:last-child{border-right:0} .

lh{padding:13px 15px 11px; border-bottom:1px solid var(--line)} .lh .k{font-family:var(--mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase; margin:0 0 4px} .lane.p .lh .k{color:var(--prompt)} .lane.l .lh .k{color:var(--loop)} .lane.g .lh .k{color:var(--graph)} .

lh h3{margin:0; font-size:15px; letter-spacing:-.01em; font-weight:650} .lh .sub{margin:4px 0 0; font-size:12px; line-height:1.45; color:var(--muted)} .steps{list-style:none; margin:0; padding:12px 15px 0; min-height:250px} .

steps li{display:flex; gap:9px; align-items:flex-start; margin-bottom:9px; font-size:12.5px; line-height:1.45; opacity:0; transform:translateY(5px); transition:opacity .3s ease, transform .3s ease} .steps li.show{opacity:1; transform:none} .steps li .

dot{flex:0 0 auto; width:7px; height:7px; border-radius:50%; margin-top:5px; background:var(--line)} .lane.p .steps li.show .dot{background:var(--prompt)} .lane.l .steps li.show .dot{background:var(--loop)} .lane.g .steps li.show .dot{background:var(--graph)} .steps li.hum .

dot{background:var(--human) !important; box-shadow:0 0 0 3px rgba(255,158,125,.16)} .steps li .tx{color:var(--muted)} .steps li.hum .tx{color:var(--ink)} .steps li .tx b{color:var(--ink); font-weight:600} .steps li .

tx em{font-style:normal; color:var(--human); font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; display:block; margin-top:2px} .

lstat{margin:8px 15px 0; padding-top:11px; border-top:1px dashed var(--line); display:flex; gap:14px; flex-wrap:wrap; font-family:var(--mono); font-size:10.5px; color:var(--muted)} .lstat b{color:var(--ink)} .cmp{border-top:1px solid var(--line); background:#0E2525; padding:16px 22px 18px} .

cmp h4{margin:0 0 11px; font-family:var(--mono); font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); font-weight:500} table{width:100%; border-collapse:collapse; font-size:13px} th,td{text-align:left; padding:9px 10px; vertical-align:top; line-height:1.

45; border-bottom:1px solid #1c3a3a} thead th{font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:500} tbody th{font-family:var(--mono); font-size:10.5px; letter-spacing:.

06em; color:var(--muted); font-weight:500; width:150px} td{color:var(--ink)} .c-p{color:var(--prompt)} .c-l{color:var(--loop)} .c-g{color:var(--graph)} tbody tr:last-child th, tbody tr:last-child td{border-bottom:0} .

ft{padding:11px 22px; border-top:1px solid var(--line); background:#0E2525; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; color:var(--muted)} .

ft b{color:var(--graph); font-weight:600} @media (max-width:760px){ .hd{padding:16px 15px 13px} .taskbar{padding:13px 15px} .lanes{grid-template-columns:1fr} .lane{border-right:0; border-bottom:1px solid var(--line)} .lane:last-child{border-bottom:0} .steps{min-height:0; padding-bottom:4px} .

cmp{padding:14px 15px 16px; overflow-x:auto} table{min-width:520px} .ft{padding:10px 15px} } @media (prefers-reduced-motion:reduce){ .steps li{transition:none} } Interactive explainer · 01 One task, three layers — watch what changes The three terms are not competing techniques.

They are three different units of control.Here is the same job handled at each layer, step by step.Orange dots mark the moments a human is required.Task Fix the failing tests in the auth module, then open a pull request.Run all three Reset Layer 1 Prompt engineering You control one model response.

You are the loop.Your turns 0 · Model calls 0 Layer 2 Loop engineering You control one agent’s cycle.The loop does the prompting.Your turns 0 · Model calls 0 Layer 3 Graph engineering You control how many agents are organised.

Your turns 0 · Nodes 0 · Parallel 0 What actually differs PromptLoopGraph Unit of control One model response One agent’s behaviour cycle An organisation of agents What you write Instructions, examples, output format Trigger, tools, stop condition, retry budget Nodes, edges, shared state, failure routes Who says “again?

” A human, every turn A verifier the loop calls itself A routing rule written in advance Where it breaks Ambiguous or overstuffed instruction It cannot tell done from stuck Context never crossed an edge you forgot to draw Enough when One shot, a person reads the result Repetitive, machine-checkable, one domain Cross-domain work with parallel branches Illustrative walkthrough · step counts are not benchmarks Built by Marktechpost (function(){ var PROMPT = [ {h:1, t:"<b>You</b> write the prompt: fix the failing auth tests", tag:"you type"}, {h:0, t:"Model returns a patch for two files"}, {h:1, t:"<b>You</b> run pytest &mdash; two tests still fail", tag:"you verify"}, {h:1, t:"<b>You</b> paste the traceback back into the chat", tag:"you re-prompt"}, {h:0, t:"Model returns a revised patch"}, {h:1, t:"<b>You</b> run pytest &mdash; green &mdash; and open the PR", tag:"you finish"} ]; var LOOP = [ {h:0, t:"<b>Tr

Related

相關文章

當 human in the loop 變成“閉著眼睛點確認”,企業Agent 安全還能靠誰?

專家指出,AI Agent 從內容安全轉向行為安全,提示詞注入、工具濫用與過度授權成為主要風險。企業應建立可視、可管、可追溯的安全基線,並對工具權限進行最小化與臨時化管理,避免 human in the loop 淪為形式。安全防護需從靜態入口轉向動態行為約束,以因應 Agent 自主執行帶來的全新挑戰。

剛剛

開源Agent框架刷爆ARC-AGI-3,「自我改進」的RLM harness引爭議

一套開源Agent框架在ARC-AGI-3基準測試中創下超過85%的正確率,大幅領先其他解決方案,其核心是名為「RLM harness」的自我改進機制。然而,該方法引發學術爭議,部分研究者批評它透過反覆試錯「鑽漏洞」,不符合ARC-AGI評測一次性推理的精神。這場討論促使AI社群重新審視評測標準,並可能影響未來ARC-AGI版本的設計方向。

剛剛
TechWebAI Agent

ChinaJoy 2026 AI遊戲規模化落地,邊緣雲與API安全重構產業底層邏輯

2026年ChinaJoy展館,“與AI同遊”的主題隨處可見。行業調查顯示,僅有21%的企業擁有完整的API資產清單,大量後臺AI接口仍在無人監控的狀態下裸奔。合規與安全也同步下沉。算力下沉還不夠,API安全必須同步前移邊緣雲解決了體驗問題,但AI交互入口的安全,同樣需要前置到邊緣。算力與安全,缺一不可Akamai的判斷很明確:遊戲AI轉型不能割裂算力與安全。這也是遊戲廠商規模化落地AI智能體、構建AI原生遊戲的標準化底層方案。

4 小時前
量子位AI Agent

螞蟻集團開源Avernet,讓人與智能體像組織一樣高效協作

**螞蟻集團開源Avernet:打造人與智能體高效協作的“組織級”基礎設施** **來源:量子位** **2026-08-07 11:08:51** 近日,螞蟻集團正式宣佈開源多智能體協作基礎設施Avernet,其社區版本已同步上線。作為業界首個聚焦於“組織級協作”的智能體基礎設施,Avernet的首個版本重點開放了智能體協作網絡能力,旨在支持不同智能體之間的發現、共識達成、跨團隊協作與治理,為人工智能從“單點智能”走向“系統智能”提供關鍵支撐。

9 小時前