Files
deepseek-harness/packages/llm
Yichen Jiang 94289d057e fix(llm-pi-ai): let a model declare the request modalities it accepts
A model the installed pi-ai catalog does not describe was reported as
text-only with no way to say otherwise, so a vision model added through
the custom-provider form was refused at every image admission point.
The justification in the source described the DeepSeek chat-completions
serializer, which does reject image blocks; the pi-ai request converter
and every wire protocol it speaks carry images.

Modalities now resolve entry `input` -> installed catalog entry -> route
`defaultInput`, the chain the two capacity fallbacks already use, so the
route value is a fallback and never narrows a catalog model. Its default
stays `[text]`: nothing can interrogate a gateway for its modalities, and
over-claiming admits an image the provider rejects mid-turn, after prompt
admission has already committed the message.
2026-08-12 16:18:52 +08:00
..
2026-08-11 22:52:39 +08:00
2026-08-11 22:52:39 +08:00
2026-08-11 22:52:39 +08:00
2026-08-11 22:52:39 +08:00

llm/ — LLM capability family

English | 中文

The LLM seam and its provider adapters. The llm package owns both the Service Definition and Consumer roles: the abstract service, content-block vocabulary, and stream-chunk assembler. Provider adapters register on ctx.llm. All product packages.

Package Role ctx key
llm/ LLM service and shared streaming vocabulary ctx.llm
token-meter/ Replay-aware token measurement ctx.tokenMeter
llm-retry/ Provider-scoped retry policy listens to agent/request-error
llm-deepseek/ Direct DeepSeek adapter registers on ctx.llm
llm-pi-ai/ Multi-provider pi-ai adapter registers on ctx.llm

Adapters register provider routes on the seam; retry and token measurement remain separate consumers. The child READMEs own routing, metadata, replay, and provider-wire details; the LLM architecture decisions own the rationale.

The subsystem reference — messages and blocks, the model request, the StreamChunk protocol, the adapter contract — is docs/subsystems/llm-streaming.md (token measurement: token-meter.md); see the twin adapters, replay token meter, and routed model context Agent Notes.