production ไม่ได้อยู่ในหัวของใครคนเดียวได้อีกแล้ว Polylane เก็บไว้ทั้งหมด: คลาวด์ โค้ด และ telemetry ในกราฟสดเดียว
ลงชื่อเข้า waitlistIssue hotspot: 4 issues in the last 7 days
Change hotspot: 12 changes in the last 7 days
Change hotspot: 7 changes in the last 7 days
Issue hotspot: 2 issues in the last 7 days
Issue hotspot: 1 issue in the last 7 days
Change hotspot: 3 changes in the last 7 days
เอเจนต์เก่งได้เท่าบริบทที่มันมี นี่คือวิธีที่ Polylane เรียนรู้บริบทของคุณ
-
คลาวด์ทั้งหมดของคุณ แบบอ่านอย่างเดียว
AWS ผ่าน role แบบอ่านอย่างเดียว ผู้ให้บริการส่วนใหญ่ด้วยโทเค็น API ทุกทรัพยากรเข้าร่วมกราฟ และมันอัปเดตตัวเองให้เป็นปัจจุบัน
-
เชื่อมโยงข้ามผู้ให้บริการ
hostname, DNS record และ IP เชื่อมคลาวด์เข้าด้วยกัน: CNAME ของ Cloudflare ที่ชี้ไปยัง service บน Render เส้นทางคำขอจริง ไม่ใช่แผนภาพจากสองปีก่อน
-
ของสำคัญ เฝ้าดูเข้มกว่า
ทุกทรัพยากรได้ระดับชั้น ตั้งแต่วิกฤตถึงเล็กน้อย คำนวณทุกวันจากทราฟฟิกและสิ่งที่พึ่งพามัน แก้ค่าใดก็ได้ตามต้องการ
-
มันจดบันทึกไว้
แต่ละทรัพยากรมีวิกิที่เขียนตัวเองใหม่เมื่อระบบของคุณเปลี่ยนไป และเอเจนต์ทิ้งโน้ตไว้: การสืบสวนเดือนกรกฎาคมเรียนรู้จากเดือนมิถุนายน
CLI หรือ MCP แล้วแต่คุณเลือก เอเจนต์เขียนโค้ดของคุณเชื่อมต่อได้ทุกแบบที่คุณต้องการ
CLI ต่อสายให้
ติดตั้งครั้งเดียวก็เชื่อมต่อ stack ของคุณและลงทะเบียน Polylane ในเอเจนต์เขียนโค้ดทุกตัวบนเครื่องของคุณ
MCP เสิร์ฟให้
คลาวด์ telemetry deploy และโค้ดของคุณอยู่หลังเซิร์ฟเวอร์ MCP เดียว อ่านได้โดยค่าเริ่มต้น การเขียนอยู่หลังนโยบายปฏิเสธเป็นค่าเริ่มต้น
ในเครื่องมือที่คุณใช้อยู่แล้ว เอเจนต์ทุกตัวอ่านกราฟเดียวกัน
Code mode ไปกลับรอบเดียว ได้แค่คำตอบ
แทนที่จะเรียกเครื่องมือทีละตัว เอเจนต์ของคุณเขียน TypeScript กับ namespace ของเครื่องมือใน MCP แล้วเซิร์ฟเวอร์รันให้ ผลลัพธ์ระหว่างทางไม่แตะ context window เลย มีเพียงคำตอบที่กลับมา
// 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