Files
deepseek-harness/website/zh-CN/api/harness/llm.md
Tianyi Cui 7be78c7d4c Merge latest origin/master into compact-post-step-overflow-recovery
# 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
2026-07-19 12:06:23 +08:00

2.6 KiB

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

ctx.llm.registerAdapter(providers, adapter)

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

ctx.llm.listProviders()

listProviders(): LlmProviderInfo[]

Describe provider routes with a registered adapter.

Returns detached provider metadata in registration order.

Source

ctx.llm.listModels(provider)

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

ctx.llm.stream(options)

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