9月2日,Anthropic 公開了 anthropics/commerce-agents。採用的是 Apache 2.0 授權。

這是一份「用 Claude 製作購物代理時的參考實作」,而且可直接執行的程式碼都已經放進去了。 我整理一下裡面有哪些內容。

驗證環境:Windows 10 / Python 3.11.9 / Node 22.19 / 測量截至 2026-09-03


代理有 2 種

誰來用|能做什麼
Shopping Agent|購物者|目錄搜尋、商品比較、加入購物車、訂單追蹤/退貨 Q&A
Merchant Agent|店家人員|銷售分析、庫存警示、價格/促銷提案、活動草案

特色是前台與後台兩邊都包含了。 不只是給購物者用,還附上了店家管理介面用的代理


內含 4 種產業的實作

用相同骨架,提供了 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 種執行方式

這部分我覺得最有參考價值。 同一個提示詞、同一套工具,卻用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(最高/最多)。 這不是平均值。由於母數與條件沒有公開,最好不要直接把這個數字套用到自家情境。


在 Windows 上執行時卡在三個地方

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.cmdAPI(:8000)有成功啟動,但店面端(:3000)沒有起來。

3. 後續清理時還會發生第二次當機。

AttributeError: module 'os' has no attribute 'killpg'

os.killpgUnix 專用,Windows 沒有這個函式。原本是要處理錯誤,結果連清理流程本身也一起崩了。

更麻煩的是,顯示錯誤訊息時也會崩。 訊息裡有 em dash(),cp932 無法寫入。

UnicodeEncodeError: 'cp932' codec can't encode character '\u2014'

加上 PYTHONIOENCODING=utf-8 之後,才終於能看到真正的錯誤。 在加這個之前,我一直無法追到根因。


就算只讀,還是有價值

雖然 Windows 上無法完整跑完 demo 很可惜,但我認為這個儲存庫的價值不在這裡。

  • 同一題材用 3 種執行形式來寫,很適合做設計比較
  • 包含店家端代理的範例相當少見
  • 文件把目錄、購物車、付款、訂單歷史的串接模式整理得很完整

如果只是想看程式碼,git clone 就夠了。如果要實際執行,建議用 WSL2 或 Linux。


總結

  • 9 月 2 日,Anthropic 以 Apache 2.0 公開了 commerce-agents
  • 內含購物者與店家人員兩種代理
  • 附有零售、旅遊、電信、娛樂 4 種產業的實作
  • Messages API / Agent SDK / Managed Agents 3 種形式寫出同一個題材,這是重點
  • 官方提到的「購物車最多增加 35%」帶有 up to
  • 在 Windows 上 run_demo.py 無法跑完。 README 裡完全沒提 Windows
    • 日文使用者名稱.pthcp932 讀壞,導致 ModuleNotFoundError
    • 即使是 ASCII 路徑 → 直接啟動 next 而出現 WinError 193
    • 清理流程 → 因為沒有 os.killpg 而二次崩潰
  • 連錯誤訊息顯示都會被 cp932 搞壞。 不加 PYTHONIOENCODING=utf-8 甚至看不到真正原因

只看內容的話,Windows 也沒問題。要執行的話,放到 WSL2 會比較快。


參考

※ 引用保留原文與中文譯文並列。譯文以易讀為優先,精確措辭請參考原文。

相關文章


JQIT 的工程師中有 95% 以上是從未有經驗者錄用。
如果有興趣,也歡迎來公司網站看看。

公司網站

我們也有工程師招募。若你有興趣,歡迎點進去看看。

招募網站


原文出處:https://qiita.com/suwa_nobu/items/1c0f27da8eb685f6ba05


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝19   💬4  
271
🥈
我愛JS
3
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登