MaxQ Engine
כניסה

קנה מידה ללא גבולות.

הרחיבו יישומים במהירות בכל סביבה. אנשים וסוכנים עובדים יחד בזמן אמת, עם הרשאות המאומתות קריפטוגרפית.

גדלים בכל סביבה.

בענן, בשרתים שלכם או בקצה. מוסיפים משאבים ותומכים בעומס גדל עם מודל ביצוע אחד.

ביצוע גמיש
appreadyMaxQreadycloudidleon-premidleedgeidleappreadyMaxQdeployingcloudstartingon-premstartingedgestartingappreadyMaxQscalingcloudstartingon-premstartingedgestartingappreadyMaxQelasticcloudliveon-premliveedgelive
TypeScript
const app = maxq.app("workspace"); await app.deploy({  environments: ["cloud", "on-prem", "edge"],  scale: "elastic",});

אנשים וסוכנים. יחד.

מרחב עבודה אחד למשתתפים רבים. אנשים וסוכנים עובדים בו־זמנית על מצב משותף ומקבלים שינויים בזמן אמת.

מצב משותף
peoplejoinedsharedopenagentsjoinedpeopleeditingsharedmergedagentseditingpeoplesyncingsharedsyncingagentssyncingpeoplesyncedsharedliveagentssynced
TypeScript
const room = await maxq.room("workspace");await room.join([person, ...agents]); room.sync.onChange(render);await room.sync.apply(signedChange);

הרשאות חתומות.

הרשאות עם חתימה קריפטוגרפית מגדירות למי מותר לגשת לנתונים ולבצע פעולות. לפני ביצוע כל בקשה נבדקים החתימה, המשאב, הפעולה, התוקף ומצב הביטול.

הרשאות חתומות
signatureidentityhuman + AIcapabilitysignedworkspaceblockedidentityhuman + AIcapabilitycheckingworkspaceblockedidentityhuman + AIcapabilityverifiedworkspaceallowedidentityhuman + AIcapabilityverifiedworkspaceapplied
TypeScript
const access = await maxq.capability.issue({  subject: actor.publicKey,  resource: room.ref,  rights: ["read", "write"],}, ownerKey); await room.sync.apply(change, {  capability: access,});

מנוע סנכרון

רק מה שהשתנה.

מנוע הסנכרון מעביר שינויים באובייקטים ובשדות שנבחרו. כל מנוי מקבל עדכונים נקודתיים לשאילתה שלו במקום להוריד שוב את כל הנתונים.

סנכרון נקודתי
sourcechangeddeltawatchingviewwaitingsourcechangeddelta1 patchviewwaitingsourcechangeddeltasendingviewwaitingsourcechangeddeltaappliedviewcurrent
TypeScript
const tasks = room.sync.watch({  collection: "tasks",  where: { projectId },  fields: ["id", "status"],  capability: taskRead,}); tasks.onPatch((patch) => view.apply(patch));

ממשיכים אחרי ניתוק.

שינויים מקומיים נשמרים בתור. בחיבור מחדש הסנכרון ממשיך מסמן שמור ומשלים את הפעולות שהוחמצו בזמן הניתוק.

חיבור מחדש
localqueuedcursorsavedreplicawaitinglocalconnectingcursorresumereplicawaitinglocalsendingcursorreplayreplicawaitinglocalsyncedcursorcurrentreplicacurrent
TypeScript
const cursor = await room.sync.checkpoint();room.sync.disconnect(); await room.sync.commit(change, {  offline: "queue",  capability: sessionAccess,}); await room.sync.connect({  after: cursor,  capability: sessionAccess,});

שינויים שונים. תוצאה אחת.

אדם משנה כותרת וסוכן מקצה את המשימה. עדכונים עצמאיים בשדות משתלבים למצב משותף אחד שמגיע לכל המשתתפים.

שינויים מקבילים
personReadyagentassignedmergeeditingtaskwaitingpersonReadyagentassignedmergemergingtaskwaitingpersonReadyagentassignedmergemergedtaskwaitingpersonReadyagentassignedmergesyncedtaskcombined
TypeScript
await Promise.all([  room.sync.patch(taskId, { title: "Ready" }, {    capability: personAccess,  }),  room.sync.patch(taskId, { assignee: "agent" }, {    capability: agentAccess,  }),]); const task = await room.sync.read(taskId, {  capability: personAccess,});

הרשאות קריפטוגרפיות

גישה לאובייקט מסוים.

ההרשאה קושרת את מפתח המשתתף למשאב ולפעולות מותרות. הרשאת קריאה אינה מתירה כתיבה, וידיעת כתובת האובייקט אינה מעניקה גישה.

אובייקט ופעולה
capabilityreadrightsreadcheckingwritecheckingcapabilityreadrightsreadcheckingwritecheckingcapabilityreadrightsreadcheckingwritedeniedcapabilityreadrightsreadallowedwritedenied
TypeScript
const readOnly = await maxq.capability.issue({  subject: analyst.publicKey,  resource: task.ref,  rights: ["read"],}, ownerKey); await task.read({ capability: readOnly });const canWrite = await task.permits("write", readOnly);

מאצילים פחות סמכות.

מעניקים לסוכן גישה למשימה ולכלי רק את הפעולה הדרושה. כל האצלה נוספת מצמצמת זכויות ונשארת בתוך תוקף ההרשאה המקורית.

צמצום סמכות
ownerread/writeagentwaitingtoolwaitingownerread/writeagentreadtoolwaitingownerread/writeagentreadtoolwaitingownerread/writeagentreadtoolread
TypeScript
const reader = await access.delegate({  subject: agent.publicKey,  resource: task.ref,  rights: ["read"],  expiresAt: deadline,}, personKey); const toolAccess = await reader.delegate({  subject: tool.publicKey, rights: ["read"],}, agentKey);

אפשר לבטל גישה.

ביטול או תפוגה מפסיקים את תוקף ההרשאה. בקשות חדשות נחסמות והמינוי נסגר, בעוד נתונים שכבר התקבלו נשמרים.

ביטול הרשאה
revokeclientactiveaccessvalidstreamliveclientactiveaccessvalidstreamliveclientblockedaccessrevokedstreamclosedclientblockedaccessrevokedstreamclosed
TypeScript
const feed = room.sync.watch({  collection: "tasks",  capability: agentAccess,}); await agentAccess.revoke({ signedBy: ownerKey });await feed.closed;

מתחילים. ואז גדלים.

נדבר על סביבות ריצה, עבודה משותפת והרשאות למוצר שלכם.

רכישה