dguiducci
|
b8cc6d263b
|
agent-loop: new crate — LLM loop kernel + Model clients (phase 0)
Extract the LLM agent loop into a standalone workspace crate with zero
deps on skald-core/core-api (blueprint project-loop.md, D13-D15):
- kernel: round loop, model fallback with rebuild, parallel tool fan-out
(ordered id alloc / bounded concurrent exec / ordered record), streaming
deltas drained before outcomes, sticky cancellation
- models: OpenAiModel/AnthropicModel/OllamaModel/LmStudioModel ported from
llm-client onto the Model trait; ModelError carries the HTTP status;
is_retriable default = the 401/403/404/422 rule
- DTL as crate protocol (ToolRendering Inline/DeferredToolReference/
SystemToolBlock; Anthropic conversions + Kimi system+tools passthrough),
host catalog behind ActivationSource/ToolActivator
- HistoryStore durability contract + InMemoryStore; LinearAssembler with
well-formed projection (incl. DTL injection, summary, crash survivors)
- LoopManager singleton (broadcast bus + live registry), one live loop
per conversation, orphan-marking on start_turn
- 32 tests green (kernel §13 suite, assembler DTL, SSE/Anthropic ports),
clippy clean
|
2026-07-25 23:40:41 +01:00 |
|