9月2日,Anthropic 公開了 anthropics/commerce-agents。採用的是 Apache 2.0 授權。
這是一份「用 Claude 製作購物代理時的參考實作」,而且可直接執行的程式碼都已經放進去了。 我整理一下裡面有哪些內容。
驗證環境:Windows 10 / Python 3.11.9 / Node 22.19 / 測量截至 2026-09-03
誰來用|能做什麼
Shopping Agent|購物者|目錄搜尋、商品比較、加入購物車、訂單追蹤/退貨 Q&A
Merchant Agent|店家人員|銷售分析、庫存警示、價格/促銷提案、活動草案
特色是前台與後台兩邊都包含了。 不只是給購物者用,還附上了店家管理介面用的代理。
用相同骨架,提供了 4 種不同產業版本。
retail ACME Store API :8000 / 店面 :3000
travel ACME Travel API :8001
telecom ACME Mobile API :8002
entertainment ACME Tickets API :8003
--merchant 會切換到店家入口網站(:3100),--all 則會兩邊一起啟動。
這部分我覺得最有參考價值。 同一個提示詞、同一套工具,卻用3 種不同的方式來撰寫。
執行形式|差異
Messages API|代理的迴圈由自己撰寫,作為參考實作
Agent SDK|迴圈交給 SDK 處理
Managed Agents|在主機端執行,呼叫自己的 MCP 伺服器
當你在猶豫「代理的迴圈該自己實作,還是交給 SDK」時,可以把同一題材的 3 種實作拿來對照閱讀。
檔案 640
Python 213
TypeScript 202
Markdown 62
授權 Apache License 2.0
requirements.txt 會以 editable 方式安裝 7 個套件。這是從儲存庫內的目錄直接安裝的設計,沒有註冊到 PyPI。
Retailers running shopping agents on Claude have seen carts up to 35% larger and shoppers 60% more likely to complete a purchase.
(在 Claude 上運行購物代理的零售業者,看到購物車金額最高增加 35%,而消費者完成購買的機率提高 60%)
這裡有寫 up to(最高/最多)。 這不是平均值。由於母數與條件沒有公開,最好不要直接把這個數字套用到自家情境。
README 的前提條件只有 Python 3.11+ / Node 22 / API 金鑰這 3 項。我本機都符合。README 與文件中完全沒有提到 Windows 或 WSL。
結果,python scripts/run_demo.py retail 沒有跑完整。
1. 使用者名稱裡有日文時,會找不到套件。
ModuleNotFoundError: No module named 'commerce_common'
editable install 產生的 .pth 檔會以 UTF-8 寫入。用十六進位檢視內容時,是 e8ab8f e8a8aa(=「諏訪」)。但 Python 讀取這個檔案時,使用的是作業系統的 locale 編碼。 在日文 Windows 上是 cp932。路徑因此亂掉而無法解析。
把同一個 commit、同一套步驟改放到 C:\tmp\ca 之後,import 就成功了。 差別只在路徑裡有沒有日文字。
2. 就算改成 ASCII 路徑,店面應用程式也啟動不了。
OSError: [WinError 193] %1 不是有效的 Win32 應用程式。
run_demo.py 是直接啟動 node_modules/.bin/next。在 Windows 上這樣呼叫需要的是 next.cmd。API(:8000)有成功啟動,但店面端(:3000)沒有起來。
3. 後續清理時還會發生第二次當機。
AttributeError: module 'os' has no attribute 'killpg'
os.killpg 是 Unix 專用,Windows 沒有這個函式。原本是要處理錯誤,結果連清理流程本身也一起崩了。
更麻煩的是,顯示錯誤訊息時也會崩。 訊息裡有 em dash(—),cp932 無法寫入。
UnicodeEncodeError: 'cp932' codec can't encode character '\u2014'
加上 PYTHONIOENCODING=utf-8 之後,才終於能看到真正的錯誤。 在加這個之前,我一直無法追到根因。
雖然 Windows 上無法完整跑完 demo 很可惜,但我認為這個儲存庫的價值不在這裡。
如果只是想看程式碼,git clone 就夠了。如果要實際執行,建議用 WSL2 或 Linux。
run_demo.py 無法跑完。 README 裡完全沒提 Windows
.pth 被 cp932 讀壞,導致 ModuleNotFoundErrornext 而出現 WinError 193os.killpg 而二次崩潰cp932 搞壞。 不加 PYTHONIOENCODING=utf-8 甚至看不到真正原因只看內容的話,Windows 也沒問題。要執行的話,放到 WSL2 會比較快。
參考
※ 引用保留原文與中文譯文並列。譯文以易讀為優先,精確措辭請參考原文。
JQIT 的工程師中有 95% 以上是從未有經驗者錄用。
如果有興趣,也歡迎來公司網站看看。
▶ 公司網站
我們也有工程師招募。若你有興趣,歡迎點進去看看。
▶ 招募網站