Table of Contents

Method WithFilters

Namespace
LMKit.Agents
Assembly
LM-Kit.NET.dll

WithFilters(FilterPipeline)

Sets the filter pipeline for the agent.

public AgentBuilder WithFilters(FilterPipeline filters)

Parameters

filters FilterPipeline

The filter pipeline to apply.

Returns

AgentBuilder

This builder instance for method chaining.

Examples

Using a pre-configured pipeline:

var pipeline = new FilterPipeline();
pipeline.PromptFilters.Add(new LoggingPromptFilter());
pipeline.CompletionFilters.Add(new QualityGateFilter());

var agent = new AgentBuilder() .WithModel(model) .WithPersona("Assistant") .WithFilters(pipeline) .Build();

Remarks

The filter pipeline intercepts prompt, completion, and tool invocation stages using a middleware (onion) pattern. Use this overload with a pre-configured pipeline. For inline configuration, use WithFilters(Action<FilterPipeline>).

WithFilters(Action<FilterPipeline>)

Configures the filter pipeline using a setup action.

public AgentBuilder WithFilters(Action<FilterPipeline> configure)

Parameters

configure Action<FilterPipeline>

An action to configure the filter pipeline.

Returns

AgentBuilder

This builder instance for method chaining.

Examples

Adding filters inline:

var agent = new AgentBuilder()
    .WithModel(model)
    .WithPersona("Assistant")
    .WithFilters(filters =>
    {
        filters.AddPromptFilter(async (ctx, next) =>
        {
            Console.WriteLine($"Prompt: {ctx.Prompt}");
            await next(ctx);
        });
    filters.AddCompletionFilter(async (ctx, next) =>
    {
        await next(ctx);
        Console.WriteLine($"Tokens: {ctx.Result?.GeneratedTokenCount}");
    });

    filters.AddToolInvocationFilter(async (ctx, next) =>
    {
        Console.WriteLine($"Tool: {ctx.ToolCall.Name}");
        await next(ctx);
    });
})
.Build();</code></pre>

Remarks

Creates a new FilterPipeline if one hasn't been set. The action receives the pipeline for inline configuration.

Exceptions

ArgumentNullException

Thrown when configure is null.

Share