Skip to content

Releases: InteractiveAgents/IAW

v0.0.2 — Agent Registry, Orchestration Redesign & Generative UI

23 Mar 14:05
9a351dc

Choose a tag to compare

What's Changed

This release is a ground-up redesign of the agent framework's runtime architecture, replacing four legacy subsystems with a cohesive, production-grade agent platform built on Orleans grains, durable jobs, and structured UI composition.


Agent Identity & Lifecycle

  • Dynamic grain IDs via client.Get<IGit>(taskId) — each task/context gets isolated agent instances with isolated state (replaces singleton "git", "shell" grain IDs)
  • Agent<TInterface> generic base class binds agents to their contract interface at compile time
  • Partial-file architecture: Agent.cs, Tools.cs, Scheduling.cs, State.cs, Events.cs, Streams.cs, Lifecycle.cs, Observers.cs

Agent Registry & Discovery

  • Self-healing in-memory registry via DiscoverAndBuildRecords() — re-runs on grain reactivation, no external persistence dependency
  • Agent interfaces declare static metadata via [AgentDescription] and [AgentCapability] attributes
  • Auto-tool discovery: interface methods with [Description] auto-register as AI tools

Orchestration Pipeline Redesign

  • DelegateAsync now executes work inline — MCP and DevUI get real results instead of "Task submitted" placeholders
  • CodeOrchestratorAgent generates standalone C# console apps connecting as Orleans clients
  • AgentSelector with LLM-powered reasoning for intelligent agent routing
  • Structured OrchestrationResult with success/summary/artifacts/metrics/error detail

Durable Job Scheduling (Critical Fixes)

  • Fixed: Job duplication on grain reactivation — now cancels old DurableJob via TryCancelDurableJobAsync before rescheduling
  • ScheduleJob / ScheduleRecurringJob with proper lifecycle management
  • One-shot jobs auto-remove; recurring jobs self-reschedule

Generative UI

  • UIPart type hierarchy: TextPart, OptionsPart, CardPart, MediaPart, FormPart, ProgressPart, SuggestionPart
  • Channel-agnostic UI composition — TelegramUIAgent converts raw output to RichOutput with typed parts
  • HandleCallback on IAgent provides unified callback entry point across channels

Model Tiers & LLM Architecture

  • Three tiers: fast (Haiku), balanced (Sonnet/GPT-5.4-Mini), reasoning (Opus)
  • New models: Gpt54Mini, Gpt54Nano
  • [Llm<TModel>] attribute binds agents to specific keyed IChatClient

Namespace Reorganization

IAW.Agents/ Infrastructure/ Git, Shell, FileSystem, Aspire LLM/ Opus46, Sonnet46, Gpt54Mini, Gpt54Nano, ... Memory/ CodeMemory, EpisodeMemory, PatternMemory, ... Knowledge/ KnowledgeAgent Orchestration/ Thread, AgentSelector, CodeOrchestrator, TelegramUI 

Dead agents removed: ReviewerAgent, SelfImprovementAgent, BuildAgent, UserAgent, Project

Bug Fixes

  • Fixed JSON truncation corrupting downstream parsing — now truncates individual fields before serialization
  • Fixed Telegram MarkdownV2 escaping and job result delivery
  • Fixed AppHost path resolution by walking up from bin directory
  • Unified file access model — workspace is context for path resolution, not a security boundary
  • Agent registry self-heals after grain GC (no more empty registry)

Infrastructure

  • CodeValidator integrated into orchestrator for generated code validation
  • IAWCluster for cluster topology management
  • AspireAgent rewritten with Aspire MCP connection
  • Auto-discover agents in CodeOrchestrator via InterfaceCatalog

CI & Dependencies

  • Bump actions/checkout from 4 to 6
  • Bump actions/setup-dotnet from 4 to 5
  • Added README.md

Documentation

  • Removed all legacy Core.V3 references across website
  • Added real-world code examples: reactive agents, self-diagnostics, context, pub/sub
  • Fixed outdated base class names and tutorial API

Full Changelog: v0.0.1...v0.0.2

AI assistant as Telegram bot

19 Mar 09:14
c620349

Choose a tag to compare