# Conflicts: # docs/agent-lifecycle.md # docs/architecture.md # docs/cookbook/extension-cookbook.i18n.yaml # docs/cordis-catalog/events.md # docs/cordis-catalog/services.md # docs/event-producer-consumer.md # docs/rfc/INDEX.md # docs/rfc/implemented/architecture/2026-07-05-reconstructable-requests.md # docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.i18n.yaml # docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.md # docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.zh.md # docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md # docs/rfc/implemented/feature/2026-07-07-session-prefix.md # packages/compact/compact-basic/README.md # packages/compact/compact-basic/src/config.ts # packages/compact/compact-basic/src/index.ts # packages/compact/compact-basic/src/summarizer.ts # packages/compact/compact-basic/tests/compact-basic.spec.ts # packages/compact/compact-basic/tests/compact-loop-repro.spec.ts # packages/compact/compact/README.md # packages/cordis/tool-cordis/src/api-catalog.ts # packages/core/agent-loop/src/loop.ts # packages/core/agent-loop/tests/cancel.spec.ts # packages/llm/llm-deepseek/src/adapter.ts # packages/llm/llm-pi-ai/README.md # packages/llm/llm-pi-ai/src/stream.ts # packages/llm/llm-pi-ai/tests/convert.spec.ts # packages/llm/llm/README.md # packages/llm/llm/src/index.ts # packages/llm/llm/tests/service.spec.ts # scripts/gen-doc-graphs.ts
65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
<!-- Generated by scripts/gen-website-api.ts — do not edit by hand. Run `pnpm run gen-website-api` to regenerate. -->
|
|
|
|
# ctx.llm
|
|
|
|
`LlmService` — provided by `@deepseek-ai/dsh-llm`.
|
|
|
|
The abstract `llm` service: an adapter registry plus a streaming model-call surface, interceptable via the `llm/stream` waterfall.
|
|
|
|
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L96)
|
|
|
|
### ctx.llm.registerAdapter(providers, adapter)
|
|
|
|
```ts website-api
|
|
registerAdapter(providers: string[], adapter: LlmAdapter): () => void
|
|
```
|
|
|
|
Register an adapter for the given provider routes. Throws `LlmError` with code `DUPLICATE_ADAPTER` if any provider already has an adapter (all-or-nothing). Disposed with the fiber.
|
|
|
|
- `providers` — every provider route this adapter should serve.
|
|
- `adapter` — the adapter that streams calls for those providers.
|
|
|
|
**Returns** the disposer that unregisters all of them.
|
|
|
|
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L111)
|
|
|
|
### ctx.llm.listProviders()
|
|
|
|
```ts website-api
|
|
listProviders(): LlmProviderInfo[]
|
|
```
|
|
|
|
Describe provider routes with a registered adapter.
|
|
|
|
**Returns** detached provider metadata in registration order.
|
|
|
|
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L142)
|
|
|
|
### ctx.llm.listModels(provider)
|
|
|
|
```ts website-api
|
|
async listModels(provider: string): Promise<LlmModelInfo[]>
|
|
```
|
|
|
|
Discover models advertised by one registered provider. Catalog membership is advisory and never changes routing or request validation.
|
|
|
|
- `provider` — registered provider route to inspect.
|
|
|
|
**Returns** detached model metadata in adapter-preferred order.
|
|
|
|
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L152)
|
|
|
|
### ctx.llm.stream(options)
|
|
|
|
```ts website-api
|
|
stream(options: GenerateOptions): AsyncIterable<StreamChunk>
|
|
```
|
|
|
|
Stream one model call as raw chunks (token-level deltas). Throws `LlmError` with code `NO_ADAPTER` if no adapter is registered for `options.provider`. Replay state is retained only when the same adapter instance owns its historical provider and the target provider. Final adapter selection, dispatch, and iteration failures retain their original Error identity and are tagged for narrow agent-loop request recovery; middleware failures remain untagged.
|
|
|
|
- `options` — the full request; `options.provider` selects the adapter.
|
|
|
|
**Returns** the chunk stream, possibly wrapped by `llm/stream` listeners.
|
|
|
|
[Source](https://github.com/deepseek-harness/deepseek-harness/blob/master/packages/llm/llm/src/index.ts#L259)
|