ขอให้เอเจนต์ AI “เขียนสัญญาการให้บริการสำหรับ Contoso” แล้วมันจะทำในคำพูดของมันเอง พร้อมหัวข้อของมันเอง และคำนวนยอดรวมในหัวของมัน นั่นคือการแบ่งงานที่ไม่ถูกต้อง ด้วยการรัน GroupDocs.Assembly.Mcp บนเครื่องท้องถิ่น (dnx GroupDocs.Assembly.Mcp --yes), Claude Desktop, Cursor หรือ Copilot จะถามเทมเพลต Word ของคุณว่าต้องการฟิลด์อะไร, เติมค่าจากบันทึกของคุณ, และเอนจินจะเรนเดอร์สัญญา, ตารางและการคำนวณรวมไว้โดยที่โมเดลไม่ต้องสัมผัสกับเลเอาต์:
ทำสัญญาการให้บริการสำหรับคำสั่งซื้อนี้โดยใช้ contract‑template.docx และบันทึกเป็น PDF: Contoso Pharma, Keizersgracht 210 Amsterdam, ติดต่อ Dr. Lena Brandt; โฮสติ้งจัดการ 12 เดือนที่ 4,800 EUR, การสนับสนุน 12 เดือนที่ 1,200 EUR, เวิร์กช็อปเริ่มต้นใช้งานหนึ่งครั้งที่ 3,500 EUR; ส่วนลด 5 เปอร์เซ็นต์
เวอร์ชันแบบขั้นตอนพร้อมการกำหนดค่าและการแก้ไขปัญหาอยู่ในเอกสาร: วิธีสร้างเอกสารจากเทมเพลตด้วยเอเจนต์ AI โดยใช้ MCP
ทำไมโมเดลไม่ควรเขียนเอกสารเอง?
เพราะเอกสารที่สร้างขึ้นอาจล้มเหลวในลักษณะที่มองไม่เห็นได้ การจัดวางอาจเบี่ยงเบนจากที่กฎหมายอนุมัติ ข้อความบางข้ออาจถูกพาราฟเรซให้ดูดีแต่มีความหมายต่างออกไป ยอดรวมอาจมาจากการทำนายโทเคนต่อไปแทนการคูณ และการรันแต่ละครั้งอาจแตกต่างกันเล็กน้อย ดังนั้นการตรวจสอบเดือนก่อนจึงบอกอะไรไม่ได้เกี่ยวกับสัญญาเดือนนี้
เทมเพลตจะแก้ไขปัญหานี้ได้ Legal จะเป็นเจ้าของ contract-template.docx พร้อมหัวข้อ, บล็อกลายเซ็นและแท็ก <<[customer.Name]>> งานของโมเดลจึงลดลงเหลือส่วนที่มันทำได้ดี: อ่านอีเมลหรือบันทึกแล้วแปลงเป็นค่าที่มีโครงสร้าง เอนจินจะทำส่วนที่เหลือโดยทำซ้ำแบบเดียวกันทุกครั้ง
เอเจนต์จะรู้ว่าจะเติมอะไรบ้างอย่างไร?
มันจะถามเทมเพลต get_template_fields จะอ่านแท็กโดยไม่รันเอนจินและคืนชื่อที่เทมเพลตใช้, ทุกฟิลด์ที่อ่านได้, และโครงกระดูก JSON ที่ต้องเติม นี่คือสิ่งที่เซิร์ฟเวอร์ส่งกลับสำหรับเทมเพลตสัญญาของเรา:
-> get_template_fields {"template":{"filePath":"contract-template.docx"}}
<- { "tagCount": 17,
"dataSourceNames": [ "contract", "customer", "items" ],
"dataSkeleton": {
"contract": { "Number": "", "Date": "", "Discount": "" },
"customer": { "Name": "", "Address": "", "Contact": "",
"Email": "" },
"items": [ { "Title": "", "Quantity": 0, "UnitPrice": 0 } ] } }
โครงกระดูกนั้นคือสัญญาระหว่างโมเดลและเอกสาร เอเจนต์จะเติมค่าจากข้อความคำสั่งและส่งกลับเป็น dataJson
จะเกิดอะไรขึ้นเมื่อเอเจนต์ลืมฟิลด์หนึ่ง?
มันจะได้รับการแจ้งอย่างชัดเจน ในการทดสอบของเรา เอเจนต์ครั้งแรกลืมที่อยู่อีเมลของลูกค้า เซิร์ฟเวอร์ปฏิเสธและระบุช่องว่าง:
-> assemble_document {"template":{...},"dataJson":"{... no Email ...}"}
<- Document assembly failed for 'contract-template.docx': ...
Can not get the value of member 'Email' on type ''. The template
reads 'Email', which the data does not have. Check the spelling
(names are case-sensitive) with get_template_fields and add it to
the data. ... pass allowMissingMembers=true to output nothing for
missing members and empty lists.
โมเดลที่เขียนข้อความอิสระอาจทิ้งบรรทัดนั้นไปโดยเงียบ ๆ ที่นี่เอเจนต์สามารถถามคุณเพื่อขอที่อยู่ หรือร่วมตัดสินใจกับคุณว่าฟิลด์นั้นอาจปล่อยให้ว่างได้
การแลกเปลี่ยนทั้งหมด
user agent Assembly MCP server
| "Make the contract for this order: ..." |
|-------------->| |
| |-- get_template_fields {"template": |
| | "contract-template.docx"} ------------->|
| |<- dataSkeleton: contract, customer, items --|
| | (fills the skeleton from the order text) |
| |-- assemble_document {"dataJson":"{...}", |
| | "format":"pdf"} ----------------------->|
| |<- Saved to: .../contract-template_ |
| | assembled.pdf ----------------------------|
|<- "Contract ready: 3 items, total 75500 EUR, 5% discount." |
layout, table and arithmetic come from the template
เมื่อเพิ่มอีเมลแล้ว การเรียกครั้งที่สองสำเร็จ:
-> assemble_document {"template":{"filePath":"contract-template.docx"},
"dataJson":"{...}","format":"pdf"}
<- Assembled 'contract-template.docx' with inline JSON (JSON object)
as PDF
Saved to: .../contract-template_assembled.pdf
เอกสารนี้มีตารางค่าธรรมเนียมสามแถวที่สร้างโดย <<foreach>> ในแถวของตาราง, จำนวนเงินคำนวณโดยเทมเพลต (<<[item.Quantity * item.UnitPrice]>>), ยอดรวม 75500 EUR จาก items.Sum(...) และบรรทัด “A discount of 5 percent applies.” ซึ่งปรากฏเพราะแท็ก <<if>> พบส่วนลดในข้อมูล โมเดลไม่ได้คำนวณส่วนใดส่วนหนึ่งเลย
วิธีนี้ดีกว่าบริการเทมเพลตแบบโฮสต์หรือไม่?
นี่เป็นการแลกเปลี่ยนที่ต่างกัน บริการเทมเพลตแบบโฮสต์จะรับเทมเพลตและข้อมูลของคุณผ่าน HTTPS, เรนเดอร์ในคลาวด์ของพวกเขาและคิดค่าบริการต่อเอกสารหรือต่อเครดิต ที่นี่เทมเพลต, ข้อมูลและผลลัพธ์จะอยู่ในโฟลเดอร์บนเครื่องของคุณ; เอนจินคือ GroupDocs.Assembly ที่ทำงานในกระบวนการเดียวกันและไม่มีอะไรฟังพอร์ตใด ๆ สิ่งที่ส่งไปยังผู้ให้บริการโมเดลคือข้อความคำสั่งที่คุณวางและโครงกระดูกที่เอเจนต์เติม ไม่ใช่สัญญาที่เรนเดอร์ สถาปัตยกรรมนี้อธิบายไว้ในโพสต์ครอบครัวเกี่ยวกับ การประมวลผลเอกสาร AI แบบออน‑พรีมิส
ข้อจำกัดที่ต้องระวัง
- โหมดประเมินผล: เอกสารที่สร้างทุกฉบับจะเริ่มด้วยบรรทัด “Evaluation Only. Created with GroupDocs.Assembly 26.7…”, เวิร์กบุ๊กที่บันทึกจะเพิ่มแผ่นงานหนึ่งแผ่น, และเทมเพลตอีเมลจะเก็บเฉพาะเนื้อความแบบข้อความเท่านั้น ไฟล์ลิขสิทธิ์หรือคีย์แบบตามการใช้งานจะลบทั้งสามอย่างนี้ออก
- ไวยากรณ์ของเทมเพลตคือ
<<[name]>>. ตัวแสดงตำแหน่ง{{name}}จะเหลือเป็นข้อความ;get_template_fieldsจะบอกเช่นนั้น - เทมเพลตถือเป็นข้อมูลที่เชื่อถือได้: แท็กรูปภาพและเอกสารจะโหลดเส้นทางหรือ URL ใด ๆ ที่ผลลัพธ์ของนิพจน์ของมันคืนค่า ให้เมานท์โฟลเดอร์เดียวสำหรับเซิร์ฟเวอร์
- วันที่: เขียนเป็น
2026-11-12T00:00:00แล้วจัดรูปแบบในเทมเพลต (<<[contract.Date]:"d MMMM yyyy">>). วันที่แบบ “2026-11-12” จะพิมพ์เป็น 11 November บนเครื่องที่ตั้งค่าเป็น UTC+2 ในการทดสอบของเรา - เอเจนต์คือแหล่งข้อมูล ให้ถามมันเพื่อแสดงค่าที่มันสกัดออกมาก่อนที่มันจะเรนเดอร์ แล้วทำการตรวจสอบ
คำถามที่พบบ่อย
เอเจนต์ AI สามารถเติมเทมเพลต Word ของฉันได้โดยไม่ต้องอัปโหลดหรือไม่?
ได้ เซิร์ฟเวอร์ทำงานแบบโลคัลผ่าน stdio และอ่านเทมเพลตจากโฟลเดอร์ที่คุณกำหนด; ผลลัพธ์จะถูกเขียนไว้ข้าง ๆ เทมเพลต
เทมเพลตสามารถอยู่ในรูปแบบใดได้บ้าง?
Word, Excel, PowerPoint, Markdown, HTML, ข้อความและเทมเพลตอีเมล; แต่ละแบบสามารถบันทึกเป็นรูปแบบของตนเองหรือเป็น PDF และรูปแบบอื่น ๆ get_supported_formats จะ列出它们每个模板支持的格式
ถ้าเทมเพลตถูกดูแลโดยคนอื่นจะทำอย่างไร?
นี่แหละคือจุดประสงค์ ผู้ที่เป็นเจ้าของเทมเพลตจะเปลี่ยนข้อกำหนดและการจัดวาง; เอเจนต์จะยังคงเติมโครงกระดูกเดียวกันและ get_template_fields จะบอกฟิลด์ใหม่ใด ๆ ที่ปรากฏในครั้งต่อไปที่มันถาม
ไปให้ลึกขึ้น
- เอกสาร, วิธีทำแบบมาตรฐาน: วิธีสร้างเอกสารจากเทมเพลตด้วยเอเจนต์ AI โดยใช้ MCP
- จากอีเมลหรือบันทึกสู่เอกสาร: วิธีแปลงบันทึกหรืออีเมลให้เป็นเอกสารสำเร็จรูปด้วยเอเจนต์ AI
- ศูนย์รวมเอกสาร: GroupDocs.Assembly MCP Server
- เกี่ยวข้อง: ร้อย PDF ส่วนบุคคลจากพรอมต์เดียว: การรวมเมลด้วยเอเจนต์ AI
- เกี่ยวข้อง: เทมเพลตต้องการอะไร? ถามมัน.
- เกี่ยวข้อง: แผนภูมิมาจากเทมเพลต, ตัวเลขมาจากข้อมูล
- เกี่ยวข้อง: รีโพของคุณมีข้อมูลแล้ว; ให้เอเจนต์สร้าง PDF
- สิ่งใหม่ในเอนจิน: GroupDocs.Assembly for .NET 26.7
- โมเดลออน‑พรีมิสและความปลอดภัย: 3 สถาปัตยกรรมสำหรับการประมวลผลเอกสาร AI, และแบบที่เก็บไฟล์ไว้ภายในเครือข่ายของคุณ
- คำถาม: ฟอรั่ม GroupDocs Assembly
- แหล่งที่มา: GroupDocs.Assembly.Mcp บน GitHub · NuGet package