目 QA 指南:以“四問(wèn)門檻“驅(qū)動(dòng)多平臺(tái) Agent 編排產(chǎn)品的質(zhì)量把關(guān))
【免費(fèi)下載鏈接】paseoOrchestrate multiple coding agents from desktop and mobile項(xiàng)目地址https://gitcode.com/gh_mirrors/pa/paseo點(diǎn)擊查看免費(fèi)下載本文是 Paseo 倉(cāng)庫(kù)開發(fā)流程的核心質(zhì)量規(guī)范對(duì)應(yīng) docs/qa.md。Paseo 是一個(gè)同時(shí)覆蓋桌面端macOS / Windows / Linux / Electron與移動(dòng)端iOS / Android / Web的多 Agent 編排產(chǎn)品其質(zhì)量體系圍繞四個(gè)問(wèn)題展開功能是否真的好用、是否引入回歸、是否覆蓋所有受影響的平臺(tái)、自動(dòng)化測(cè)試是否真實(shí)有效。讀完本文你將掌握 Paseo 評(píng)審每一個(gè) Pull Request 時(shí)使用的證據(jù)標(biāo)準(zhǔn)、平臺(tái)覆蓋矩陣、性能回歸驗(yàn)證方法以及真實(shí)測(cè)試優(yōu)先于 Mock的自動(dòng)化覆蓋底線并能直接落地到自己的變更提交中。一、四問(wèn)門檻QA 是 Paseo 產(chǎn)品開發(fā)的最大瓶頸Paseo 明確把 QA 視為產(chǎn)品開發(fā)的主要瓶頸并為此設(shè)定了四條硬性門檻。每一個(gè) Pull Request 都必須為它觸及的問(wèn)題提供證據(jù)沒(méi)有證據(jù)的 PR 會(huì)被直接關(guān)閉Does it work well?功能是否真正好用Does it regress anything else?是否讓其他功能回退Was it tested on every platform it affects?是否在它影響到的每一個(gè)平臺(tái)上測(cè)試過(guò)Is there automated coverage, and is that coverage real?是否有自動(dòng)化覆蓋且該覆蓋是否真實(shí)有效這四問(wèn)不是抽象口號(hào)而是評(píng)審動(dòng)作的判定標(biāo)準(zhǔn)變更觸及哪一問(wèn)就必須為該問(wèn)提交對(duì)應(yīng)證據(jù)。對(duì)于插件變更還要先在 docs/plugins.md 中核對(duì) SDK 導(dǎo)入邊界并把邊界測(cè)試與兩個(gè)運(yùn)行時(shí)加載器index.server.ts子進(jìn)程與index.client.tsx客戶端一并納入證據(jù)。二、什么是證據(jù)可以被別人復(fù)核的東西證據(jù)的定義是**別人能看得見的東西**而不是你的自我聲明??山邮艿淖C據(jù)形式包括你運(yùn)行過(guò)的命令及其輸出原樣粘貼你新增的測(cè)試及其結(jié)果改動(dòng)前后的截圖交互過(guò)程錄制的視頻日志、請(qǐng)求、響應(yīng)規(guī)范要求按需脫敏、保留技術(shù)細(xì)節(jié)。特別值得注意的是如果工作是 Agent 完成的必須提交它的原始輸出——因?yàn)檎獣?huì)丟失別人核驗(yàn)所需的關(guān)鍵細(xì)節(jié)。三、第一問(wèn)Does it work well——能用但不流暢就不算完成一個(gè)能用但卡頓、布局跳動(dòng)或偏移兩個(gè)像素的功能不算完成。對(duì) UI 而言這意味著視覺(jué)、交互和性能三方面都要匹配設(shè)計(jì)系統(tǒng)設(shè)計(jì)基準(zhǔn)是 docs/design.md。最常見的兩類問(wèn)題被單獨(dú)點(diǎn)名布局漂移Layout shift內(nèi)容隨數(shù)據(jù)到達(dá)而跳動(dòng)、徽章出現(xiàn)時(shí)行高變化、首次渲染時(shí)面板重排。要求觀察慢網(wǎng)速和首屏加載時(shí)的表現(xiàn)而不是只在一切預(yù)熱之后檢查。對(duì)齊Alignment元素對(duì)齊到字形而不是觸摸目標(biāo)。具體對(duì)齊規(guī)則見 docs/design.md 的第 8 節(jié)——行首圖標(biāo)、標(biāo)題、尾部按鈕標(biāo)簽必須落在同一導(dǎo)軌rail上對(duì)齊的是墨跡而非內(nèi)邊距。設(shè)計(jì)規(guī)范在倉(cāng)庫(kù)里有完整的落地實(shí)現(xiàn)token 全部收斂在 packages/app/src/styles/theme.ts按鈕統(tǒng)一使用Buttonpackages/app/src/components/ui/button.tsx狀態(tài)徽章統(tǒng)一使用StatusBadgepackages/app/src/components/ui/status-badge.tsx。QA 的第一問(wèn)實(shí)際上要求你對(duì)照這些組件基線而非手搓樣式來(lái)驗(yàn)收。四、第二問(wèn)Does it regress anything else——組合式架構(gòu)下的回歸面Paseo 天生是**可組合composable**的設(shè)計(jì)這意味著你的改動(dòng)旁邊就是你沒(méi)碰過(guò)的功能。規(guī)范給出的兩個(gè)典型例子改動(dòng) Agent 列表會(huì)影響歸檔archive、子 Agentsubagents和標(biāo)簽tabs改動(dòng) Git 操作會(huì)影響 worktree 和檢出流程checkout flow。因此要求打開周圍的表面逐一驗(yàn)證。性能也是回歸的一部分Paseo 是 Expo React Native 應(yīng)用不是套了原生殼的 Web 應(yīng)用——你寫的不是 CSS樣式解析方式不同各平臺(tái)的性能特征也不同。在桌面 dev build 里秒開的交互在手機(jī)上可能明顯變慢。如果改動(dòng)觸及熱路徑——終端terminal、消息列表message list、Git 輪詢git polling——必須提交改動(dòng)前后的數(shù)字。終端流水線及其基準(zhǔn)見 docs/terminal-performance.md渲染器與 React 性能分析見 docs/development.md。以終端熱路徑為例docs/terminal-performance.md 給出了完整的測(cè)量手段QA 報(bào)告可以直接引用Node-only 基準(zhǔn)快速迭代npx tsx scripts/benchmark-terminal-latency.ts啟動(dòng)隔離 daemon全新PASEO_HOME、隨機(jī)端口絕不用 6767測(cè)量回顯延遲百分位、突發(fā)抖動(dòng)與快照次數(shù)結(jié)果寫入/tmp/paseo-terminal-bench/瀏覽器性能 spec用戶感知路徑PASEO_TERMINAL_PERF_E2E1門控下的 packages/app/e2e/browser/terminal-performance.spec.ts 與 terminal-keystroke-stress.spec.ts生產(chǎn)觀測(cè)grepdaemon.log中的ws_runtime_metrics讀取eventLoopDelay與bufferedAmount——eventLoopDelay是daemon 是否繁忙的 ground truth其 p99/max 直接約束終端幀的最壞延遲。五、第三問(wèn)Every platform it affects——平臺(tái)覆蓋矩陣你的代碼不只運(yùn)行在你測(cè)試過(guò)的平臺(tái)上。同一套應(yīng)用會(huì)發(fā)布到iOS、Android、瀏覽器 Web以及 macOS / Windows / Linux 上的 Electrondaemon 則運(yùn)行在三大桌面操作系統(tǒng)外加 Docker。規(guī)范不要求你擁有每一臺(tái)設(shè)備但要求你明確說(shuō)出覆蓋了什么。每個(gè) PR 都應(yīng)填寫這張平臺(tái)矩陣PlatformTestedNotesiOSAndroidWebDesktop macOSDesktop WindowsDesktop Linux合理范圍內(nèi)盡量安裝環(huán)境一臺(tái)機(jī)器上的 iOS 模擬器 Android 模擬器就能覆蓋大部分平臺(tái)差距參見 docs/development.md 與 docs/android.md。兩個(gè)跨平臺(tái)注意點(diǎn)代碼在哪里運(yùn)行平臺(tái)門控規(guī)則見倉(cāng)庫(kù)根目錄 CLAUDE.md 的 platform gating 一節(jié)。反復(fù)踩坑的領(lǐng)域各有專門文檔docs/hover.mdhover 在原生端不觸發(fā)、docs/unistyles.mdUnistyles 與 Reanimated 沖突、docs/floating-panels.md浮動(dòng)面板與鍵盤布局、docs/mobile-panels.md移動(dòng)端面板、docs/expo-router.md路由與啟動(dòng)恢復(fù)。版本漂移App 與 daemon 是獨(dú)立發(fā)布的版本會(huì)雙向漂移新 App 配舊 daemon、舊 App 配新 daemon 都會(huì)真實(shí)存在。這套契約獨(dú)立成文見 docs/protocol-compatibility.md——協(xié)議層變更必須證明六個(gè)月前的 App 仍能解析這個(gè)消息、六個(gè)月前的 daemon 仍能滿足這個(gè) App。從源碼結(jié)構(gòu)看客戶端能力由packages/client包統(tǒng)一聲明packages/client/srcApp、CLI、插件繼承這些默認(rèn)值這正是每平臺(tái)行為一致的實(shí)現(xiàn)基礎(chǔ)能力檢測(cè)只發(fā)生在一處下游讀取的都是干凈形狀。六、第四問(wèn)Automated coverage that means something——測(cè)試只有在驗(yàn)證真實(shí)事物時(shí)才算數(shù)測(cè)試只有在真實(shí)執(zhí)行時(shí)才構(gòu)成證據(jù)Bug 修復(fù)需要回歸測(cè)試且該測(cè)試必須因?yàn)閳?bào)告的原因在舊代碼上失敗功能需要走用戶或調(diào)用方實(shí)際使用的同一接口的測(cè)試Web 流程需要真實(shí)的 Playwright 運(yùn)行而不是 mock 出來(lái)的近似Agent provider 工作需要能判斷它成功了的人對(duì)著真實(shí) provider 手動(dòng)驗(yàn)證——fixture 和 mock 只能證明 fixture 能解析僅此而已。把行為 mock 掉、斷言內(nèi)部實(shí)現(xiàn)、或者能在壞代碼上通過(guò)的測(cè)試都是在宣稱并不存在的覆蓋。完整標(biāo)準(zhǔn)見 docs/testing.md含如何在不凍結(jié)機(jī)器的情況下跑測(cè)試套件。6.1 測(cè)試只有兩種形狀docs/testing.md 明確倉(cāng)庫(kù)里每個(gè)測(cè)試只屬于兩種形態(tài)之一——帶端口與適配器的單元測(cè)試unit tests with ports and adapters生產(chǎn)代碼通過(guò)注入接口接收真實(shí)世界依賴DB、HTTP、CLI 進(jìn)程、時(shí)鐘、隨機(jī)性、文件系統(tǒng)、其他模塊測(cè)試用與生產(chǎn)模塊同目錄的、類型化的內(nèi)存 fake 來(lái)接線。禁止vi.mock、vi.hoisted、vi.spyOn自身導(dǎo)出、JSDOM、testing-library組件掛載、RN 測(cè)試渲染器、全局猴子補(bǔ)丁與 fake-server fixtures。一旦需要其中任何一樣說(shuō)明生產(chǎn)模塊缺少端口——先修接縫再對(duì)著 fake adapter 寫測(cè)試。真實(shí)端到端測(cè)試real end-to-end真實(shí) daemon、真實(shí)網(wǎng)絡(luò)、真實(shí)瀏覽器App 代碼用 Playwright或真實(shí)隔離的服務(wù)器實(shí)例daemon 代碼。沒(méi)有 JSDOM沒(méi)有 mock 傳輸。介于兩者之間的東西——JSDOM 里的組件測(cè)試、mock 被測(cè)模塊的 vitest 測(cè)試、斷言私有狀態(tài)的測(cè)試——被明確判定為正在被淘汰的廢料。6.2 測(cè)試文件后綴即分類Vitest 按后綴識(shí)別測(cè)試歸屬后綴決定了它屬于哪個(gè)類別、在哪條流水線運(yùn)行SuffixWhat it isWhere it runs*.test.ts(x)單元測(cè)試——純、快、無(wú) daemonnpm run test:unit*.posix.test.ts需要 POSIX 專屬行為的單元測(cè)試單元測(cè)試Windows 上跳過(guò)*.browser.test.ts需要真實(shí)瀏覽器DOM的 App 測(cè)試npm run test:browserVitest browser 模式Playwright providerheadless Chromium*.e2e.test.ts針對(duì)真實(shí) daemon 的端到端測(cè)試npm run test:e2e*.real.e2e.test.ts命中真實(shí) providerClaude/Codex/Copilot/OpenCode/Pi的 E2E需在packages/server/.env.test配置憑據(jù)npm run test:integration:real/test:e2e:real*.local.e2e.test.ts需要本地專屬資源的 E2Enpm run test:integration:local/test:e2e:local瀏覽器 Playwright spec 位于 packages/app/e2e/browser/桌面 Playwright 與真實(shí) Electron E2E 位于 packages/desktop/e2e/兩套共享的 harness 代碼在 packages/app/e2e/support/。App 側(cè)命中真實(shí) provider 的 spec 用*.real.spec.ts后綴默認(rèn)瀏覽器 project 會(huì)忽略該后綴因此 CI 無(wú)需 provider 憑據(jù)也能全綠——真實(shí) provider 冒煙測(cè)試必須放在*.real.e2e.test.ts即使有環(huán)境變量保護(hù)也不能降級(jí)到*.test.ts。6.3 驅(qū)動(dòng)真實(shí) daemonad-hoc daemon 測(cè)試真實(shí) daemon如何落地docs/ad-hoc-daemon-testing.md 提供了隔離進(jìn)程內(nèi) daemon 測(cè)試 harness不觸碰 6767 端口的常駐 daemon。要點(diǎn)僅供測(cè)試代碼使用產(chǎn)品啟動(dòng)路徑必須走scripts/supervisor-entrypoint.tsimport os from node:os; import path from node:path; import { mkdir, mkdtemp, rm } from node:fs/promises; import pino from pino; import { createPaseoDaemon } from ./bootstrap.js; import { DaemonClient } from ./test-utils/daemon-client.js; const logger pino({ level: warn }); const paseoHomeRoot await mkdtemp(path.join(os.tmpdir(), paseo-test-)); const paseoHome path.join(paseoHomeRoot, .paseo); await mkdir(paseoHome, { recursive: true }); const staticDir await mkdtemp(path.join(os.tmpdir(), paseo-static-)); const daemon await createPaseoDaemon( { listen: 127.0.0.1:0, // OS 分配空閑端口 paseoHome, corsAllowedOrigins: [], hostnames: true, mcpEnabled: false, staticDir, mcpDebug: false, agentClients: {}, agentStoragePath: path.join(paseoHome, agents), relayEnabled: false, relayEndpoint: relay.paseo.sh:443, appBaseUrl: https://app.paseo.sh, }, logger, ); await daemon.start(); const target daemon.getListenTarget(); const port target!.type tcp ? target!.port : null; const client new DaemonClient({ url: ws://127.0.0.1:${port}/ws, appVersion: 0.1.70, }); await client.connect(); await client.fetchAgents({ subscribe: {} }); // ... do your testing ... await client.close(); await daemon.stop(); await rm(paseoHomeRoot, { recursive: true, force: true }); await rm(staticDir, { recursive: true, force: true });運(yùn)行方式npx tsx packages/server/src/server/your-script.ts。常用測(cè)試工具位于 packages/server/src/test-utils/如vitest-setup.ts統(tǒng)一加載.env.test并設(shè)置PASEO_SUPERVISED0、禁用 Git/SSH 交互提示。該文檔還總結(jié)了多條實(shí)戰(zhàn) gotcha寫測(cè)試時(shí)可直接引用appVersion 門控 provider 可見性daemon 對(duì)未攜帶appVersion 0.1.45的客戶端隱藏非 legacy providerclaude/codex/opencode 之外的DaemonClient默認(rèn)不發(fā)版本號(hào)所以 ACP 類自定義 provider 在快照里不可見必須顯式傳appVersionprovider 快照是異步的首次getProvidersSnapshot()大概率返回status: loading要輪詢等待目標(biāo) provider 就緒多數(shù)操作前必須fetchAgents()缺了這次握手get_providers_snapshot_request之類的消息會(huì)靜默掛起永遠(yuǎn)用listen: 127.0.0.1:0讓 OS 分配端口硬編碼端口會(huì)與常駐 daemon 或其他測(cè)試沖突腳本必須放在packages/server/src/下測(cè)試工具通過(guò) TypeScript 項(xiàng)目做相對(duì)導(dǎo)入失敗也要清理用 try/finally 保證 daemon 停止、臨時(shí)目錄刪除ACP provider 會(huì)拉起真實(shí)進(jìn)程probe 模型與模式需要二進(jìn)制在 PATH 上探測(cè)可能耗時(shí) 5–15 秒。6.4 移動(dòng)端測(cè)試Agent Device 與 Maestro移動(dòng)端 QA 的主格式是Agent Device.ad腳本docs/mobile-testing.mdAgent 交互式發(fā)現(xiàn)可用流程、保存成功命令replay runner 在本地或 CI 執(zhí)行同一份打字計(jì)劃。錄制流程的典型命令agent-device open sh.paseo.debug \ --platform ios \ --session terminal-author \ --save-script ./packages/app/e2e/mobile/agent-device/terminal.ios.ad agent-device snapshot -i --session terminal-author agent-device press idworkspace-header-menu-trigger --session terminal-author # Continue the flow and verify its result with wait/get/is/find. agent-device close --session terminal-author運(yùn)行整套移動(dòng)套件npm run test:e2e:mobile。最小的可讀示例見 packages/app/e2e/mobile/agent-device/native-terminal-basic.ios.ad 與 native-terminal-basic.android.ad。遺留的 Maestro 流程在 packages/app/maestro/含可復(fù)用子流程 packages/app/maestro/flows/可通過(guò)agent-device test path --maestro執(zhí)行其受支持子集作為遷移路徑。移動(dòng)端 QA 的核心主張與第四問(wèn)完全一致takeScreenshot是證據(jù)不是斷言斷言必須用wait、get、is、find選擇器優(yōu)先基于穩(wěn)定的 app IDtestID/nativeID不要用文本匹配。6.5 桌面端瀏覽器捕獲 harness 與打包冒煙桌面端的真實(shí)-Electron 驗(yàn)證路徑是瀏覽器捕獲 harnessdocs/browser-capture-harness.md它驗(yàn)證單元測(cè)試看不到的 compositor 行為駐留 automationwebview的生產(chǎn)停車狀態(tài)、停車 guest 可繪制且有可拷貝的視口幀、首次呈現(xiàn)前的 1280x800 邏輯像素默認(rèn)值、capturePage與 CDP 全頁(yè)截圖在停車狀態(tài)返回真實(shí)像素等。運(yùn)行npm run capture-harness --workspacegetpaseo/desktop而打包后的桌面冒煙測(cè)試則是生產(chǎn)啟動(dòng)路徑的外部觀察者docs/testing.md 的 Packaged desktop smoke 一節(jié)harness 用隔離的 user data 與 daemon 狀態(tài)啟動(dòng)打包應(yīng)用通過(guò) Chromium 調(diào)試協(xié)議連接真實(shí)渲染器要求同時(shí)滿足paseo://app/渲染器掛載進(jìn)#root沙箱 preload 暴露桌面橋渲染器經(jīng)正常啟動(dòng) bootstrap 拉起全新桌面托管 daemon打包 CLI 能查詢?cè)?daemon 并運(yùn)行終端命令。本地模擬PASEO_DESKTOP_SMOKE1 \ PASEO_DESKTOP_SMOKE_ARTIFACT_DIR/tmp/paseo-desktop-smoke \ npm run build:desktop -- --publish never --linux --x64 --dir該冒煙測(cè)試有一個(gè)著名的歷史教訓(xùn)永遠(yuǎn)不要在 harness 里修復(fù)chrome-sandbox——舊版 unpacked 冒煙把它改成 4755 權(quán)限掩蓋了損壞的安裝包。七、PR 測(cè)試路由按行為而非按包歸屬分配檢查PR 檢查按每個(gè)套件證明的行為路由配置文件是 .github/ci-paths.yml。原則是包不繼承其運(yùn)行時(shí)消費(fèi)者的全部測(cè)試套件——App 改動(dòng)不跑 CLI 或 Electron 包裝器測(cè)試protocol 改動(dòng)不跑每個(gè) import 它的包??绨o態(tài)兼容性屬于typecheck完整的集成覆蓋在合入 main 之后及手動(dòng) CI 運(yùn)行中執(zhí)行。路由使用穩(wěn)定的領(lǐng)域目錄瀏覽器改動(dòng)選擇必需的 Playwright shards桌面改動(dòng)選擇既有的必需桌面任務(wù)打包Desktop Packages、Docker、Nix workflows只在 main 上運(yùn)行。對(duì) QA 的直接含義你在 PR 里聲明的證據(jù)要匹配路由到你的檢查——改 App 就附上 App 的 Playwright spec 證據(jù)改 daemon 就附上真實(shí) daemon 的 E2E 證據(jù)而不是用別的包的測(cè)試結(jié)果湊數(shù)。八、本地運(yùn)行建議套件很重不要凍住你的機(jī)器倉(cāng)庫(kù)測(cè)試套件很重批量運(yùn)行會(huì)凍結(jié)機(jī)器尤其多個(gè) Agent 并行時(shí)。docs/testing.md 給出明確的操作紀(jì)律只跑你改過(guò)的文件npx vitest run path --bail1不要隨意對(duì)整個(gè) workspace 跑npm run test需要廣泛掃描時(shí)重定向到文件再讀npx vitest run path --bail1 /tmp/test-output.txt 21永遠(yuǎn)不要重跑另一個(gè) Agent 已報(bào)綠的套件需要全量信心時(shí)推到 CI 看 GitHub Actions永遠(yuǎn)不要在本地跑完整 Playwright E2E 套件——交給 CI只允許跑你改動(dòng)或需要證明的定向 spec這也是確定性優(yōu)先的延伸測(cè)試每次運(yùn)行必須產(chǎn)生相同結(jié)果不允許條件斷言、時(shí)間/隨機(jī)/網(wǎng)絡(luò)抖動(dòng)依賴、弱斷言toBeTruthy、toBeDefined。Flaky 測(cè)試是一個(gè) bug——永不因?yàn)?flaky 而刪除測(cè)試而是找到方差來(lái)源時(shí)間、隨機(jī)、競(jìng)態(tài)、共享狀態(tài)、非確定性輸出、環(huán)境漂移并修復(fù)它。Agent 認(rèn)證交給 provider 自己處理測(cè)試中不添加認(rèn)證檢查、環(huán)境變量門或條件跳過(guò)認(rèn)證失敗就如實(shí)報(bào)告。九、結(jié)語(yǔ)QA 是一份證據(jù)文化Paseo 的 QA 規(guī)范可以用一句話收束質(zhì)量把關(guān)不靠信任靠可復(fù)核的證據(jù)。四條門檻中的每一條都有對(duì)應(yīng)的倉(cāng)庫(kù)內(nèi)工具與文檔可以落地——設(shè)計(jì)基線看 docs/design.md熱路徑性能看 docs/terminal-performance.md平臺(tái)門控看根目錄 CLAUDE.md協(xié)議兼容看 docs/protocol-compatibility.md測(cè)試標(biāo)準(zhǔn)看 docs/testing.md含 ad-hoc daemon 測(cè)試 docs/ad-hoc-daemon-testing.md、移動(dòng)端 docs/mobile-testing.md、桌面截圖 harness docs/browser-capture-harness.md。提交 PR 之前逐條核對(duì)四問(wèn)附上別人能復(fù)核的證據(jù)——這就是 Paseo 的合格線。贊分享【免費(fèi)下載鏈接】paseoOrchestrate multiple coding agents from desktop and mobile項(xiàng)目地址https://gitcode.com/gh_mirrors/pa/paseo點(diǎn)擊查看免費(fèi)下載相關(guān)推薦Impeccable Polish 精修流程以證據(jù)驅(qū)動(dòng)、沿整條路徑收尾的發(fā)布前質(zhì)量把關(guān)Impeccable Polish 精修流程以證據(jù)驅(qū)動(dòng)、沿整條路徑收尾的發(fā)布前質(zhì)量把關(guān) 導(dǎo)讀 polish 是 Impeccable 設(shè)計(jì)技能中負(fù)責(zé)發(fā)布前最A(yù)I 技能前端CLIdsh-pluginOpenSRE 網(wǎng)關(guān)核心架構(gòu)解析gateway/core 的進(jìn)程編排、容量閘門與 Agent 驅(qū)動(dòng)邊界OpenSRE 網(wǎng)關(guān)核心架構(gòu)解析gateway/core 的進(jìn)程編排、容量閘門與 Agent 驅(qū)動(dòng)邊界 本指南以倉(cāng)庫(kù) gateway/core/AGENTS.人工智能AI Agent運(yùn)維可觀測(cè)性根因分析工具調(diào)用后端MCP ClientsOpenClaw Auto QA 實(shí)戰(zhàn)指南多子系統(tǒng)并行、根因優(yōu)先的全倉(cāng)庫(kù)自主質(zhì)量活動(dòng)編排OpenClaw Auto QA 實(shí)戰(zhàn)指南多子系統(tǒng)并行、根因優(yōu)先的全倉(cāng)庫(kù)自主質(zhì)量活動(dòng)編排 本文基于 .agents/skills/auto qa/SKILL.AI 應(yīng)用AI Agent交互助手后端即時(shí)通訊網(wǎng)關(guān)上一篇快速上手Stats系統(tǒng)監(jiān)控工具Homebrew一鍵安裝終極指南下一篇攻克密鑰管理難題Vault RESTful API實(shí)戰(zhàn)指南與最佳實(shí)踐創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考