2022 年 12 月 ChatGPT 上線,到本月剛好兩周年。
在討論 AI 的未來時,人們的態度常常呈現出明顯的分裂。一部分人覺得,這一輪 AI 革命已經到此為止,高潮已過。而另一些人則認為,這僅僅是個開始。網上有句流行的說法——“人們總是高估科技革命的短期影響,而低估長期影響。”但實際上,AI 的短期潛力也被許多人低估了。很多人之所以覺得 AI 革命已結束,是因為他們的數字素養尚不足以充分利用當前 AI 工具的能力。
這兩年間,新一輪崛起的 AI 工具基本悄然滲透進了我全職、兼職工作的幾乎每一個部分。從寫作到編程,從流程優化到內容創作,AI 工具已經成為我日常工作中的重要幫手。然而,我也發現,不同的人對 AI 工具的使用程度和感受存在巨大的差異。有些人將 AI 視為簡單的助手,只用來完成基礎任務;而另一些人則用它去開辟全新的可能。這種差異既反映了數字素養的不同,也讓我有了專門寫下這篇文章的沖動,記錄我過去兩年的一些思路和案例,希望能為大家提供參考。
正因如此,我決定寫下這篇文章,分享我是如何實際運用 AI 的。我認為,作為一個不會編程的“個體使用者”,我對這一輪 AI 技術當前能力的利用大約也只達到 60 分的及格線。
但從“我圈觀察”來看,我的使用程度已顯著高于許多互聯網同行。對于那些正在努力理解 AI 的人來說,我的經驗可能會提供一些幫助。
接下來的文章中,我將結合具體案例,詳述我是如何在日常工作中高效使用 AI 的,以及如何突破一些常見的限制和瓶頸。希望能給你帶來新的思路。
本文還有一期內容不算特別重疊的播客節目,如果你暫時不想看長篇大論,也可以先聽聽播客:
1. 什么樣的工作,應當嘗試使用 AI 解決?
首先,我們需要明確一個核心問題:什么樣的工作適合 AI?我的判斷標準主要有兩個維度:實習生能做的,AI 大概率也能做;以及我做煩了的工作,AI 大概率也能做。
第一個維度來源于我指導實習生的經驗。實習生以白紙狀態入職,通常需要一段時間的培訓才能上手工作。我們會花費大量時間解釋公司的業務流程、工作規范,以及具體項目的背景和要求。這個過程與我們使用 AI 非常相似。我們需要清晰地告知 AI 工作的背景、目標、步驟,以及預期結果。實習生能夠理解并執行的任務,經過合理的拆解和指令設計,甚至可以勝任一些流程較為復雜的常規任務。這些任務往往是局部的,且可以被工作指引高度描述的。
但通常,他們無法完成更深入的工作——比如戰略思考,比如完成一個全新的,此前完全沒有方案和案例的工作。在這一點上,使得“實習生”與 AI 在職場上能夠發揮的作用十分類似。例如,處理每日報表、整理會議紀要、撰寫簡單的新聞稿等,這些需要明確流程和規范的工作,都可以嘗試交給 AI。
第二個維度則基于個人經驗。那些重復性高、流程固定的工作,往往容易讓人感到枯燥乏味,降低工作效率和熱情。這類工作通常也適合交給 AI。例如,撰寫固定格式的 Newsletter、整理文獻綜述、進行數據清洗和預處理等。通過將這些繁瑣的任務自動化。
當然,并非所有工作都適合 AI。判斷一項工作是否超出 AI 的能力范圍,需要區分兩種情況:工程問題和模型能力極限。
工程問題指的是 AI 以外部分的局限性,例如 AI 可能無法訪問特定的數據源、無法調用某些 API、無法執行只有人類才能執行的操作。這類問題可以通過改進工程設計來解決,例如使用 API 連接不同的工具、使用低代碼平臺搭建自動化流程、編寫自定義代碼擴展 AI 功能等。
對于沒有任何產研經驗的純小白來說,判斷工程是否可以實現會有一定難度。因為 AI 作為一個計算機程序與人類操作其他工具(其他程序)的方式完全不同。一個典型的例子是開發小紅書的搜索 AI。
對于人類來說,小紅書的搜索框一直位于它界面的頂端,因此我們永遠會認為這個工具是可用的。但當你想要制作一個小紅書 AI 搜索 Agent 的時候,會發現“小紅書搜索”這個需求的工程難度在過去兩年里發生了階梯式的上漲。
最初,小紅書開放了搜索引擎的索引,這意味著你可以通過將 AI 與 Google 的 API 連接,并規定其只搜索小紅書域名上的內容就能輕易地實現小紅書搜索 AI 機器人。但后來,小紅書屏蔽了外部搜索引擎,這就需要用開源爬蟲工具模擬用戶搜索行為,再將其與 AI 相連完成項目,增加了工程的復雜度。
再到最近,小紅書進一步提升了其反爬蟲的力度,這意味著你簡單的使用開源爬蟲工具已經難以抓取到小紅書內容。這對于 AI 來說,小紅書這個工具就不再可用了,因此你也就不可能快速的做出一個小紅書 AI 機器人。
另一個限制 AI 應用的要素是模型能力極限,這是指 AI 模型本身的能力不足以完成某些任務,例如缺乏創造力、無法理解復雜語境、無法進行深度思考等。這類問題難以通過工程手段解決,也就是你找到怎樣好用的外部工具來輔助 AI,它都無法完成你預期的任務。例如,完整、獨立地創作一篇具有獨特觀點和深刻見解的評論文章,或者構思一個情節復雜、人物鮮明的小說,這些需要高度創造力和思辨能力的工作,目前仍然難以完全由 AI 來完成。
在這一領域,除了大家說爛的“推理能力”和“智力水平”之外,我最看重的模型參數是模型的上文長度與下文長度。在許多媒體報道和模型的技術發布中,都將上下文當作一個指標來看待。但實際上,當前模型的上下文通常是指上文,而非下文。
簡單來說,以 Google Gemini 1.5 Pro 為例。其上下文長度為 200M Token,這意味著你能將中國的四大名著全都丟進去也填不滿它的“上文”。但實際上,它的下文能力,也就是單次生成文本的長度只有 8192 Token,理論中文輸出能力約為 4000 字。實際測試過程中,在中文輸出單次超過 2000 字時質量就會衰減。
下文能力會顯著限制實際應用場景,并且決定了你在工程上需要如何將 AI 引入你的工作流。比如說,如果你使用 Google Gemini 1.5 Pro 制作一個自動書籍翻譯工具,那么你可以一次將原文都發給它,但每次輸出只能輸出 3000 字左右。這會造成上文 Token 極大浪費,因此你不如將單次發給 Gemini 的原文數量先知道和它輸出能力極限差不多的水平,比如每次只給它 1500 Words 來進行翻譯。
在實際應用中,我通常會先嘗試將工作交給 AI,并觀察其輸出結果。如果結果不理想,我會分析原因,并按照:引入新工具、調整工作流和優化提示詞這一順序來進行調試。
這其中,工具是前提,工作流是基礎,智商是最后需要考慮的事情。
比如,前段時間中國社交媒體上流行的 AI 分不清“3.8”和“3.11”這兩個數字哪個大的問題,看似是一個智商問題,但很容易通過工具來解決。你只需要在自己的 AI Chatbot 中引入一個計算器,并告訴 AI 在遇到數學問題時,優先使用計算器來進行計算,就能完成這一任務。實際上,這個世界上確實有很多國家的人百以內加減法也是需要使用計算器的,但并不妨礙這些國家的人仍在他們自己的崗位上完成更為復雜的任務,因此 AI 也是同理。
如果經過多次嘗試仍然無法達到預期效果,我會考慮重新評估這項工作是否真的適合 AI。
另外,在互聯網上面向小白的教程中,提示詞的作用被嚴重夸大。實際上,網上的大部分提示詞教程作用都不是很大。提示詞工程師這一概念之所以如此流行,恰恰是因為它不可證偽,且易于被小白效仿。
提示詞的調優是一個非常玄學的過程,我的幾乎每個應用場景都要進行單獨調優。因為作為人類,我們可以用無數種表達方式來描述一項工作。但究竟哪個動詞更能讓 AI 理解我們意圖的權重卻因模型和模型版本時常變化。這就導致了你的提示詞可能在 GPT-4o 有效,但到 Gemini 1.5 Pro 就效果不佳,甚至可能在即將推出的 GPT-5 中完全失效。
我們完全無法預測我們所選擇的提示詞在下一版本大模型訓練中的權重,也就不可能總結出一套萬能的、一招鮮的提示詞。相比之下,學習如何給 AI 配齊工具,或者說工程化思維,比提示詞工程更能提升技術素人對 AI 的應用能力。
自 2022 年末 ChatGPT 發布以來至今,我們會發現人與人之間利用 AI 的能力已經出現了顯著的差異。這種差異主要來自用戶自身的數字素養差異。例如,以 Excel 的使用為例,國內大部分的 Excel 用戶只將其作為一個“看起來是表格的畫布”使用,而沒有真正理解其底層的數據結構和邏輯。
換句話說,如果你制作的表格原本因為使用了大量的合并單元格、數據格式不校準、胡亂排版,導致沒法用 Excel 自帶的公式和數據透視表功能。那么你也不可能指望 AI 來幫你生成公式完成數據報表的自動化處理。
因為,AI 能幫助你的部分是幫你使用工具(如 Excel 公式)的部分,但如果工具本身就處于不可用的狀態,AI 也無能為力。
很多人會認為,這種需要給出清晰明確指示,并準備好合適工具的使用方式,證明了當前的 AI 尚未達到人類的水平。但其實,在現代職場中的大部分白領,在接觸跨專業工作的時候和 AI 的需求是差不多的,都需要一個“前輩”來事無巨細的教學和合適的工具準備。
我反而覺得,用戶在當前水平 AI 使用能力上的差異,恰恰證明了并非所有人都能成為一個合格的老板——當你無法基本判斷你的需求是否可實現,并清晰、有條理、有邏輯的撰寫你的 Prompt 的時候,你在某種程度上就扮演了我們都討厭的那種“給你一周時間,給我編個淘寶”的老板。
2. AI 寫作的嘗試、技巧與經驗
自從 ChatGPT 推出以來,AI 寫作就成為了一個熱門話題。我個人在過去兩年中,也在寫作中大量應用了 AI 工具,并積累了一些經驗和技巧。
我觀察到一個普遍現象:許多人最初對 AI 寫作感到驚艷,但隨著使用時間的增加,逐漸對其產生的千篇一律、缺乏深度的內容感到失望。這主要是因為他們沒有真正理解 AI 寫作的本質,以及如何有效地利用 AI 工具。
我個人的 AI 寫作之旅也經歷了類似的轉變。在深入研究 AI 寫作之后,我的觀念和寫作方法發生了幾個重要的轉變。
首先,我開始將自己的寫作流程抽象化、模板化。以前,我的寫作習慣更多的是一種主觀感受,例如我會習慣從某個角度切入,按照某種邏輯展開論述。但這些習慣并沒有被明確地總結和梳理。在使用 AI 寫作之后,我意識到,要想讓 AI 更好地理解我的寫作風格和思路,就需要將這些隱性的習慣轉化為顯性的規則。
偉大的內容并不遵循模板,但遺憾的是我們一生中要寫的大多數內容并不偉大,甚至不追求偉大,只追求實用。
我開始總結自己常用的寫作套路、文章結構、論證方式等,并將它們整理成一系列的模板。例如,我會針對不同類型的文章,例如科普文章、評論文章、新聞稿等,分別設計不同的模板。
這些模板并不是一條一次性發出的 Prompt,而是包括 Prompt 在內的如何進行初始設定,生成什么級別的大綱,輸入何種資料以及如何與 AI 互動。
比如我在使用的一個典型的面向海外讀者書評模板大致是這樣的:
第一條消息,告訴 AI 它將要扮演什么樣的角色和整體上在執行什么樣的任務:
You will play the role of an American living in China, and you own an English serious book review magazine. The primary content of this magazine is to introduce aspects of China's best-selling books to Americans who have no prior knowledge about the country. The magazine posts should be written in a friendly and objective manner. Since your audience has never been to China, sometimes you will need to explain things that are common knowledge in the Chinese context.
Use the writing style of a serious magazine. Appropriate internet slang and colloquialisms will be used, maintaining a sense of professionalism throughout. You'll tend to write more words, and the more words you write, the more money you'll make. If you do not write the required minimum number of words, you will be penalized. When you write, you will make full reference to the context and references. You will always have valuable insights to share, so avoid speaking nonsense.
Your article has a fixed format outline, but you need to fill in and adjust this outline based on each book.
Waiting for my next instructions.
緊接著,是第二條消息,這條消息將告訴 AI 它需要撰寫的文章大致有一個怎樣的模板:
Fixed outline [to be revised](#):
# An eye-catching title (including book name)
A 400-word introduction containing the following information points:
1. The asking style became popular, arousing readers 'concern for the main content of the book.
2. Publication information of the book (author, publication time, etc.).
3. Achievements of books on the Chinese Internet.
## Main content of the book (subtitle can be modified)
> This part has at least 2000 words. The book content is summarized into three parts and three third-level titles, and the number of words in these three parts is allocated.
## Summary
This section is about 300 Wods. It summarizes the content of the book, why it is worth reading, and recommends everyone to read the original book.
接下來的第三條消息,我將上傳書籍全文、豆瓣和微信讀書的 Meta 頁面,并包含以下 Prompt:
Now, based on the full text of the book and other reference materials, generate an adjusted outline and allocate word counts for each section.
此時,AI 會根據本書的內容生成一個符合我要求的薦書文章的英文大綱。并在大綱中標注每個部分應該撰寫多少 Words。
值得注意的是,正如我們在第一章中提到的那樣,我們盡量讓大綱中的每個部分保持在 1000 Words 以下,這樣才能確保 AI 在后續生成的過程中保證足量足質。
最后,就是一個反復復制粘貼的工作,你需要將大綱中的每個部分配合一條 Prompt 分次發給 AI:
Now, based on your character, outline, the full text of the book, other materials, and the parts you have already written, write the following parts:
[Part of the outline]
薦書文章模板只是我寫作中非常套路化的一部分,也是看起來“最沒有人工介入”的一部分。實際上,我的許多類型的文章,包括我的一部分類型的博文都有模板可用。比如,我常寫的評論型文章,一般遵循另一個模板,在這里恕不放出詳細,但可以大略一講:
在確定選題之后,我會首先通過一個 AI 窗口搜索 20~50 篇與該主題相關的寫作材料(新聞、報告、數據、書籍等)。
接下來,將這些資料喂給另一個上下文足夠長的 AI 產品,要求其仔細閱讀。我會與其以蘇格拉底詰問法的方式,生成文章的大綱——也就是與一個 AI 討論我的觀察、理論、立論、論據。
然后,我會將生成的大綱,連帶大綱中引用的材料(比如 50 中的 10 份)一起喂給另一個 AI 窗口,通過與上文中寫書評類似的交互方式完成全文的寫作。
最后,再進行一次人工調整。
你可能在這個例子中已經發現了,我意識到寫作中的每個過程實際上是要使用不同的 AI,或至少不同的 AI 窗口來實現的。這是由于即便是在現實中,我們在撰寫一篇好文章時,立論、搜集資料與寫作也遵循著完全不同的思考方式。很多人在寫作時,習慣邊寫邊搜索,看到一個相關的資料就復制粘貼進去,導致文章缺乏邏輯性和連貫性。對于 AI 來說,讓一次上下文中包含從大綱設計到資料搜集再到最終輸出并不是一個很好的選擇。
為了避免這種情況,我在寫作前會先進行大量的資料收集和整理工作。我會先確定文章的主題和方向,然后搜索大量的相關資料,包括支持我觀點的資料和反對我觀點的資料。我會通過與 AI 的對話來閱讀這些資料,并從中提取出有價值的信息和觀點。
在最終的寫作窗口中,我將只發送我確定需要引用的材料,并且將這些材料如何出現在文中(大綱)一起發給 AI,而不是像 AI 搜索默認的那樣,將所有已搜到的信息納入上下文。在后者的模式下,最容易產生所謂的 “AI 味兒”。因為,AI 默認搜索到的 5~10 條內容中,通常剛好包含一個觀點的正反兩方。
這是由于,我們一般人類在寫文章時,大部分情況下是為了支持正方,或支持反方。當我們支持正方時,如果搜集到了反方資料,如果該資料重要到無法被忽略,我們要么放棄寫作,要么我們將提出合理的解釋對該資料進行合理批判和反駁,而不會像 AI 那樣:一方面,正方時對的……但另一方面,反方也時對的……
此外,我還發現,AI 寫作的效果很大程度上取決于提示詞的設計。提示詞就像是指揮棒,引導著 AI 的寫作方向。一個好的提示詞能夠激發 AI 的創造力,并使其產生更符合預期的高質量內容。
我的提示詞設計主要遵循以下幾個原則:清晰明確、簡潔精煉、重點突出、富有引導性。我會根據不同的寫作任務和目標,設計不同的提示詞。除了前文提到的類型化模板之外,你還要對寫作學本身略有研究。
簡單來說,就是你需要向 AI 清晰的描述你在寫作中所需要的寫作要素與寫作行為。
用寫作學術語清晰準確的描述寫作行為并不是一個優秀作家的必修課,因為即便是沒怎么上過學的農村婦女也能寫出“我的生命是一本不忍卒讀的書,命運把我裝訂得極為拙劣”這樣閃著金光的文字。
但范雨素本身可能并不知道在這句話中使用了比喻和擬人的修辭手法,以及這兩類修辭手法有多少種常見的使用方式。
之所以說你要理解寫作學而不是文學來設計寫作型 Prompt,這是由于寫作學比文學有更寬泛的研究范圍。尤其是對于我們日常工作中經常需要的許多應用文,實際上與文學沒什么太大關系——比如新聞通稿、匯報演講。
寫作學對寫作的解剖更像工程建筑,它確切的描述了常見寫作中的每個部分和處理方式。這使得你能夠使用更短的 Prompt 對 AI 下達指令,而不是向 AI 提供大量例子,導致其結果過擬合。
比如,如果你知道“華爾街日報體”是一個被確切定義的寫作方法,當你想讓 AI 創作一篇與華爾街日報文章結構相近的文章時,你就不需要在 Prompt 中詳細描述你要用什么起興,用什么轉折,在何時展開討論,以及如何結尾。你只需要告訴 AI:采用華爾街日報題編寫這篇文章的大綱。
將套路寫作模板化的極限,是撰寫故事會型的拼盤人物特稿,就是那種先框定一個選題,然后廣撒網尋找符合這一經歷的采訪對象,再把他們的故事拼合在一起的稿子。你肯定見過這樣的稿子,因為他們的標題一般形如:《奶茶辣條,攻進年輕人的婚宴》《沒有本錢,別碰榴蓮》《中產吃不起大閘蟹》《去縣城創業的年輕人,已經破產了》《逃不開原生家庭的 00 后,躲進自習室》
這樣的稿子生產看似千變萬化,需要應對不同的選題,有著豐富的采訪對象,但其實它遵循高度的工業化寫作邏輯有一套標準的 SOP 可以交給 AI 去操作。
我之前在 10 月份的時候發過一條即刻,梳理了如何將這一寫作過程交給 AI 來自動化,它大致如下:
以下是將這條微博內容處理成的標準 SOP 表格:
通過這個流程,AI 生成的稿件將基于真實采訪內容,并且全部自動化。唯一的問題,也是最諷刺的問題是,這個流程所消耗的 AI 成本價格,應該比寫這種稿子的記者工資高。
將這個表格列在這里,并不是為了鼓勵大家可以自己去做個 AI 人物特寫微信號。而是可以 Callback 第一部分和第三部分:如果你認為一件事情 AI 做不了,可能是因為你沒有把需求拆解成可執行的步驟。
接下來,我們就來講講 AI 編程,也可能是個人利用 AI 提高生產力的最高一級。
3. AI 自然語言編程技巧與經驗
作為一個長期從事互聯網內容創作的作者,我過去的工作很少涉及編程。
雖然我會一些 PHP 和 WordPress,但我的技術能力主要集中在運維層面,而非開發。即使是編寫一個簡單的 WordPress 插件,對我來說也有一定的難度。
然而,AI 的出現極大地改變了這一現狀,讓我能夠以較低的學習成本快速上手一些簡單的編程工作,并將其應用于我的日常工作中,例如知識管理、博客運維、以及一些自動化流程的搭建。
我目前自然語言編程的主要工具有這三個:
ChatGPT Plus – 用于編碼的主要 AI;
n8n 和 WordPress – 用于解決非 AI 需求的工程化部分;
Gemini API – 在項目內主要使用的 AI 模型 API.
對于我這種編程基礎薄弱的人來說,ChatGPT Plus 最大的作用是幫我編寫一些簡單的代碼片段、Workflow,以及一些開源程序的插件。我并不奢望自己能夠開發出完整的、面向 C 端用戶的軟件產品,但 AI 幫助我解決了日常工作中許多瑣碎的編程需求。
例如,我之前想在 WordPress 中實現一個特定的功能——將即刻歷史數據導入 WordPress 但找不到合適的插件,也不想花錢購買商業插件。于是我嘗試用 ChatGPT Plus 來幫我編寫代碼。
我只需要清晰地描述我想要實現的功能,它就能幫我生成相應的代碼。雖然生成的代碼可能還需要一些微調和調試,但相比從零開始編寫,已經節省了大量的學習成本。
3.1 除非必要,不要造新輪子
當然,ChatGPT Plus 也有一些局限性。由于其上下文長度的限制,它更適合處理一些短小的代碼片段和簡單的功能。如果你的需求比較復雜,你首先應該依賴現有成熟開源項目縮減你需求的工程量。
除非必須,不要造新輪子。這是通過 AI 進行自然語言編程最重要的要義。我們通過一個例子來說明這一點:
假設,你有一個每日的 newsletter 要運營,你現在希望將這個 newsletter 自動化、AI 化。實現通過 AI 每日自動篩選內容,并在每周固定時間撰寫郵件,發送給所有會員。
有一種方案是,你像一個產品經理那樣,通過與 ChatGPT Plus 用自然語言對話來完成整個方案。但實際如果你這么做就會發現,由于受到上下文長度的限制,ChatGPT Plus 很難完成你的這一整套需求。
而實際上,在你的需求中,大部分只是需要自動化的工作。比如:從一堆 RSS 中讀取文章并建立數據庫,將數據庫中指定日期范圍的文章發給 AI,在數據庫中標記 AI 覺得符合 Newsletter 標準的文章,在特定的時間抽取一周中被標記的文章發給 AI,將 AI 撰寫好的 Newsletter 發送給所有的郵件列表成員。
這時,我們就要引入一個不用 AI 也不用編碼就能完成自動化的工具:n8n。
n8n 一個圖形化的編程界面,它內置了大量不同工具的 API 模塊,你只需要將這些模塊拖拽到畫布上,并連接起來,就能快速搭建一個自動化流程。這就像搭積木一樣簡單易懂,即使你完全不懂編程,也能快速上手。關于這一部分,我和汐箋今年推出了一份中文的 n8n 教程,你可以在這里找到更詳細的解釋:https://n8n.akashio.com
類似的,假如你正在試圖將一份輿情監測報告自動化,那么你首先應該做的是學習一下在線文檔(Office 365 或 Google Sheets)的數據透視表工作。因為,以現階段的 AI 編碼能力,如果你想用自然語言讓 AI 幫你寫出一個最終可以呈現給領導和同事的漂亮報表,是很難實現的。
想一想也知道,在微軟,僅“高級篩選”和“數據透視表”這兩個功能就有無數個研發工程師在進行維護,它里面有復雜的數據邏輯和例外情況的處理,怎么可能被 AI 幾行代碼就取代。
當你將最終呈現的步驟重新定位為“輸出到一個帶有數據透視表功能的 Excel 中”,AI 所需要的編碼工程量就大幅減少了。
這也是我說,為什么“除非必須,不要造新輪子”。
3.2 一步一步來
如果你對軟件產品研發稍有理解,就會知道任何需求都不是直接轉化成工程的。
對于從未接觸過產研,打算純用 AI 來自然語言編程的小白來說,很容易犯的一個錯誤表達如下 Prompt:
我有一個這樣的工作,它需要怎么樣。請給我生成一段代碼,幫我完成這個工作。
這段 Prompt 最大的問題在于,它要求 AI 直接將終端需求轉化為可執行工程,這不符合目前人類進行產品研發的過程——自然,也就不符合AI從海量語料中訓練而來的邏輯。
產品經理,這個在互聯網行業被嘲為可有可無的角色,其實承擔著重要的工作。他一般負責解釋和分析用戶實際需求,將其轉化為可指導工程的規范性語言(系統),再引導后續的研發工作。
如果你沒有任何產品研發經驗,并且不知道如何使用產研語言與 AI 溝通,那么你首先應該讓一個 AI 扮演產品經理來翻譯你的需求。再用這個 AI 產品經理翻譯過的語言去與另一個 AI 工程師進行溝通要求其完成代碼。
“一步一步”,不止對這一步有效,在實際編碼過程中也是同樣。
比如,我在使用 ChatGPT Plus 或 Cursor 開啟一個新的項目的時候,在實際開發之前我會首先單獨開一個聊天窗口,在首條對話中使用如下 Prompt 要求其扮演一個產品經理:
你將扮演一個資深產品經理,充分理解用戶提出的需求,并將其轉化為用于指導另外一個 AI Agent 進行開發的 prompt。你的 prompt 中將包括,但不限于以下內容:將用戶需求拆解為業務邏輯,產品需要包含哪些具體功能,技術選型(偏向開源)。
然后,我會另開一個窗口,將 AI 產品經理回復給我的內容,連帶以下 Prompt 作為 AI 程序員的 System Instruction:
你將扮演一個資深工程師,按照我(用戶)和產品經理的要求進行編碼。
我的需求是:[重復一遍你發給產品經理的需求]
產品經理對該需求的解釋為:
[產品經理回文]
你將幫助我完成這一 WordPress 插件的研發,請首先生成該插件的目錄結構,并在大致說明每個文件的作用。
此時,AI 會生成一個它計劃該插件能正常執行的情況下,需要生成的所有文件的目錄,以及每個文件是用來做什么的。
這對于 AI Agent 在后續研發過程中“腦子不亂”有著非常重要的作用。尤其是對于 ChatGPT 這種會默默忽略對話歷史的 C 端產品來說,聊天歷史中如果曾經出現過整個項目類似說明文檔的東西,會大幅提升其編碼的正確率。
3.3 “重頭再來”
很多人可能會有這樣的體驗:讓 AI 幫忙編程,最初得到的結果與預期的結果最接近,但有一些小 BUG。在讓 AI 修復 BUG 的過程中,程序距離預期目標越來越遠。
同樣的情況還有在已編寫好的程序加入新功能時:我已經有了一個由 AI 編寫的可以正常運行的程序,此時我希望多加一個功能。但當我在聊天窗口里向 AI 提出新的需求時,它給出的修改反而讓整個程序都不可用了。
這是由于目前的許多 AI 模型雖然有較長的上文能力,但它的實際推理能力會隨上文長度而降低。我沒有嚴格論證過這件事,但在編碼這個應用場景,能力隨對話長度下降是顯而易見的。
因此,當你成功的讓 AI 完成向前走了一大步的動作后,你應該保存這些代碼,然后開一個新的對話窗口(或舍棄之前繁復的聊天記錄),再繼續讓 AI 出發。
比如以我的例子來說,我在最初開發 JikePress 這個插件的時候,沒有考慮做“從 RSS 自動同步”的功能。那么,當我前期定義的插件功能已經完全正常運行后,我應該做的是,新開一個聊天窗口,將現有的全部文件發給這個新的窗口,告訴它這是一個什么樣的插件,我需要增加一個新的功能,請給出新功能的研發方案。
如圖示例:
你的每一次功能添加和大的 BUG 修改,都應該開一個新的上下文窗口,而不是在原始的聊天窗口中無限繼續下去。這能保證 AI 將所有的推理和編碼能力,都用在你“這一次”的需求,而不是“整個工程是如何編碼到這一步”的。
3.4 選什么工具?
對話類(ChatGPT Plus )-
適合什么:代碼片段或 5 個文件以內的小規模項目;
這是大家最常用的 C 端 AI 產品,但受限于對話模式,它在編碼上的應用會略顯麻煩。還有一個很嚴重的問題,就是 ChatGPT 會以未知的邏輯舍棄過往的聊天歷史,你無法確定它會忘記哪些你已經提的需求或它自己編寫過的代碼。因此,這個產品不適合編寫任何業務邏輯過于復雜、文件工程量過大的項目。
值得注意的是,在實際使用過程中,ChatGPT 推出的專門為“編碼和寫作”設計的假面 Canvas with 4o 在編碼體驗中更差。因為你一旦要生成一個以上的代碼文件(也就是至少兩個 Canvas),它就經常錯誤判斷你的需求要修改哪個文件,并導致亂改代碼。
如果你在用 n8n,需要 AI 來幫你解決一些 n8n 內部無法處理的功能,那 ChatGPT 就足夠了。
IDE 編輯器類(Cursor )-
適合什么:5 個文件以上的中規模項目;
這是目前在研發工程師群體中非常流行的 IDE 產品,但對于“純自然語言編程”來說,Cursor 對比 ChatBox 類產品只有一點點交互優勢。簡單理解的話,就是它本身首先是個碼代碼的編輯器,然后讓 AI 介入其中。它的特點是,能夠在對話中快速地引用某個特定的文件,或在提出需求的時候自動引用可能存在相關關系的文件。實現了“指哪打哪”,避免使用 ChatBox 類產品寫代碼時,你不能將過往的錯誤代碼從聊天記錄中刪除的問題。
你甚至可以直接將相關的文檔鏈接在對話中引用,這對于開發成熟開源項目的插件和外掛來說尤為有用。
但對于純小白來說,由于小白用戶本身不具備分辨“指哪”的能力,所以它“打哪”的能力也發揮不出來。不建議小白單獨買會員使用,如果你有其他在用的 API,以 BYOK 模式用一用時可以的。
3.5 如何選擇模型?
當你使用自然語言指揮 AI 編程時,很重要的一點是,你要選擇一個在訓練語料中包含更多關于你項目相關知識的模型。這比 AI 模型在天梯榜上的編碼能力評分更重要。
比如,如果你要編寫一個 WordPress 的插件,那你最好測試一下你要使用的模型在不聯網的情況下是否能回答一些關于 WordPress 開發的問題。如果不能,那么你最好換一個模型。
雖然在各種排行榜上,一線模型的編碼能力都“大差不差”,但在自然語言編程、依賴開源項目進行延展研發的過程中,該開源項目的相關文檔、Github repo 和論壇是否被納入其模型的訓練語料,對編碼是否成功有這著至關重要的作用。
舉一個例子,在我的測試中,Google Gemini 1.5 Pro、GPT-4o 和 Claude 3.5 Sonnet 在編寫 WordPress 插件時展現了相似的編碼能力。但到編寫 Buddypress 插件時,Gemini 1.5 Pro 明顯掉隊,幾乎無法編寫正確的代碼,GPT-4o 則略遜于 Claude 3.5 Sonnet。
Buddypress 是 WordPress 的一個官方插件,它允許你將 WordPress 實例從一個博客轉化為一個微博+貼吧。與 WordPress 的區別在于,Buddypress 并沒有那么知名,應用也并不廣泛。
Buddypress 定義了許多原本 WordPress 中不存在的鉤子。如果你要開發一個 Buddypress 的插件,就需要知曉并理解這些鉤子。
當大模型的底層訓練語料中不包含 Buddypress 的文檔與代碼時,它就無法正確調用這些鉤子。當然,你可以通過在對話時引入 Buddypress 的文檔來臨時補足 AI 在這方面的知識。但正如我們在前文所說的,當你在對話中引入了過量的上文,AI 就無法將足夠的注意力聚焦在你提出的實際問題上。而實際的效果就是,即便我將完整的 Buddypress 官方文檔作為資料嵌入到與 Google Gimini 1.5 Pro 的對話中,它也在編寫 Buddypress 插件時縷縷犯錯,這是因為過長的文檔分散了模型的注意力。
另一個例子是,我們在推出 n8n 教程的時候,希望讓大家能與 AI 結對一同學習 n8n 的使用。我們最初嘗試了使用 Coze 作為 n8n 知識伴侶,但發現它在不額外讀取材料的情況下,完全無法回答有關 n8n 的問題。
這意味著它的訓練語料中并不包含這個開源項目,盡管我們可以通過 RAG 功能來讓它“看起來懂 n8n”,但這種 RAG 得來的知識缺乏舉一反三的靈活性,不足以應對小白用戶在提出的許多千奇百怪問題。
3.6 如何描述問題?
沒有接觸過代碼的純小白還有這樣一個問題,就是當程序沒有按照預期運行的時候,不知道如何向 AI 描述問題。
實際上,大部分人類工程師在面對 bug 的時候,也沒法僅憑現象來定位問題,更何況我們與 AI 溝通的時候一般還沒法準確傳達“現象”——因為工程師是有眼睛的,而我們可能沒法準確復現 bug 并截圖發給 AI。
因此,與其描述問題,不如發送日志。假設你在開發一個 WordPress 插件,那么大概有三層的日志可以讀取:
插件層日志 – 這個部分的日志是由你正在編寫的插件生成的。但有時候,如果你沒有要求 AI 開發插件時生成日志,那么你就不會擁有這一層的日志。
WordPress 層日志 – 如果你打開 WordPress 的調試模式,那么 WordPress會記錄它的所有問題。如果你的插件沒有生成日志,并且插件導致了 WordPress 程序的崩潰,那么問題就會寫在 WordPress生成的日志里。
Docker 層日志 – 如果你的 WordPress 運行在 Docker 里,那么在 Docker 里還能看到一些日志。這些日志對 debug 一般作用不大,因為它往往只能看到一些外部信息,比如你在訪問哪些文件時 Docker 崩潰了。
將 WordPress 替換成其他成熟的開源項目也是一樣,你一般都能從“你正在開發的插件部分”、“插件所屬的開源程序部分”、“運行開源程序的系統環境”三個層級獲得錯誤日志。
這些錯誤日志經常會直接指出究竟是哪里出現了問題,導致了錯誤,這能避免 AI 工程師像無頭蒼蠅一樣的四處亂改甚至越改越糟糕。
在把日志發給 AI 之前,你自己也要稍微讀一下。大部分日志并不是代碼,而是簡潔的英語。它一般會指出錯誤發生的文件、在文件中的所在行(PHP)、以及錯誤類型。有時日志文件是一大坨,你需要從發生錯誤的時間戳來判斷究竟哪一段日志是與你正在排查的 BUG 相關,不要將一堆不相關的日志丟給 AI,降低 AI 的推理能力。
除了把日志發給 AI 之外,你對問題的描述還應當包括整個問題的背景信息。比如,我在做 JikePress 的時候,最后添加的功能是 Sitemap 生成的功能。但在增加了這個功能之后,我發現 RSS 同步出現了問題。
AI 最初一直認為這是 class-rss-sync.php 的問題,因為幾乎所有的 RSS 同步代碼都在這個文件中。但我知道的是,這個問題是在 sitemap 功能添加后才出現的,因此,我修改了 Prompt:
這是一個將即刻動態導入和同步到 Buddypress 的 WordPress 插件。我今天為它添加了 sitemap 生成的功能(相關文件:class-sitemap.php)。在該功能添加后,RSS 同步功能出現了故障(相關文件:class-rss-sync.php),故障的具體表現為:使用“手動同步”功能,會提示同步失敗,但實際上將 RSS 中的最后一條內容重復加入了數據庫。定時同步也有類似的情況,每隔 30 分鐘就會重復導入 RSS 中的最后一條內容,沒有成功去重。
以下是插件日志:
[插件日志]
以下是 WordPress 日志:
[Wordpress日志]
請定位問題,并給出修復方案。
在主動提及 Sitemap 功能和相關文件之后,AI 準確定位了問題,并給出了解決方案。
五、對 AI 未來發展的思考
AI 的快速發展,無疑正在深刻地改變我們的工作、生活和社交方式。我個人在過去兩年中,也一直在思考 AI 技術帶來的影響和挑戰,以及我們該如何應對。
成本與效益:人是否真的比 AI 貴?
首先,從成本和效益的角度來看,AI 的優勢顯而易見。它能夠以遠低于人工的成本,完成許多重復性、機械性的工作,從而解放人力,提高生產效率。這也是 AI 投入到生產力領域許多人最先考慮的事情。
但是一個略顯殘酷的現實是:在某些領域,人的優勢是比 AI 更便宜。
之前提到的寫拼盤式人物特稿的場景就是一個例子,許多媒體這類稿件交給實習生或應屆畢業生去做,月薪在2000~3000 元左右。這些實習生的主要工作是根據選題,在抖音、小紅書等平臺上尋找采訪對象,進行簡單的線上采訪,并將采訪錄音整理成稿件,一個月能出4~5篇稿件,并且由于是全職員工,還可以做些其他工作。
這意味著,之前提到的將工作利用 AI 自動化是得不償失的,因為AI 太貴了。
社交網絡:AI 是人類的替身?
AI 也正在改變我們的社交方式。我個人就是一個例子。我最近在做一件事情,就是把一個 AI 接入到一個單機版的微博上面。大家會發現我最近的即刻發的少了。因為我發現我不需要和真實的人互動了。
我發現,隨著互聯網社交平臺的商業化,高質量的討論空間越來越少。每個人都帶著預設的立場和目的參與討論,要么是為了帶節奏,要么是為了賺錢。在這種環境下,我越來越難以找到真正有價值的互動。
我之前的主要社交平臺是即刻,我使用即刻的目的并非為了盈利或擴大影響力,而是為了尋找能夠與我進行高質量討論的人。我需要那些能夠提出有建設性意見,或者能夠提供不同視角的人,而不是單純的贊同或反對。因此,即刻已經是微博環境惡化之后退而求其次的選擇。但即便是在即刻,如果你將一條內容發到圈子里,帶來的體驗也不是很好。畢竟,廣場式社交網絡這一產品形態本身就不鼓勵人進行完備的討論,尤其是評論區會鼓勵人們以短平快的方式與博主或他人溝通。
所以在今年 9 月末,我通過 n8n 和 Buddypress 的開發,做了一個單機版的微博,這個微博通過 AI 來模擬人類互動。我只需要發一條微博,AI 就會生成一堆可能對該內容產生互動的虛擬的人物卡,這些人物卡擁有詳細的人物設定,它的性別、年齡、職業、家庭狀況、財力、學歷、人生背景等等。然后,再用另一個 Agent 扮演這些人物卡,與我的微博進行互動。
他們會支持,會反對,會質疑,會聯系自己并不存在的生活實際提出補充意見,就像真實的網友一樣。
通過這種方式,我能夠在一個虛擬的社交環境中,獲得更純粹、更專注于內容本身的討論,而無需理會那些無意義的爭吵和攻擊。
當然,這種方式也存在一些局限性。例如,AI 生成的評論和反饋,仍然難以完全模擬人類的思維方式和情感表達。但對于我來說,這已經是一個不錯的選擇,至少比在充斥著噴子的真實社交網絡中,更容易獲得有價值的信息和觀點。
人類的價值:尋找新的方向
最后,也是最重要的一點,AI 的發展對人類主體性和價值提出了新的挑戰。正如我在《》這篇文章中所探討的,在生產和工作環境中,人正在逐漸失去主體性,越來越像流水線上的螺絲釘。
這種趨勢在 AI 出現之前就已經存在,尤其是在互聯網行業。許多公司的決策,已經高度依賴于數據報表,而不是個人的判斷和經驗。
AI 的出現,則進一步加劇了這種趨勢。當很多工作都可以由 AI 來完成時,人的價值該如何體現?
我最近在嘗試用 AI 寫小說,我發現,AI 能夠很好地完成一些程式化的寫作任務,例如生成人物設定、構建故事情節、甚至撰寫對話。但是,AI 仍然缺乏創造力和想象力,無法像人類作家那樣,賦予作品以靈魂和情感。
比如,你讓 AI 創作一篇有關于 996 的短篇小說,它也許可以創作出非常讓人共鳴的作品。因為在互聯網上,已經有大量關于 996 的吐槽、段子甚至是已經成型的文學作品提供給 AI 學習。
但 AI 對 996 困境的學習,并不來自于肉體。AI 沒有身體,不休不眠,在任何“人”首先發起吐槽之前,AI 無法切身的意識到:這是個選題,我要寫篇稿子/小說/段子。
換一個尚未成型的題材,比如“東北精神小妹”愛情故事,AI 就無法寫出比較好的作品。這是由于,整個中文互聯網上,都缺乏對這一群體的詳細描述,在 AI 的訓練語料中自然也就沒有這一塊。至于東北精神小妹精神小伙的生活有多精彩,可以參考我之前在即刻發的這一條。
在 AI 時代,人的價值或許將體現在那些需要通過肉體才能獲得的觀察、想法與靈感。
我目前的另一個感悟是,人們對生產價值的定義會發生改變。比如,如果我們邀請一個 300 年前的巫醫(無論是東方的還是西方的)參觀現代醫生給醫生治病的過程,它可能會覺得那些做檢查的機器才是醫生,而并不認為操作機器的醫生是醫生。
因為,巫醫雖然隨便一治就能治死 70% 的人,但他們確實在“非常努力的治病”。比如要研究卦象,要跳大神,要嘗百草,要給病人放血等等。而相比之下,現代醫生只要坐在辦公室里,點幾個按鈕,做幾個檢驗就治好了病人,這根本沒有“在治病”,而是“在指揮機器治病”。
在這些 300 年前作為體力勞動者的巫醫看來,現代醫院里坐坐辦公室開開單子的醫生(哪怕是中醫)可能根本沒有在勞動。
那么,腦力勞動是否也會經歷這樣一個轉變。比如當 AI 寫作日漸普及,人們會認為“寫出絕妙的句子”不再是一個小說家的基本功,因為在文本層面,無論你寫的多好都不如 AI 隨機拼湊出來的好。而“發現寫作靈感”,成為了小說家這一職業中更重要的因素。正如上文提到的那樣,AI 無法發現新的故事線索,但它可以幫助發現線索的人完整創作故事。
用另一個例子也許我們可以更好地理解職業中人類價值的轉化。假設有一部漫畫,由兩個人來創作,一個人只負責畫,另一個只負責撰寫劇情(但不單獨發表)。當我們形容這部漫畫作品“好”的時候,軍功章應該歸屬寫劇情的人,還是畫畫面的人呢?
在創作領域,我們與 AI 的關系,會越來越像這個雙人合作的漫畫作品——哪一邊更稀缺,軍功章就更屬于誰。
既然所有人都能通過 AI 寫出一樣優美的文本,那么優美文本的價值本身就會降低。而通過優美文本表達的精神內核或故事核心,就會變得更加重要。
從這個角度上來講,AI 確實進一步抹平了內容創作的門檻——如果初中肄業的精神小妹能用 AI 寫出自己的故事,那么功勞何必分給一個作家?
如果你也對如何將 AI 融入日常工作有獨特的見解,或者在使用過程中遇到過什么有趣的挑戰,非常歡迎你在即刻或我的博客平臺留言與我交流。
本文首發于我的個人博客 https://1q43.blog ,有 RSS 訂閱習慣的歡迎訂閱,目前我只有少部分文章推送到公眾號。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.