模型 / 資料集
strands-agents/harness-sdk avatar
strands-agents/harness-sdk

Strands Agents harness-sdk:從 README 看實際使用邊界

建立代理線束並對其進行端對端控制。用於 Python 和 TypeScript 中的生產 AI 代理程式的開源 SDK - 任何模型、任何雲端。

7,241 個 Star1,137 個 ForkPythonApache-2.0

秒懂

它是什麼?
strands-agents/harness-sdk 的 README 與倉庫資料整理,聚焦於可核對的使用入口、架構邊界、限制和維護判斷。
適合誰用?
適合需要 harness-sdk 所處理問題,且能依 README 指定命令、目錄與設定逐項核對的團隊。不適合把未載明的相容性或效能當成既定承諾的場景。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 3 天前。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

harness-sdk|一個 monorepo,兩個 SDK,一個文件站

Strands Agents 以 monorepo 形式組織。strands-py/ 目錄包含 Python SDK,提供 agent loop、模型提供者和工具,以 strands-agents 名稱發佈到 PyPI。strands-ts/ 目錄包含 TypeScript SDK,核心部分相同,以 @strands-agents/sdk 發佈到 npm。倉庫還包含 strandly/,這是用於本機建置和工作區工具的開發者 CLI;site/ 是 strandsagents.com 文件站的 Astro/Starlight 原始碼;team/ 存放跨 SDK 的治理和流程文件,包括原則、決策、PR 與相容性指南,以及 designs/ 提案。README 描述 SDK 的目標是從簡單的對話助手擴展到複雜的自主工作流,從本機開發到生產部署。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 1 個觀察點。

harness-sdk|模型驅動的 agent loop 與模型提供者抽象

README 將 SDK 描述為模型驅動,目標是用幾行程式碼建置 agent harness 並端到端控制它。agent loop 內建上下文管理、執行限制和可觀測性,這些能力在寫入設定之前就已存在。模型提供者方面,Amazon Bedrock、Anthropic、OpenAI 和 Gemini 是一等支援,文件中還列出了更多提供者以及自訂提供者。兩個 SDK 預設使用 Amazon Bedrock,所以快速開始需要設定 AWS 憑證,並開通 Claude Sonnet 的模型存取權限。README 表示,後續切換後端時,程式碼不需要改變。Why Strands 部分列出四個重點:按自己的方式建置、模型無關、保持控制、交付有效結果。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 2 個觀察點。

harness-sdk|Hooks、guardrails 與內建模式

README 強調控制和安全性。agent loop 預設記錄每個決策。Hooks 可以攔截任意步驟,用於記錄、驗證或重新導向。Guardrails 在錯誤執行之前攔截它們,steering handlers 讓 agent 自行修正而不是靜默失敗。MCP、串流輸出、多 agent 模式和結構化輸出都被列為內建功能。TypeScript SDK 的 README 還提到 Zod 型別化工具、結構化輸出和多 agent 模式。Python SDK README 則涵蓋工具、模型提供者、MCP 和雙向串流傳輸。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 3 個觀察點。

harness-sdk|快速開始指令與環境需求

Python SDK 要求 Python 3.10 或更高版本。README 給出的安裝指令是 pip install strands-agents strands-agents-tools,範例程式碼建立 Agent 物件並傳入 calculator 工具,然後提出 1764 的平方根是多少 這樣的問題。TypeScript SDK 要求 Node.js 20 或更高版本,安裝指令是 npm install @strands-agents/sdk,範例建立 Agent 並呼叫 invoke 方法傳入問題。兩個範例預設使用 Amazon Bedrock,如果要設定 Anthropic、OpenAI、Gemini 或 Ollama 等其他提供者,需要查閱 Quickstart Guide。README 還指出,Python SDK 的詳細說明在 strands-py/ 子目錄的 README 中,TypeScript 的詳細說明在 strands-ts/ 中。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 4 個觀察點。

harness-sdk|文件位置與相關資源

文件站本身也在這個倉庫裡,位於 site/。README 連結了使用者指南、快速開始指南、agent loop 概念頁、範例、Python 和 TypeScript 的 API 參考,以及生產與部署指南。它另外指向 samples 和 tools 兩個獨立倉庫,還提到 monorepo 內的 MCP Server 目錄。README 明確表示,文件的 pull request 與程式碼變更一樣受歡迎。文件站使用 Astro/Starlight 建置,因此修改文件原始碼時需要使用對應的 npm 工作流。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 5 個觀察點。

harness-sdk|各套件的開發環境

開發時,Git 操作(提交、分支、PR)從倉庫根目錄進行,但每個套件有自己的工具鏈。Python 套件需要 cd strands-py,然後 pip install hatch,用 hatch test 執行單元測試,用 hatch fmt 做格式化和 lint。TypeScript 套件在倉庫根目錄執行 npm ci,然後 npm run build 和 npm test。文件站在 site/ 目錄下,需要 cd site,npm install,然後 npm run dev 啟動本機開發伺服器,位址是 http://localhost:4321/。README 還說明,Python 套件和 TypeScript 套件各自有獨立的 releases 連結,用於追蹤版本。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 6 個觀察點。

harness-sdk|授權、安全與倉庫中繼資料

README 宣告專案採用 Apache License 2.0,並指向 LICENSE.APACHE 檔案。倉庫中繼資料也把 SPDX 識別碼列為 Apache-2.0。為本文提供的許可證摘錄沒有包含許可證文字,因此無法從該摘錄驗證具體的授權條款、免責聲明或支援義務。README 提到安全問題透過 CONTRIBUTING.md 報告。Contributing 部分還列出了報告 bug 與功能、開發設定、透過 PR 貢獻、行為準則和安全問題報告。GitHub 中繼資料顯示該倉庫有 6801 個 star、1010 個 fork 和 651 個 open issues,且未被封存。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 7 個觀察點。

Python 與 TypeScript 的分界

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的 README 將這個部分放在 Python 與 TypeScript 的分界 所涉及的使用路徑中。實際判斷不能只看功能名稱,還要看輸入如何進入程式、結果由哪個檔案或命令輸出,以及失敗時文件是否提供可追查的訊息。對 harness-sdk 而言,這些邊界比抽象的功能清單更能說明它適合放在開發流程的哪一段。

先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。 strands-agents/harness-sdk 的文件沒有替讀者保證未列出的相容性、效能或部署結果,因此本文只把 README 能追溯的命令、目錄、設定鍵和資料流寫成判斷依據。若環境與文件假設不同,問題應回到具體輸入、輸出和版本差異,而不是用專案名稱補上空白。對這個倉庫而言,安裝成功也不等於整條流程成立:要把套件版本、執行時依賴、輸入格式和產出位置一起記下來,才看得出哪一層出現偏差。若 README 明確列出替代入口,應分開比較其權限、外部服務依賴和失敗處理,不把兩條路徑合併成同一項能力。 本節專門處理 harness-sdk 的第 8 個觀察點。

編輯結論

適合需要 harness-sdk 所處理問題,且能依 README 指定命令、目錄與設定逐項核對的團隊。不適合把未載明的相容性或效能當成既定承諾的場景。先執行專案文件中的具體入口,觀察輸入、輸出與錯誤位置,再決定是否納入正式流程。先依 strands-py/ 或 strands-ts/ 的入口執行最小 Agent 範例,再分別執行 hatch test 或 npm test;這能把模型憑證、工具呼叫與 SDK 本身的測試失敗分開。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記