Cadenza คือชุด SDK สำหรับการเขียนสคริปต์แบบไฟล์เดียวสำหรับแอป file-based ของ .NET 10+ โดยออกแบบมาให้สามารถเขียนและรันโค้ดได้ทันที เพียงติดตั้ง .NET 10 SDK เวอร์ชันล่าสุดเท่านั้น หากจะอธิบายเพิ่มเติมสำหรับผู้ที่ยังไม่คุ้นเคย ก็อาจมองได้ว่าคล้ายกับกรณีที่ uv มอบประสบการณ์แบบ PEP 723 ในโลกของ Python

เมื่อพัฒนาด้วย Cadenza คุณสามารถเลือกใช้ SDK ได้ 1 แบบจากทั้งหมด 5 ประเภทหลักดังนี้

  • Cadenza: สคริปต์คอนโซล, ยูทิลิตี CLI
  • Cadenza.Worker: บริการเบื้องหลัง, เดมอน
  • Cadenza.Web: เว็บ API, สคริปต์ Minimal API
  • Cadenza.Mcp: เซิร์ฟเวอร์ MCP สำหรับ Claude / Cursor / VS Code AI agent
  • Cadenza.Agent: AI agent แบบโลคัล (อิงตาม MEAI)

แม้จะมีฟีเจอร์พื้นฐานหลายอย่างรวมถึงเว็บ API แต่สิ่งที่อยากเน้นมากที่สุดคือการพัฒนา Agent ตัวอย่างเช่น หากต้องการสร้าง custom AI agent ก็สามารถเขียนและรันโค้ดได้ดังนี้ และยังสามารถบิลด์เป็นไฟล์รันเดี่ยวหรืออิมเมจ Docker container ได้ด้วย

ServedModelName = "custom-codex-agent";  
SystemPrompt("You are a helpful assistant with read-only filesystem access.");  
  
Tool("read_file", "Read a UTF-8 text file from disk",  
    (string path) => ReadText(path));  
  
Tool("list_files", "List files matching a glob pattern (e.g., **/*.cs)",  
    (string pattern) => Glob(pattern).ToArray());  
  
UseOllama("llama3.2");  
  
await Run();  

และสำหรับ AI agent ที่สร้างขึ้นแบบนี้ หากสร้างไฟล์ตั้งค่าแยกต่างหากตามตัวอย่างด้านล่าง แล้วแทนที่ด้วยตัวแปรสภาพแวดล้อม CODEX_HOME ก็จะเปิดช่องทางให้สามารถปรับแต่งการตั้งค่า AI agent ได้

model          = "cadenza-codex-openrouter"  
model_provider = "cadenza"  
model_catalog_json = "{catalogPath}"  
  
[model_providers.cadenza]  
name     = "Cadenza.Agent (OpenRouter-backed)"  
base_url = "http://localhost:8080/v1";  
wire_api = "responses"  
env_key  = "CADENZA_API_KEY"  
stream_idle_timeout_ms = 300000  

อีกทั้งการเขียนสคริปต์บน Cadenza ก็พร้อมใช้งานได้ทันที เพียงมี ส่วนขยาย C# พื้นฐานสำหรับ VS Code (ไม่ใช่ Dev Kit) หรือ ส่วนขยาย C# พื้นฐาน สำหรับเอดิเตอร์อื่นที่เข้ากันได้กับ VS Code ดังนั้นจึงไม่จำเป็นต้องมีไลเซนส์ Visual Studio

ลองใช้งานกันเยอะ ๆ และหากมีฟีดแบ็กก็จะขอบคุณมากครับ!

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น