Arsitektur¶
Halaman ini adalah peta sistem: boundary, alur, dan extension point.
Batas Sistem¶
- Transport boundary mengubah event telephony menjadi frame.
- Provider boundary mengisolasi SDK vendor di balik adapter.
- Core pipeline berisi processor deterministik.
- Observers merekam apa yang terjadi tanpa mengubah perilaku.
Alur End‑to‑End¶
- Transport menerima audio dan memancarkan
AudioFramedengan metadata. - STT mengubah audio menjadi
TextFramedengansource=sttdanis_final=truesaat selesai. - Router menambah
agentdanglobal_*berdasarkan teks final. - LLM mengonsumsi teks dan konteks, memancarkan teks streaming dan tool call.
- Tool call masuk ke
ToolDispatcher, kembali sebagaitool_resultsystem frame. - TTS mengubah teks LLM menjadi
AudioFrameuntuk transport. - Turn manager memantau frame untuk barge‑in, end‑of‑turn, dan reprompt.
Diagram Komponen¶
flowchart LR
Caller((Caller))
Transport[Transport]
STT[STT Processor]
Router[Router Processor]
LLM[LLM Processor]
Dispatcher[Tool Dispatcher]
TTS[TTS Processor]
Turn[Turn Manager]
Observers[Observers]
Caller --> Transport
Transport -->|AudioFrame| STT
STT -->|TextFrame final| Router
Router -->|TextFrame agent| LLM
LLM -->|Control tool_call| Dispatcher
Dispatcher -->|System tool_result| LLM
LLM -->|TextFrame llm| TTS
TTS -->|AudioFrame| Transport
Transport --> Caller
STT -->|Control flush| Turn
LLM -->|System thinking_start| Turn
TTS -->|Control audio_ready| Turn
Turn -->|Control cancel| LLM
Observers -.-> STT
Observers -.-> Router
Observers -.-> LLM
Observers -.-> TTS
Extension Point¶
- Before LLM: normalisasi, prompt injection.
- Before TTS: formatting, truncation.
- Post‑processor: logging, analytics.
Swap Tanpa Ubah Kode¶
- Provider STT/TTS/LLM/Transport via config.
Perlu Ubah Kode¶
- Processor baru.
- Transport custom.
- Tool registry custom.