Felo APIs
SuperAgent API
สร้างบทสนทนา ใช้สตรีม SSE ทำบทสนทนาต่อ และสอบถามข้อมูลเมตาของบทสนทนา
/v2/conversationsการยืนยันตัวตน
Bearer API key
ประเภทเนื้อหา
application/json and text/event-stream
หมายเหตุเรื่องข้อจำกัด
Connect to stream immediately. Use offset for reconnects.
SuperAgent API มอบความสามารถในการสนทนาที่ขับเคลื่อนด้วย AI พร้อมเอาต์พุตสตรีมมิ่งแบบเรียลไทม์และการผสาน LiveDoc เวิร์กโฟลว์ทั่วไปคือ:
- สร้างบทสนทนา - รับ
stream_key,thread_short_idและlive_doc_short_id - บริโภคสตรีม SSE - เชื่อมต่อกับ endpoint สตรีมโดยใช้
stream_key - ถามต่อเนื่อง - ถามคำถามต่อเนื่องในบทสนทนาเดียวกัน และรับ
stream_keyใหม่ - สอบถามรายละเอียดบทสนทนา - ใช้
thread_short_idเพื่อดึงเมทาดาทาของบทสนทนา - จัดการ 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/conversationsHeader ของคำขอ
| Header | จำเป็น | คำอธิบาย |
|---|---|---|
Authorization | ใช่ | Bearer YOUR_API_KEY |
Content-Type | ใช่ | application/json |
เนื้อหาคำขอ
| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
query | string | ใช่ | คำถามของผู้ใช้ 1-2000 ตัวอักษร |
live_doc_short_id | string | ไม่ | ใช้ LiveDoc ที่มีอยู่ซ้ำ ละเว้นเพื่อสร้างใหม่ |
selected_resource_ids | array of strings | ไม่ | ID ทรัพยากรที่จะรวมในบริบท |
skill_id | string | ไม่ | ID ของ Skill ที่จะใช้สำหรับบทสนทนานี้ |
accept_language | string | ไม่ | ภาษาที่ต้องการ เช่น en |
device_id | string | ไม่ | ตัวระบุอุปกรณ์ |
extra | object | ไม่ | พารามิเตอร์เพิ่มเติมที่ส่งผ่านไปยัง SuperAgent |
ext | object | ไม่ | พารามิเตอร์ส่วนขยาย (เช่น 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_key | string | คีย์ที่ใช้บริโภคสตรีม SSE (ดูหัวข้อ 2) |
thread_short_id | string | ID บทสนทนา ใช้สอบถามรายละเอียดบทสนทนา |
live_doc_short_id | string | ID ของ LiveDoc ที่เชื่อมโยง |
2. บริโภคสตรีม SSE
หลังจากสร้างบทสนทนา ให้เชื่อมต่อกับ endpoint สตรีมโดยใช้ stream_key เพื่อรับเอาต์พุตแบบเรียลไทม์
Endpoint
GET https://openapi.felo.ai/v2/conversations/stream/{stream_key}พารามิเตอร์คิวรี
| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
offset | integer | ไม่ | เล่นสตรีมต่อจากตำแหน่งนี้ ใช้สำหรับเชื่อมต่อใหม่หลังการหลุด |
ตัวอย่าง
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_upHeader ของคำขอ
| Header | จำเป็น | คำอธิบาย |
|---|---|---|
Authorization | ใช่ | Bearer YOUR_API_KEY |
Content-Type | ใช่ | application/json |
เนื้อหาคำขอ
| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
query | string | ใช่ | คำถามต่อเนื่อง 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_key | string | คีย์ที่ใช้บริโภคสตรีม SSE สำหรับการถามต่อเนื่องนี้ |
thread_short_id | string | ID บทสนทนาเดียวกับในคำขอ |
live_doc_short_id | string | ID ของ 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_id | string | ID บทสนทนา |
title | string | ชื่อบทสนทนา (ได้มาจากคำถาม) |
created_at | string | เวลาประทับของการสร้าง (ISO 8601) |
updated_at | string | เวลาประทับของการอัปเดตล่าสุด (ISO 8601) |
live_doc_short_id | string | ID ของ LiveDoc ที่เชื่อมโยง |
รหัสข้อผิดพลาด
| รหัส | สถานะ HTTP | คำอธิบาย |
|---|---|---|
UNAUTHORIZED | 401 | คีย์ API ไม่ถูกต้องหรือถูกเพิกถอน |
SUPER_AGENT_CONVERSATION_CREATE_FAILED | 502 | การสร้างบทสนทนาล้มเหลว (ข้อผิดพลาดจากปลายทาง) |
SUPER_AGENT_CONVERSATION_FOLLOW_UP_FAILED | 502 | การถามต่อเนื่องในบทสนทนาล้มเหลว (ข้อผิดพลาดจากปลายทาง) |
SUPER_AGENT_CONVERSATION_QUERY_FAILED | 502 | การสอบถามรายละเอียดบทสนทนาล้มเหลว (ข้อผิดพลาดจากปลายทาง) |
ขั้นตอนการผสานทั่วไป
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