Felo API PlatformFelo API Platform

Felo APIs

SuperAgent API

สร้างบทสนทนา ใช้สตรีม SSE ทำบทสนทนาต่อ และสอบถามข้อมูลเมตาของบทสนทนา

POST/v2/conversations

การยืนยันตัวตน

Bearer API key

ประเภทเนื้อหา

application/json and text/event-stream

หมายเหตุเรื่องข้อจำกัด

Connect to stream immediately. Use offset for reconnects.

SuperAgent API มอบความสามารถในการสนทนาที่ขับเคลื่อนด้วย AI พร้อมเอาต์พุตสตรีมมิ่งแบบเรียลไทม์และการผสาน LiveDoc เวิร์กโฟลว์ทั่วไปคือ:

  1. สร้างบทสนทนา - รับ stream_key, thread_short_id และ live_doc_short_id
  2. บริโภคสตรีม SSE - เชื่อมต่อกับ endpoint สตรีมโดยใช้ stream_key
  3. ถามต่อเนื่อง - ถามคำถามต่อเนื่องในบทสนทนาเดียวกัน และรับ stream_key ใหม่
  4. สอบถามรายละเอียดบทสนทนา - ใช้ thread_short_id เพื่อดึงเมทาดาทาของบทสนทนา
  5. จัดการ LiveDoc - ดู LiveDoc API สำหรับ CRUD และการจัดการทรัพยากรแบบเต็ม

การรับรองความถูกต้อง

ทุกคำขอต้องมีคีย์ API ใน header Authorization:

Authorization: Bearer YOUR_API_KEY

ใช้กับ AI Agent

ติดตั้งแพ็กเกจ felo-ai ที่ครบถ้วนเพื่อให้ Agent ใช้เวิร์กโฟลว์ SuperAgent และ Felo Skill อื่น ๆ ที่มีให้ใช้ทั้งหมด ตัวติดตั้งจะค้นหาไดเรกทอรีแพ็กเกจทุกไดเรกทอรีที่มี SKILL.md แบบไดนามิก รวมถึงส่วนเพิ่มเติมของแพ็กเกจในอนาคต ให้ติดตั้ง Skill ทั้งหมดที่ค้นพบใน Codex ~/.codex/skills, Claude Code ~/.claude/skills, OpenClaw ~/.agents/skills หรือ Hermes Agent ~/.hermes/skills คู่มือการตั้งค่า AI Agent ด้วยตนเองอธิบายขั้นตอนการติดตั้งที่ปลอดภัยและการกำหนดค่าเฉพาะแพลตฟอร์ม


1. สร้างบทสนทนา

Endpoint

POST https://openapi.felo.ai/v2/conversations
Headerจำเป็นคำอธิบาย
Authorizationใช่Bearer YOUR_API_KEY
Content-Typeใช่application/json

เนื้อหาคำขอ

พารามิเตอร์ชนิดจำเป็นคำอธิบาย
querystringใช่คำถามของผู้ใช้ 1-2000 ตัวอักษร
live_doc_short_idstringไม่ใช้ LiveDoc ที่มีอยู่ซ้ำ ละเว้นเพื่อสร้างใหม่
selected_resource_idsarray of stringsไม่ID ทรัพยากรที่จะรวมในบริบท
skill_idstringไม่ID ของ Skill ที่จะใช้สำหรับบทสนทนานี้
accept_languagestringไม่ภาษาที่ต้องการ เช่น en
device_idstringไม่ตัวระบุอุปกรณ์
extraobjectไม่พารามิเตอร์เพิ่มเติมที่ส่งผ่านไปยัง SuperAgent
extobjectไม่พารามิเตอร์ส่วนขยาย (เช่น style_id, theme)

ตัวอย่าง

curl -X POST 'https://openapi.felo.ai/v2/conversations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "What is the latest news about AI?",
    "accept_language": "en",
    "skill_id": "your-skill-id",
    "device_id": "device-001",
    "ext": {"style_id": "xxx", "theme": "dark"}
  }'

การตอบกลับที่สำเร็จ (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "stream_key": "sk_abc123xyz",
    "thread_short_id": "TvyKouzJirXjFdst4uKRK3",
    "live_doc_short_id": "PvyKouzJirXjFdst4uKRK3"
  }
}

ฟิลด์ของการตอบกลับ

ฟิลด์ชนิดคำอธิบาย
stream_keystringคีย์ที่ใช้บริโภคสตรีม SSE (ดูหัวข้อ 2)
thread_short_idstringID บทสนทนา ใช้สอบถามรายละเอียดบทสนทนา
live_doc_short_idstringID ของ LiveDoc ที่เชื่อมโยง

2. บริโภคสตรีม SSE

หลังจากสร้างบทสนทนา ให้เชื่อมต่อกับ endpoint สตรีมโดยใช้ stream_key เพื่อรับเอาต์พุตแบบเรียลไทม์

Endpoint

GET https://openapi.felo.ai/v2/conversations/stream/{stream_key}

พารามิเตอร์คิวรี

พารามิเตอร์ชนิดจำเป็นคำอธิบาย
offsetintegerไม่เล่นสตรีมต่อจากตำแหน่งนี้ ใช้สำหรับเชื่อมต่อใหม่หลังการหลุด

ตัวอย่าง

curl -N 'https://openapi.felo.ai/v2/conversations/stream/sk_abc123xyz' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: text/event-stream'

เชื่อมต่อใหม่ด้วย offset:

