หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
[หัวข้อนี้คือเอกสารรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]
Power Apps ใน Microsoft Copilot ช่วยให้ผู้ใช้สามารถโต้ตอบกับแอปแบบจำลองได้โดยตรงจาก Copilot เมื่อผู้ใช้พูดคุยกับตัวแทน สามารถแสดงข้อมูลของแอปของคุณเป็น UI แบบโต้ตอบ ตารางสําหรับเรียกดูระเบียนหรือฟอร์มสําหรับการดู แก้ไข หรือสร้างทั้งหมดโดยไม่ต้องออกจากประสบการณ์ Copilot นอกจากนี้ คุณสามารถเพิ่มเครื่องมือ MCP แบบกําหนดเองและ UI แบบโต้ตอบไปยังตัวแทนที่ประกาศของแอป ฟังก์ชันนี้สามารถทําได้ผ่าน แอป MCP ซึ่งเป็นส่วนขยายไปยัง MCP ที่ช่วยให้เซิร์ฟเวอร์ MCP สามารถส่งมอบส่วนติดต่อผู้ใช้แบบโต้ตอบกับโฮสต์ ฟีเจอร์นี้ทํางานโดยการสร้างเซิร์ฟเวอร์ MCP และตัวแทนที่เปิดเผยจากแอปของคุณ
Important
- คุณลักษณะนี้เป็นคุณลักษณะพรีวิว
- คุณลักษณะการแสดงตัวอย่างไม่ได้มีไว้สำหรับการนำไปใช้งานจริง และอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น
Prerequisites
- แอปที่ขับเคลื่อนด้วยแบบจำลอง ในปัจจุบัน คุณลักษณะนี้จะพร้อมใช้งานกับแอปแบบจําลองข้อมูลเท่านั้น
- สิทธิ์การใช้งาน Microsoft 365 Copilot จำเป็นสำหรับทั้งผู้สร้างที่ทำการปรับใช้และผู้ใช้ปลายทางที่โต้ตอบกับเอเจนต์
- สิทธิ์ในการอัปโหลดแอปแบบกําหนดเองใน Microsoft Teams ผู้ดูแลระบบ Microsoft 365 ของคุณอาจจําเป็นต้องเปิดใช้งาน ตรวจสอบการตั้งค่าผู้ดูแลระบบ Teams ของคุณหากมองไม่เห็นตัวเลือกการอัปโหลด
ตั้งค่า Power Apps บน Copilot
ไปที่ Power Apps เลือกสภาพแวดล้อมที่คุณต้องการ จากนั้นเปิดแอปแบบจําลองข้อมูลที่ต้องการ
เลือกไอคอน App MCP บนแถบนําทางด้านซ้าย จากนั้นเลือก ตั้งค่า MCP การดําเนินการนี้จะตั้งค่าเซิร์ฟเวอร์ MCP สําหรับแอป ซึ่งมีเครื่องมือ MCP สําหรับการสนทนาของ Copilot นี่เป็นขั้นตอนครั้งเดียวและอาจใช้เวลาสองถึงสามวินาทีในการดําเนินการให้เสร็จสมบูรณ์
บันทึกและเผยแพร่แอป
เลือก ดาวน์โหลดแพคเกจแอป เพื่อดาวน์โหลดตัวแทนที่เปิดเผยที่สร้างขึ้นโดย MCP ของแอปของคุณ แพคเกจนี้ประกอบด้วยข้อกําหนดของเอเจนต์ เครื่องมือที่มีอยู่ภายในสําหรับเรกคอร์ดและข้อมูลพร้อมกับการกําหนดค่าที่จําเป็นในการปรับใช้ประสบการณ์การใช้งานของแอปของคุณไปยัง Microsoft Copilot
อัปโหลดไฟล์บีบอัดที่มีชื่อคล้ายกับ name.zipdeclarative-agent-app ไปยัง Microsoft Teams หรือ Microsoft 365 Agents:
- ทีม: อัปโหลดสําหรับการใช้งานส่วนบุคคลเป็นแอปแบบกําหนดเองใน Teams ข้อมูลเพิ่มเติม อัปโหลดแอปของคุณใน Teams
- ตัวแทน Microsoft 365: เผยแพร่แพคเกจสําหรับทีมหรือกลุ่มจากศูนย์การจัดการ Microsoft 365 ข้อมูลเพิ่มเติม: ตัวแทนเผยแพร่
ตอนนี้คุณสามารถถามคำถามเกี่ยวกับตารางในแอปจากเอเจนต์แบบประกาศนี้ เครื่องมือที่มีอยู่ภายในสามารถแสดง เส้นตารางแบบโต้ตอบ สําหรับคิวรีชุดข้อมูลได้
นอกจากนี้ คุณสามารถใช้ฟอร์มอัจฉริยะเพื่อสร้าง ดู และแก้ไขระเบียนภายในบริบท Microsoft Copilot ได้
Note
คุณสามารถปรับแต่งเอเจนต์แบบประกาศที่รวมอยู่ในแพคเกจแอปตามดุลพินิจของคุณเอง เพื่อลดความเป็นไปได้ของพฤติกรรมที่ไม่คาดคิดเมื่อใช้ตัวแทน AI ให้ใช้ความระมัดระวังเมื่อคุณปรับแต่งรหัสตัวแทนที่เปิดเผย ข้อมูลเพิ่มเติม: Declarative Agents สำหรับ Microsoft Copilot
สร้างเครื่องมือแบบกําหนดเอง
นอกเหนือจากเครื่องมือที่มีอยู่ภายในตัวแทนที่เปิดเผยของแอปสามารถขยายการทํางานของมันได้โดยการรวมเครื่องมือและวิดเจ็ตที่กําหนดเอง สามารถใช้นักออกแบบที่มีพื้นฐานมาจากตัวสร้างคำถามเพื่อรวมเครื่องมือ MCP ที่กำหนดเองและส่วนประกอบ UI แบบโต้ตอบเข้าสู่เอเจนต์เชิงประกาศของแอปได้ ตัวอย่างเช่น ในแอป Zava Airlines สามารถเพิ่มเครื่องมือแบบกําหนดเองเพื่อแสดงแผนที่เที่ยวบินควบคู่ไปกับไทม์ไลน์ของเที่ยวบินเป็นแผนภูมิ Gantt ในมุมมองแบบเคียงข้างกัน
Important
- หากคุณพบข้อความแสดงข้อผิดพลาดขณะสร้างเครื่องมือแบบกําหนดเอง: "คุณลักษณะนี้ถูกปิดใช้งาน" จะระบุว่าการตั้งค่าสภาพแวดล้อมของ AI ไม่ได้เปิดใช้งาน สำหรับข้อมูลเพิ่มเติม ดูการตั้งค่าสภาพแวดล้อมคำสั่ง AI
- เครื่องมือแบบกำหนดเองและ UX ขึ้นอยู่กับความสามารถในการขยายของ Microsoft Copilot สำหรับเอเจนต์ที่กำหนดด้วยการประกาศ ข้อมูลเพิ่มเติม: ความสามารถในการขยาย Microsoft Copilot และความสามารถที่รองรับ
เลือก สร้างเครื่องมือแบบกําหนดเอง ภายใต้ส่วน เครื่องมือ ของแท็บ แอป MCP
ระบุ ชื่อ ที่เป็นคำอธิบายที่ชัดเจนและ คำอธิบาย สำหรับเครื่องมือ เนื่องจาก Microsoft Copilot ใช้ข้อมูลนี้เพื่อกำหนดว่าเมื่อใดควรเรียกใช้
เพิ่มคําแนะนําเพื่อส่งออกข้อมูลสําหรับเครื่องมือที่มีค่าเริ่มต้นเป็นรูปแบบ JSON คุณสามารถเปลี่ยนเป็นข้อความได้หากเครื่องมือไม่มีส่วนประสบการณ์ผู้ใช้ที่เชื่อมโยงอยู่ คําแนะนําสามารถรวมถึงคิวรีสําหรับระเบียนเฉพาะของตารางในแอป หรืออาจเป็นพารามิเตอร์การป้อนข้อมูลสําหรับเครื่องมือที่จะใช้ในการเกี่ยวโยงเครื่องมือ ตรวจสอบให้แน่ใจว่าได้ทดลองและเลือกโปรแกรม AI ที่เหมาะสม
เลือก ทดสอบ เพื่อตรวจสอบและตรวจสอบผลลัพธ์ของเครื่องมือ จากนั้นเลือก ถัดไป ตอนนี้คุณสามารถสร้างและวาง HTML ที่กําหนดเอง เฉพาะสําหรับเครื่องมือนี้ HTML นี้สามารถสร้างขึ้นโดยใช้
/generate-mcp-apps-ui skillหรือเครื่องมือการพัฒนาของคุณเอง เลือก บันทึก
ดาวน์โหลด zip ของแพคเกจแอปที่อัปเดตแล้วและอัปโหลดเวอร์ชันล่าสุดไปยัง Microsoft Teams หรือตัวแทน Microsoft 365
เรียกใช้เครื่องมือ โดยการออกคิวรีที่เกี่ยวข้องในตัวแทนแอปเพื่อดูการดําเนินการ UI แบบกําหนดเอง
Note
คุณสามารถส่งคําสั่ง '-developer on'ให้กับ Microsoft Copilot เพื่อดูข้อมูลดีบักของเอเจนต์และเครื่องมือที่ถูกเรียกใช้ สําหรับการแก้ไขปัญหาทั่วไป ดูการแก้ไขปัญหาแอป MCP ใน Microsoft Copilot
การเกี่ยวโยงเครื่องมือแบบไดนามิก
การเชื่อมโยงเครื่องมือในเอเจนต์แบบประกาศของ Power Apps ใช้ Microsoft Copilot orchestrator เพื่อวิเคราะห์เจตนาของผู้ใช้และเรียกใช้การดำเนินการที่ขับเคลื่อนด้วย MCP หลายรายการ (เครื่องมือ) แบบไดนามิกตามลำดับเพื่อทำงานให้เสร็จสมบูรณ์ Orchestrator เลือก กําหนดพารามิเตอร์ และดําเนินการการรวมกันที่ถูกต้องของการดําเนินการของแอป MCP โดยยึดตามบริบทและคําอธิบายฟังก์ชัน การเปิดใช้งานเวิร์กโฟลว์แบบครอบคลุมทั่วทั้ง Power Apps และระบบขององค์กร นี่คือวิธีการสร้างเครื่องมือที่มีการป้อนข้อมูลที่มีการกําหนดพารามิเตอร์
เลือก สร้างเครื่องมือแบบกําหนดเอง ภายใต้ส่วน เครื่องมือ ของแท็บ แอป MCP
ระบุ ชื่อ ที่เป็นคำอธิบายที่ชัดเจนและ คำอธิบาย สำหรับเครื่องมือ เนื่องจาก Microsoft Copilot ใช้ข้อมูลนี้เพื่อกำหนดว่าเมื่อใดควรเรียกใช้
ในตัวอย่างนี้ เราใช้ตัวแสดงภาพแผนภูมิ Sankey ก่อนอื่น กําหนดเค้าร่างการป้อนข้อมูล JSON ที่จําเป็นในการสร้างแผนภูมิ Sankey ถัดไป สร้างคำสั่งสำหรับเครื่องมือแสดงภาพแผนภูมิ Sankey เครื่องมือจะแสดงพารามิเตอร์การป้อนข้อมูลที่ชื่อว่า
SankeyDiagramVisualizationInputDataพารามิเตอร์นี้ได้รับการแปลโดยเครื่องมือและแปลงเป็นโครงสร้าง JSON ที่ตัวแสดงภาพคาดหวัง เลือกชื่อพารามิเตอร์การป้อนข้อมูลที่ชัดเจนและสื่อความหมายเพื่อให้ LLM สามารถระบุและเรียกใช้เครื่องมือได้อย่างถูกต้องตอนนี้คุณสามารถสร้างและวาง HTML ที่กําหนดเอง เฉพาะสําหรับเครื่องมือนี้ HTML นี้สามารถสร้างขึ้นโดยใช้
/generate-mcp-apps-ui skillหรือเครื่องมือการพัฒนาของคุณเอง เลือก บันทึกดาวน์โหลด zip ของแพคเกจแอปที่อัปเดตแล้วและอัปโหลดเวอร์ชันล่าสุดไปยัง Microsoft Teams หรือ Microsoft 365 Agents
ขณะนี้ Copilot สามารถใช้คิวรีภาษาธรรมชาติเพื่อดึงข้อมูลและส่งผ่านไปยังเครื่องมือสําหรับการแสดงภาพ ตัวอย่างเช่น คุณสามารถใช้คิวรีที่ซับซ้อนเพื่อรับข้อมูลป้อนเข้าแบบไดนามิกจากข้อมูลตาราง 'ปัญหา' และแสดงภาพโดยใช้เครื่องมือ Sankey Chart Visualizer
คุณสามารถปรับแต่งแผนภูมิ Sankey เพิ่มเติมได้โดยการสนทนาต่อไป
ตัวอย่างเต็มหน้าจอ
ในตัวอย่างนี้ ปุ่มขยายจะแสดงเฉพาะเมื่อโฮสต์สนับสนุนโหมดเต็มหน้าจอเท่านั้น
function renderExpandButton(app) {
const ctx = app.getHostContext();
// Don't render the button if the host doesn't support fullscreen
if (!ctx?.availableDisplayModes?.includes('fullscreen')) {
return null;
}
const btn = document.createElement('button');
btn.addEventListener('click', async () => {
const result = await app.requestDisplayMode({ mode: 'fullscreen' });
// Always use result.mode — the host may grant a different mode than requested
console.log('Granted mode:', result.mode);
});
return btn;
}
มาตรการป้องกันเดียวกันนี้จะมีผลกับความสามารถของโฮสต์ใด ๆ ตรวจสอบ getHostContext() ก่อนใช้งาน:
const ctx = app.getHostContext();
// Theme
if (ctx?.theme) applyTheme(ctx.theme);
// Current display mode
if (ctx?.displayMode === 'fullscreen') { /* adjust layout */ }
// Available modes
if (ctx?.availableDisplayModes?.includes('inline')) { /* show collapse option */ }
ตอบสนองต่อการเปลี่ยนแปลงความสามารถในขณะทํางานผ่าน onhostcontextchanged — บริบทของโฮสต์สามารถอัปเดตได้หลังจาก connect():
app.onhostcontextchanged = (ctx) => {
if (ctx.theme) applyTheme(ctx.theme);
if (ctx.displayMode) updateLayout(ctx.displayMode);
};
การใช้โหมดเต็มหน้าจอพร้อมผลลัพธ์ของเครื่องมือ
รูปแบบทั่วไปคือการสลับไปยังเต็มหน้าจอโดยอัตโนมัติเมื่อวิดเจ็ตรับข้อมูล ให้เนื้อหามีพื้นที่มากขึ้นในการแสดงผล
app.ontoolresult = async (result) => {
const data = result.structuredContent;
if (!data) return;
// Expand to fullscreen when data arrives, if the host supports it
const ctx = app.getHostContext();
if (ctx?.availableDisplayModes?.includes('fullscreen') && currentMode !== 'fullscreen') {
const granted = await app.requestDisplayMode({ mode: 'fullscreen' });
currentMode = granted.mode;
document.body.classList.toggle('mode-fullscreen', currentMode === 'fullscreen');
}
renderData(data);
};
คุณยังสามารถให้ผู้ใช้ตัดสินใจ — แสดงในโหมดปัจจุบันก่อน จากนั้นเสนอปุ่มขยาย:
app.ontoolresult = (result) => {
const data = result.structuredContent;
if (!data) return;
renderData(data); // render in whatever mode is active
updateExpandBtn(); // show the expand button now that there is content
};