AI 圈又成功制造了個(gè)焦慮:Agent Harness Engineering。
一堆開(kāi)源項(xiàng)目已經(jīng)開(kāi)始改名、改項(xiàng)目描述了,也有自媒體開(kāi)始寫(xiě)稿告訴大家 Harness 是你必須學(xué)會(huì)的概念了。
但你肯定沒(méi)看懂,因?yàn)閷?xiě)這篇稿子前,我看了不下 50 篇,一篇寫(xiě)明白的都沒(méi)有。
全是“框架”、“設(shè)施”、“規(guī)范”之類(lèi)的高大上用詞,越看越??焦慮。
另一個(gè)原因是,此刻所有 Harness 相關(guān)內(nèi)容都是拿 coding 場(chǎng)景來(lái)論述的。
別慌,我來(lái)了。
這篇文章,拿一個(gè)人人都知道(雖然不一定能做好)的場(chǎng)景,一點(diǎn)點(diǎn)把韁繩給 Agent 套上。
讓 Agent 圍繞指定主題撰寫(xiě)公眾號(hào)文章。怎么 Harness
懶得看論述過(guò)程,看完下面這幾句話可以走了:
- Harness 核心是一個(gè)更細(xì)化約束 Agent 的策略,通過(guò)提示詞和一系列工具
- 底層支持是“把作業(yè)步驟原子化拆解,直到每一步都可以管理、可檢查、可回滾、有復(fù)盤(pán)”
- 所謂“框架”和“設(shè)施”,就是一系列工具,讓 AI 按說(shuō)明調(diào)用
- 馬跑太快了,需要一個(gè)韁繩約束:別瘋跑,走一步、驗(yàn)證一步、記錄一步
- 不是一匹馬跑全程,而是一堆沒(méi)有上下文干擾的子 Agent 分工完成
以寫(xiě)一篇文章這個(gè)任務(wù)為例,Harness 的做法應(yīng)該是:
- 有一個(gè)細(xì)化 brief 與你討論并存儲(chǔ)為
.md的原子任務(wù) - 有一個(gè)學(xué)習(xí)參考文章風(fēng)格并存儲(chǔ)為按板塊結(jié)構(gòu)化分段
.md的原子任務(wù) - 有一個(gè)根據(jù) brief 檢索資料、自驗(yàn)證資料相關(guān)性、抽取有效信息,并分別存儲(chǔ)為一堆參考資料
.md的原子任務(wù) - 有一個(gè)根據(jù) brief 和支持資料撰寫(xiě)文章大綱,并存儲(chǔ)為
.md的原子任務(wù) - 有一堆根據(jù)大綱找匹配支持資料各寫(xiě)一段并分別存儲(chǔ)為一堆文章片段
.md的原子任務(wù) - 有一個(gè)一段一段看文章判斷要不要搞個(gè)配圖、按需生成配圖的原子任務(wù)
- 有一個(gè)拿片段測(cè)試排版風(fēng)格、選擇最終風(fēng)格、輸出公眾號(hào)排版的原子任務(wù)
關(guān)鍵一:不是并行或者串行一個(gè)一個(gè)搞完,而是做一個(gè)、存一個(gè)、驗(yàn)證一個(gè),遇到問(wèn)題解決問(wèn)題、記錄解決過(guò)程、更新ToDo.md。
關(guān)鍵二:所有規(guī)范和產(chǎn)出物都是.md,所有參與作業(yè)的 Agent 都能讀、能編輯更新這些文檔
要支持這個(gè) Harness 作業(yè)規(guī)范,需要這些工具:
- 一個(gè)一堆文檔的工作空間,每個(gè)子任務(wù)完成以后,用 git 管理版本
- 一個(gè)讓每個(gè)零上下文的 Agent 上手就能看懂怎么干活的
Agent.md文檔 - 支持按關(guān)鍵詞搜索空間內(nèi)文檔/文檔片段的
sed或其他 CLI 搜索權(quán)限閱讀
三句話總結(jié),每次 Agent 作業(yè)都是:
- 把狀態(tài)從上下文
.md里拿出來(lái) - 把過(guò)程留痕到指定
.md - 一步一個(gè)版本,每次都是新起點(diǎn),每次獨(dú)立的上下文
工作空間大概如下:
![]()
具體怎么實(shí)現(xiàn)
- 理論上,這需要一套代碼構(gòu)成的工程手段來(lái)約束,為了便于各位 PM 理解,我用
提示詞Skills的方式構(gòu)造了這個(gè) Harness 流程。 - 代碼工程約束的是一輪一輪在循環(huán)中作業(yè)的 Agent,因?yàn)閼械脤?zhuān)門(mén)寫(xiě)項(xiàng)目,我這里用了
子 Agent來(lái)代指每一輪作業(yè)的 Agent。
項(xiàng)目結(jié)構(gòu)如下:
![]()
首先是約束整體的Agent.md,它統(tǒng)領(lǐng)了全局,每一個(gè)(實(shí)際上是每一輪)參與作業(yè)的 Agent 都要了解“大家”在做什么、怎么做。
看起來(lái)簡(jiǎn)單,但也寫(xiě)了 400+行,以下僅放大綱:(完整Demo獲取方式在文末)
![]()
相比于常規(guī)的約束提示詞,這里面大量的篇幅在描述:
- 如何更新 todo.md,包括格式規(guī)范、狀態(tài)流轉(zhuǎn)、編號(hào)、上下文依賴(lài)、認(rèn)領(lǐng)與鎖定
- 每一個(gè)大任務(wù)階段的總體驗(yàn)證標(biāo)準(zhǔn),以及下一級(jí)到原子任務(wù)如何細(xì)化
- 失敗任務(wù)處理和記錄的規(guī)范
- 版本管理:多輪無(wú)完整上下文的 Agent 之間協(xié)作是否友好非常依賴(lài)這個(gè)
然后就是確保全局作業(yè)足夠原子化的初始化,使用一個(gè)init-skill技能來(lái)實(shí)現(xiàn),其中包含兩個(gè)活:
- 使用程序直接初始化一個(gè)工作空間,里面預(yù)設(shè)好文件夾和文檔模板
- 讓初始化 Agent 編寫(xiě)初步的
brief.mdtodo.md
需要特別注意的是,ToDo 應(yīng)該有嚴(yán)格的原子化約束和流程約束,以確保每個(gè)“入局”的 Agent,既執(zhí)行最小可控步驟、又能流暢與其他 Agent 完成協(xié)作。
其他風(fēng)格提取、搜索、寫(xiě)作、配圖、排版等大步驟,每一個(gè)都是要拆的最小單元和最小上下文引用,也都有明確的指示。
以寫(xiě)某一個(gè)段落為例,Agent 領(lǐng)到的任務(wù)是這樣的:
- 你要寫(xiě)第 X 段
- 段落主題為:……
- 執(zhí)行
grep -A 20 "### 第二節(jié)" outline.md獲取章節(jié)大綱 - 執(zhí)行
python3 skills/get-style-skill/scripts/query_style.py --soul style/soul.md --section "tone/explaining"獲取段落參考風(fēng)格碎片 - 執(zhí)行
grep -l "topics:.*agent harness" workspace/{topic}/sources/verified/*.md按關(guān)鍵詞檢索可用資料,或grep -A 5 "## 可引用觀點(diǎn)" workspace/{topic}/sources/verified/SRC-001.md檢索可引用的觀點(diǎn) - 輸出產(chǎn)出到
draft/intro.md文檔 - 如果遇到錯(cuò)誤,記下報(bào)錯(cuò)和修復(fù)過(guò)程,更新到
memory/下的decisions.mdrun_log.md - 更新
todo.md,然后 git 保存版本 - 退出任務(wù)。
然后下一個(gè) Agent 進(jìn)來(lái)以后,領(lǐng)到的任務(wù)是:
- 拉取 xx 段內(nèi)容,看看有沒(méi)有必要配個(gè)圖
- 有必要的話,使用
gen-image-skill做配圖 - 然后驗(yàn)證生成的圖片,是否匹配,不行重新搞一張
- 記錄錯(cuò)誤、更新 todo、git 保存版本、退出
每一個(gè)任務(wù)都是認(rèn)領(lǐng)任務(wù)、拉取最小單元上下文、干活、驗(yàn)證、保存、走人。
Harness 的命門(mén)
某種意義上,Harness 其實(shí)是 Skills 的升級(jí)版:從單一節(jié)點(diǎn)任務(wù)的最佳實(shí)踐約束上升到 Agent 整體任務(wù)的約束。
它需要“騎手”至少具備以下兩個(gè)能力:
- 任務(wù)原子化拆解的能力(產(chǎn)品經(jīng)理基本功)
- 對(duì)整個(gè)任務(wù)自上而下、自下而上所有產(chǎn)出的細(xì)節(jié)的銜接
這兩個(gè)能力,其實(shí)只要你過(guò)去從 0-1 寫(xiě)過(guò) PRD,基本都能勝任。
缺的只是對(duì)大模型的理解:哪些環(huán)節(jié)人來(lái)做、哪些環(huán)節(jié) AI 來(lái)做、哪些環(huán)節(jié)程序?qū)崿F(xiàn)。
我的《AI 產(chǎn)品經(jīng)理轉(zhuǎn)崗特訓(xùn)營(yíng)》線上課程有你缺失的一切。
這套課程經(jīng)過(guò)了 2 年 + 7 輪迭代,包含了過(guò)去 2 年 AI 產(chǎn)品一路進(jìn)化過(guò)來(lái)的所有必備技能。
不管你是要做公司的 AI 賦能規(guī)劃還是要轉(zhuǎn)崗成為一名大模型行業(yè)從業(yè)者,它都能以更快的速度幫你補(bǔ)齊:
![]()
詳細(xì)的課程大綱和學(xué)習(xí)計(jì)劃,可以聯(lián)系班主任獲得。
如果你想要抓住這波金三銀四轉(zhuǎn)崗的機(jī)會(huì),我還提供了實(shí)訓(xùn)項(xiàng)目帶教,幫你補(bǔ)齊沒(méi)有項(xiàng)目經(jīng)驗(yàn)的短板。
?1. 5個(gè)應(yīng)對(duì)招聘 AI 能力要求的實(shí)訓(xùn)項(xiàng)目![]()
?2. 5個(gè)企業(yè)級(jí)項(xiàng)目&產(chǎn)品經(jīng)理能力養(yǎng)成實(shí)訓(xùn)
?3. 持續(xù)更新的實(shí)訓(xùn)項(xiàng)目帶教直播![]()
這些項(xiàng)目是已經(jīng)被大量同學(xué)驗(yàn)證有效的,可以被寫(xiě)進(jìn)簡(jiǎn)歷,大大增加你的面試機(jī)會(huì)和通過(guò)率!
![]()
更多實(shí)戰(zhàn)安排和成功學(xué)員案例,聯(lián)系班主任了解~
技術(shù)和玩法高速迭代,所以機(jī)會(huì)窗口不會(huì)太久。
唯一的解法就是,小不快跑加入進(jìn)來(lái)。
進(jìn)來(lái)就不怕技術(shù)迭代,不進(jìn)來(lái)門(mén)檻只會(huì)越來(lái)越高。
本文提到的 Agent 寫(xiě)作 Harness-Demo,已經(jīng)同步在課程的支持文檔中,已經(jīng)報(bào)名的同學(xué)可以直接移步查看。
我也會(huì)在接下來(lái)的答疑直播中問(wèn)大家展開(kāi)講解。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.