curl -N 'https://openapi.felo.ai/v2/conversations/stream/sk_abc123xyz?offset=42' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: text/event-stream'

การตอบกลับ

การตอบกลับเป็นสตรีม Server-Sent Events (SSE) มาตรฐานที่มี Content-Type: text/event-stream

แต่ละเหตุการณ์เป็นไปตามรูปแบบ SSE:

event: <event_type>
data: <json_payload>

ตัวอย่างเหตุการณ์:

event: message
data: {"content": "The latest AI news includes..."}

event: done
data: {}

เมื่อเกิดข้อผิดพลาดจากปลายทาง:

event: error
data: {"message": "upstream error: 502"}

หมายเหตุ

  • เชื่อมต่อทันทีหลังจากสร้างบทสนทนา - stream_key มีช่วงเวลาที่ใช้ได้จำกัด
  • ใช้ไคลเอนต์ที่รองรับ SSE (เช่น EventSource ในเบราว์เซอร์ หรือ curl -N ในเทอร์มินัล)
  • สตรีมจะสิ้นสุดเมื่อได้รับเหตุการณ์ done หรือเซิร์ฟเวอร์ปิดการเชื่อมต่อ

3. ถามต่อเนื่องในบทสนทนา

ถามคำถามต่อเนื่องในบทสนทนาที่มีอยู่ ส่ง stream_key ใหม่กลับมาเพื่อบริโภคสตรีมการตอบกลับ

Endpoint

POST https://openapi.felo.ai/v2/conversations/{thread_short_id}/follow_up

Header ของคำขอ

Headerจำเป็นคำอธิบาย
Authorizationใช่Bearer YOUR_API_KEY
Content-Typeใช่application/json

เนื้อหาคำขอ

พารามิเตอร์ชนิดจำเป็นคำอธิบาย
querystringใช่คำถามต่อเนื่อง 1-2000 ตัวอักษร

ตัวอย่าง

curl -X POST 'https://openapi.felo.ai/v2/conversations/TvyKouzJirXjFdst4uKRK3/follow_up' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "Can you elaborate on that?"
  }'

การตอบกลับที่สำเร็จ (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "stream_key": "sk_def456uvw",
    "thread_short_id": "TvyKouzJirXjFdst4uKRK3",
    "live_doc_short_id": "PvyKouzJirXjFdst4uKRK3"
  }
}

ฟิลด์ของการตอบกลับ

ฟิลด์ชนิดคำอธิบาย
stream_keystringคีย์ที่ใช้บริโภคสตรีม SSE สำหรับการถามต่อเนื่องนี้
thread_short_idstringID บทสนทนาเดียวกับในคำขอ
live_doc_short_idstringID ของ LiveDoc ที่เชื่อมโยง

4. สอบถามรายละเอียดบทสนทนา

Endpoint

GET https://openapi.felo.ai/v2/conversations/{thread_short_id}

ตัวอย่าง

curl 'https://openapi.felo.ai/v2/conversations/TvyKouzJirXjFdst4uKRK3' \
  -H 'Authorization: Bearer YOUR_API_KEY'

การตอบกลับที่สำเร็จ (200)

{
  "status": "ok",
  "message": null,
  "data": {
    "thread_short_id": "TvyKouzJirXjFdst4uKRK3",
    "title": "What is the latest news about AI?",
    "created_at": "2026-03-09T10:00:00Z",
    "updated_at": "2026-03-09T10:00:30Z",
    "live_doc_short_id": "PvyKouzJirXjFdst4uKRK3"
  }
}

ฟิลด์ของการตอบกลับ

ฟิลด์ชนิดคำอธิบาย
thread_short_idstringID บทสนทนา
titlestringชื่อบทสนทนา (ได้มาจากคำถาม)
created_atstringเวลาประทับของการสร้าง (ISO 8601)
updated_atstringเวลาประทับของการอัปเดตล่าสุด (ISO 8601)
live_doc_short_idstringID ของ LiveDoc ที่เชื่อมโยง

รหัสข้อผิดพลาด

รหัสสถานะ HTTPคำอธิบาย
UNAUTHORIZED401คีย์ API ไม่ถูกต้องหรือถูกเพิกถอน
SUPER_AGENT_CONVERSATION_CREATE_FAILED502การสร้างบทสนทนาล้มเหลว (ข้อผิดพลาดจากปลายทาง)
SUPER_AGENT_CONVERSATION_FOLLOW_UP_FAILED502การถามต่อเนื่องในบทสนทนาล้มเหลว (ข้อผิดพลาดจากปลายทาง)
SUPER_AGENT_CONVERSATION_QUERY_FAILED502การสอบถามรายละเอียดบทสนทนาล้มเหลว (ข้อผิดพลาดจากปลายทาง)

ขั้นตอนการผสานทั่วไป

1. POST /v2/conversations                              → get stream_key + thread_short_id + live_doc_short_id
2. GET  /v2/conversations/stream/{stream_key}          → consume SSE until "done"
3. POST /v2/conversations/{thread_short_id}/follow_up  → ask follow-up, get new stream_key
4. GET  /v2/conversations/stream/{new_stream_key}      → consume follow-up SSE until "done"
5. GET  /v2/conversations/{thread_short_id}            → fetch conversation metadata

สำหรับการจัดการ LiveDoc (CRUD, การอัปโหลดทรัพยากร, การนำเข้า URL, การค้นคืน) โปรดดู LiveDoc API