生產環境早就裝不進任何人的腦袋。 Polylane 全部裝得下:雲端、程式碼與遙測資料,在同一張即時的圖裡。
加入候補名單 Topology Share
Search your cloud resources...
Filter Galaxy Flow Table
Critical Critical to your architecture.
Issue hotspot: 4 issues in the last 7 days
Change hotspot: 12 changes in the last 7 days
Cloudflare · coreplane · earth · Compute
Critical Critical to your architecture.
Change hotspot: 7 changes in the last 7 days
Cloudflare · coreplane · earth · Databases
Standard Important to your architecture.
Issue hotspot: 2 issues in the last 7 days
AWS · coreplane-prod · us-east-1 · Compute
Critical Critical to your architecture.
Issue hotspot: 1 issue in the last 7 days
Change hotspot: 3 changes in the last 7 days
PlanetScale · coreplane · us-east · Databases
代理的好壞取決於它的情境。 Polylane 是這樣學習你的情境的。
-
你的整個雲端,唯讀
AWS 透過唯讀角色,多數供應商透過 API 權杖。每個資源都加入這張圖,而且會自己保持最新。
-
跨供應商串連
主機名稱、DNS 記錄與 IP 把各個雲端連起來:一筆指向 Render 服務的 Cloudflare CNAME。真實的請求路徑,不是兩年前的架構圖。
-
重要的東西,看得更緊
每個資源都有一個層級,從關鍵到最低,每天依流量與依賴它的東西計算。任何一項都可以覆寫。
-
它會把事情寫下來
每個資源都有一份隨系統漂移而自我改寫的 wiki,代理也會留下筆記:七月的調查會從六月的學到東西。
CLI 或 MCP,由你決定。 你的程式碼代理想怎麼連就怎麼連。
CLI 幫你接好。
一次安裝就連上你的技術棧,並在你機器上的每一個程式碼代理裡註冊 Polylane。
MCP 提供服務。
你的雲端、遙測資料、部署與程式碼都在同一個 MCP 伺服器後面。預設只讀;寫入受預設拒絕的政策管控。
在你已經在用的工具裡。 每個代理讀的都是同一張圖。
Claude Code
Cursor
GitHub Copilot
Codex
Gemini CLI
VS Code
Zed
OpenCode
Code mode。 一次往返,只拿答案。
你的代理不必逐一呼叫工具,而是對 MCP 的 tools 命名空間撰寫 TypeScript,由伺服器執行。中間結果不會進入情境視窗;只有答案回來。
polylane · runCode
// Which deploy slowed checkout-edge? const deploys = await tools.deployHistory({ service: "checkout-edge", hours: 24 }); const { points } = await tools.queryMetrics({ service: "checkout-edge", metric: "latency.p99", hours: 24, }); const median = (xs) => xs.sort((a, b) => a - b)[xs.length >> 1] ?? 0; const p99 = (t, side) => median(points.filter((p) => (side < 0 ? p.t < t : p.t > t)).map((p) => p.v)); // Score every deploy by the p99 shift across its timestamp. const [worst] = deploys .map((d) => ({ ...d, shift: p99(d.at, 1) / p99(d.at, -1) })) .sort((a, b) => b.shift - a.shift); // Pull the error logs right after the suspect deploy. const errors = await tools.queryLogs({ service: "checkout-edge", level: "error", after: worst.at, limit: 5, }); // Only this returns; the series and logs stay in the sandbox. return { deploy: worst.sha, // 9f3c2a1 p99Shift: worst.shift, // 4.8 topError: errors[0]?.message, // "Hyperdrive pool exhausted" };
✓ one answer back; twenty round trips saved