-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
skobeltsyn edited this page Mar 28, 2026
·
1 revision
Development plan for Agents.KT, organized into four phases through Q4 2026.
The foundation: typed agents, skills, knowledge, all six composition operators, guided generation, and the agentic execution loop.
-
Agent<IN, OUT>with SRP enforcement -
Agent.prompt-- base context string for the LLM - Skills-only execution -- all agents run through
skills { implementedBy { } } -
Skill.description(mandatory) -- sells the skill to the LLM alongside its type signature -
Skill.knowledge("key", "description") { }-- named lazy context providers;loadFile()inside lambdas -
Skill.toLlmDescription()-- auto-generated markdown (name, types, description, knowledge index);llmDescription("...")override -
Skill.toLlmContext()-- full context: description markdown + all knowledge content -
Skill.knowledgeTools()/KnowledgeTool(name, description, call)-- tools model with lazy per-entry loading -
then-- sequential pipeline with composed execution (no runtime casts) -
/-- parallel fan-out with coroutine concurrency -
*-- forum (multi-agent discussion) - Single-placement enforcement across all structure types
-
.loop {}-- iterative execution with(OUT) -> IN?feedback block -
.branch {}-- conditional routing on sealed types, composable withthen -
@Generable("desc")/@Guide/@LlmDescription-- runtime reflection:toLlmDescription(),jsonSchema(),promptFragment(),fromLlmOutput<T>(),PartiallyGenerated<T> -
model { }-- Ollama backend;host,port,temperature; injectableModelClientfor tests - Agentic execution loop -- multi-turn tool calling with budget controls (
maxTurns) +onToolUseobservability hook - Skill selection -- predicate-based
skillSelection {}+ automatic LLM routing when multiple skills match - Agent memory --
MemoryBank,memory_read/memory_write/memory_searchauto-injected tools -
>>-- security/education wrap
MCP integration, permissions, compile-time annotation processing, native distribution, and session management.
-
Tool<IN, OUT>hierarchy +McpTool<IN, OUT>-- MCP as native Tool inheritance, not a wrapper - MCP client integration --
McpToolinstances consumable alongside local tools -
grants { tools(...) }-- Layer 2 permissions use actualTool<*,*>references - Permission model: 3 states -- Granted (auto-runs), Confirmed (user approval), Absent (unavailable)
- KSP annotation processor -- compile-time
@Generable; constrained decoding (Ollama) + guided JSON mode (Anthropic/OpenAI) - Native CLI binary (GraalVM -- no JRE required);
brew, npm, pip, curl, apt - jlink minimal JRE bundle for runtime (~35MB)
- Session model -- multi-turn
AgentSession, automatic compaction (SUMMARIZE,SLIDING_WINDOW,CUSTOM) - Reactive context hooks --
beforeInference,afterToolCall,onBudgetThreshold -
.spawn {}-- independent sub-agent lifecycle,AgentHandle<OUT>, parent-managed join - Pipeline observability --
observe {}event handler,Flow<PipelineEvent>for streaming UIs - Serialization --
agent.json, A2A AgentCard - JAR bundles and folder-based assembly
- Gradle plugin
Full production readiness: advanced structure DSL, testing framework, protocol support, and observability.
- Layer 2: Full Structure DSL with delegates, grants, authority, routing, escalation
- All 37 compile-time validations enforced by Gradle plugin
- AgentUnit testing framework -- unit, semantic (LLM-as-judge), Skill Coverage metrics
- A2A protocol support (server + client)
- File-based knowledge:
skill.md,reference,examples,checklist+ RAG pipeline - Production observability: OpenTelemetry traces
- Team DSL -- swarm coordination (if isolated execution available)
Developer experience, marketplace, and tooling.
- Knowledge packs -- battle-tested prompt libraries for common domains
- Agent generation from natural language (NL -> Kotlin DSL)
- Skillify -- extract reusable skills from session transcripts
- Visual structure editor, UML bidirectional conversion
- Knowledge marketplace
2026
Q1 ████████████████ Phase 1: Core DSL (current)
Q2 ████████████████ Phase 2: Runtime + Distribution
Q3 ████████████████ Phase 3: Production
Q4 ████████████████ Phase 4: Ecosystem
| Capability | Status |
|---|---|
Typed agents with Agent<IN, OUT>
|
Available |
Pure Kotlin skills (implementedBy) |
Available |
LLM-driven skills (tools()) |
Available |
| Knowledge (lazy and eager) | Available |
Sequential pipelines (then) |
Available |
Parallel fan-out (/) |
Available |
Forum deliberation (*) |
Available |
Iterative loops (.loop {}) |
Available |
Conditional branching (.branch {}) |
Available |
| Ollama integration | Available |
Mock testing with ModelClient
|
Available |
Guided generation (@Generable, @Guide) |
Available |
Lenient JSON parsing (fromLlmOutput) |
Available |
Partial generation (PartiallyGenerated) |
Available |
Agent memory (MemoryBank) |
Available |
| Skill selection (predicate + LLM) | Available |
Budget controls (maxTurns) |
Available |
| Observability hooks | Available |
Tool error types (ToolError) |
Available |
| Capability | ETA |
|---|---|
| MCP tool integration | Q2 2026 |
| Permission model | Q2 2026 |
| KSP compile-time generation | Q2 2026 |
| Native CLI (no JRE) | Q2 2026 |
| Session management | Q2 2026 |
| Pipeline observability | Q2 2026 |
See also: Architecture Overview | API Quick Reference | Installation and Setup
Getting Started
Core Concepts
Composition Operators
LLM Integration
- Model & Tool Calling
- Tool Error Recovery
- Skill Selection & Routing
- Budget Controls
- Observability Hooks
Guided Generation
Agent Memory
Reference