2025年初,一個(gè)AWS工程師在內(nèi)部測(cè)試時(shí)隨手寫(xiě)了段注釋,結(jié)果系統(tǒng)直接把自然語(yǔ)言編譯成了Python函數(shù)。三個(gè)月后,這個(gè)功能被塞進(jìn)Strands Labs——AWS專門(mén)用來(lái)放"瘋狂實(shí)驗(yàn)"的GitHub組織。現(xiàn)在它叫AI Functions,能讓開(kāi)發(fā)者用三行文檔字符串替代過(guò)去幾十行的格式檢測(cè)、提示工程、重試循環(huán)。
這不是低代碼平臺(tái)那種拖拖拽拽的玩具,而是給已經(jīng)用慣Strands Agents SDK的架構(gòu)師準(zhǔn)備的手術(shù)刀。
從"寫(xiě)代碼"到"寫(xiě)意圖":一個(gè)發(fā)票解析的對(duì)比實(shí)驗(yàn)
想象這個(gè)場(chǎng)景:用戶上傳了一份發(fā)票,格式未知——可能是掃描件、Excel、PDF,甚至是某家供應(yīng)商的定制XML。傳統(tǒng)做法里,你得先寫(xiě)格式檢測(cè)邏輯,再搭轉(zhuǎn)換管道,然后設(shè)計(jì)提示模板、解析響應(yīng)、包裝重試循環(huán)。等業(yè)務(wù)邏輯真正開(kāi)始時(shí),代碼已經(jīng)膨脹了幾十行。
AI Functions的做法是:直接描述你想要什么。
@ai_function裝飾器把文檔字符串變成契約,LLM在運(yùn)行時(shí)生成實(shí)現(xiàn),框架自動(dòng)處理執(zhí)行、糾錯(cuò)和驗(yàn)證。
代碼長(zhǎng)這樣:
from ai_functions import ai_function
from pydantic import BaseModel
class MeetingSummary(BaseModel):
attendees: list[str]
summary: str
action_items: list[str]
@ai_function
def summarize_meeting(transcripts: str) -> MeetingSummary:
"""
Write a summary of the following meeting in less than 50 words.
{transcripts}
"""
調(diào)用方式和普通Python函數(shù)完全一致。result = summarize_meeting(transcript_text)返回的是類型安全的MeetingSummary對(duì)象,不是需要二次解析的字符串。
Strands Labs的三張牌:機(jī)器人、仿真、AI Functions
2026年初,AWS把Strands Labs從Strands Agents SDK的主線剝離,做成獨(dú)立的實(shí)驗(yàn)性GitHub組織。定位很明確:前沿研究的沙盒,生產(chǎn)環(huán)境的探路者。
首發(fā)三個(gè)項(xiàng)目。Robots做物理AI代理,Robots Sim搭仿真環(huán)境,AI Functions瞄準(zhǔn)的是最務(wù)實(shí)的群體——正在搭建AI流水線的開(kāi)發(fā)者和架構(gòu)師。
AWS給AI Functions的定調(diào)很克制:"實(shí)驗(yàn)性,會(huì)有破壞性變更,尚未生產(chǎn)就緒。"但補(bǔ)充了一句關(guān)鍵的話:"概念本身今天就有生產(chǎn)相關(guān)性。"
換句話說(shuō),現(xiàn)在理解它,比等它GA(正式發(fā)布)后再補(bǔ)課,能搶出三到六個(gè)月的認(rèn)知窗口。
技術(shù)實(shí)現(xiàn):裝飾器背后的運(yùn)行時(shí)
AI Functions建立在Strands Agent運(yùn)行時(shí)之上。這意味著所有strands.Agent的有效配置——model、tools、system_prompt——都能透?jìng)鹘o裝飾器。
調(diào)用發(fā)生時(shí),框架自動(dòng)完成四件事:從文檔字符串提取意圖,讓LLM生成實(shí)現(xiàn),執(zhí)行并監(jiān)控,必要時(shí)糾錯(cuò)和重試。對(duì)外暴露的接口和普通Python函數(shù)無(wú)異,但內(nèi)部完全由模型驅(qū)動(dòng)。
Pydantic模型在這里扮演關(guān)鍵角色。返回類型不是建議,是強(qiáng)制契約。模型生成的輸出必須經(jīng)過(guò)模式驗(yàn)證,失敗會(huì)觸發(fā)框架級(jí)的重試或報(bào)錯(cuò),而不是把臟數(shù)據(jù)漏給下游。
這種"意圖即代碼"的模式,把提示工程從手藝活變成工程規(guī)范。
過(guò)去寫(xiě)提示詞像在調(diào)黑箱——換模型、換溫度參數(shù)、換few-shot示例,效果波動(dòng)全靠手感。AI Functions把提示模板、響應(yīng)解析、錯(cuò)誤處理全部收進(jìn)框架,開(kāi)發(fā)者只負(fù)責(zé)描述"要什么",不負(fù)責(zé)規(guī)定"怎么做"。
生產(chǎn)相關(guān)性:為什么現(xiàn)在就要關(guān)注
實(shí)驗(yàn)性標(biāo)簽容易讓人觀望,但AWS的措辭留了后門(mén)。"尚未生產(chǎn)就緒"指的是API穩(wěn)定性,不是概念可行性。實(shí)際場(chǎng)景中,已經(jīng)有團(tuán)隊(duì)在用類似思路處理非結(jié)構(gòu)化數(shù)據(jù)清洗、多格式文檔轉(zhuǎn)換、動(dòng)態(tài)API適配——這些任務(wù)的共同特點(diǎn)是:規(guī)則難寫(xiě)全,邊界案例多,傳統(tǒng)代碼維護(hù)成本指數(shù)級(jí)上升。
AI Functions的價(jià)值在于把這種"規(guī)則寫(xiě)不完"的場(chǎng)景,從硬編碼遷移到模型驅(qū)動(dòng)。不是取代所有傳統(tǒng)代碼,而是把"描述即解決"的邊界往外推了一層。
一個(gè)細(xì)節(jié)值得玩味:AWS選擇在Strands Labs發(fā)布,而不是塞進(jìn)Bedrock或SageMaker的主線文檔。
這種"隔離實(shí)驗(yàn)"的策略,既保護(hù)了生產(chǎn)用戶的穩(wěn)定性預(yù)期,又給早期采用者留了快速迭代的通道。GitHub組織的獨(dú)立存在,意味著issue響應(yīng)、PR合并、破壞性變更的溝通鏈條更短——適合愿意和代碼一起進(jìn)化的團(tuán)隊(duì)。
競(jìng)品格局:這不是第一個(gè),但可能是最"AWS"的
自然語(yǔ)言轉(zhuǎn)代碼的嘗試不少。OpenAI的Function Calling、LangChain的@tool裝飾器、Vercel的AI SDK,都在模糊"提示"和"代碼"的邊界。但AI Functions的差異點(diǎn)在于紀(jì)律性——它不強(qiáng)求LLM做所有事,而是明確劃分"意圖層"(開(kāi)發(fā)者寫(xiě)文檔字符串)和"執(zhí)行層"(框架+模型協(xié)作)。
這種分層讓調(diào)試變得更像傳統(tǒng)軟件工程。意圖不對(duì)?改文檔字符串。執(zhí)行失敗?查模型日志或調(diào)整運(yùn)行時(shí)配置。輸出格式漂移?加固Pydantic模型。問(wèn)題域清晰,排查路徑明確。
相比之下,端到端的自然語(yǔ)言編程往往把調(diào)試變成考古——你得從模型的"想法"里反推它為什么理解錯(cuò)了。
AWS的克制還體現(xiàn)在工具鏈整合。AI Functions不試圖重新發(fā)明Agent架構(gòu),而是寄生在已有的Strands生態(tài)里。已經(jīng)用strands.Agent的團(tuán)隊(duì),學(xué)習(xí)成本幾乎為零;沒(méi)用過(guò)的團(tuán)隊(duì),也能從單一功能切入,不必承諾整個(gè)技術(shù)棧。
風(fēng)險(xiǎn)與限制:實(shí)驗(yàn)性意味著什么
AWS的文檔列了三條紅線。第一,API會(huì)變——今天能跑的代碼,下個(gè)月可能需要改寫(xiě)。第二,延遲不可控——模型生成實(shí)現(xiàn)需要時(shí)間,不適合熱路徑。第三,確定性問(wèn)題——相同輸入可能產(chǎn)生不同實(shí)現(xiàn),雖然框架有驗(yàn)證層,但語(yǔ)義漂移的風(fēng)險(xiǎn)客觀存在。
這些限制決定了AI Functions的適用邊界。離線批處理、探索性數(shù)據(jù)分析、原型驗(yàn)證是甜區(qū);高頻交易、安全關(guān)鍵系統(tǒng)、強(qiáng)合規(guī)審計(jì)場(chǎng)景則需要謹(jǐn)慎。
一個(gè)實(shí)用的判斷標(biāo)準(zhǔn):如果任務(wù)的"正確性"可以由下游驗(yàn)證(比如Pydantic模型、單元測(cè)試、人工抽檢),AI Functions是候選方案;如果錯(cuò)誤成本極高且不可逆,傳統(tǒng)代碼仍是首選。
開(kāi)發(fā)者反饋:從"玩具"到"工具"的認(rèn)知轉(zhuǎn)折
Strands Labs的GitHub討論區(qū)里,早期用戶的反饋呈現(xiàn)兩極。一部分人覺(jué)得"終于不用寫(xiě)提示模板了",另一部分人擔(dān)心"黑箱又厚了一層"。
一個(gè)被多次點(diǎn)贊的評(píng)論來(lái)自某金融科技公司的數(shù)據(jù)工程師:「我們處理供應(yīng)商發(fā)票的場(chǎng)景和文檔示例幾乎一樣。之前用傳統(tǒng)代碼寫(xiě)了800行的格式適配器,維護(hù) nightmare。用AI Functions原型花了20分鐘,準(zhǔn)確率反而更高——因?yàn)槟P鸵?jiàn)過(guò)的人類發(fā)票格式,比我的正則表達(dá)式多幾個(gè)數(shù)量級(jí)。」
也有反對(duì)聲音。一位AWS社區(qū)建設(shè)者指出:「當(dāng)模型生成的實(shí)現(xiàn)出錯(cuò)時(shí),調(diào)試體驗(yàn)比傳統(tǒng)代碼差一個(gè)量級(jí)。你得同時(shí)理解框架行為、模型偏好、以及你的文檔字符串被解析后的實(shí)際語(yǔ)義。這種三層認(rèn)知負(fù)擔(dān),團(tuán)隊(duì)準(zhǔn)備好了嗎?」
這些爭(zhēng)論本身說(shuō)明AI Functions觸及了一個(gè)真實(shí)張力:軟件工程的可維護(hù)性,和AI系統(tǒng)的靈活性,能否在同一個(gè)框架里共存。
下一步:從實(shí)驗(yàn)到生產(chǎn)的橋梁
AWS沒(méi)有公布AI Functions的GA時(shí)間表,但Strands Labs的運(yùn)作模式提供了線索。實(shí)驗(yàn)性項(xiàng)目通常經(jīng)歷三個(gè)階段:GitHub組織內(nèi)的快速迭代、集成到主SDK的beta通道、最終GA或歸檔。Robots和Robots Sim的物理AI屬性決定了它們會(huì)長(zhǎng)期留在沙盒,但AI Functions的通用性更強(qiáng),遷移路徑也更清晰。
對(duì)于正在評(píng)估的團(tuán)隊(duì),建議采取"雙軌策略"。在原型和新功能開(kāi)發(fā)中試用AI Functions,積累意圖描述的最佳實(shí)踐;同時(shí)保持核心流水線的傳統(tǒng)代碼,等待API穩(wěn)定后再逐步遷移。
一個(gè)值得監(jiān)控的信號(hào):AWS是否會(huì)把AI Functions的模式反向輸出到Bedrock或SageMaker的官方SDK。這種"沙盒驗(yàn)證→主線產(chǎn)品"的路徑,在AWS的歷史上反復(fù)出現(xiàn)。
如果三個(gè)月后在Bedrock的更新日志里看到類似的裝飾器語(yǔ)法,說(shuō)明實(shí)驗(yàn)通過(guò)了內(nèi)部的生產(chǎn)就緒評(píng)估。屆時(shí),現(xiàn)在寫(xiě)的文檔字符串經(jīng)驗(yàn),會(huì)直接轉(zhuǎn)化為競(jìng)爭(zhēng)優(yōu)勢(shì)。
當(dāng)自然語(yǔ)言和代碼的邊界進(jìn)一步模糊,開(kāi)發(fā)者需要重新定義"編程"的邊界——是精確控制每一行執(zhí)行,還是學(xué)會(huì)描述意圖并信任框架的糾錯(cuò)能力?你的團(tuán)隊(duì)會(huì)更傾向哪種分工模式?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(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.