Table of Contents

Class DiscordRichTools

Namespace
JD.AI.Core.Tools
Assembly
JD.AI.Core.dll

Rich Discord interaction tools — polls, embeds, threads. Agent-callable Semantic Kernel functions for Discord-specific features.

[ToolPlugin("discord", RequiresInjection = true)]
public sealed class DiscordRichTools
Inheritance
DiscordRichTools
Inherited Members

Constructors

DiscordRichTools(IChannelRegistry)

public DiscordRichTools(IChannelRegistry channelRegistry)

Parameters

channelRegistry IChannelRegistry

Properties

ActiveConversationId

Active conversation context — set before each turn.

public string? ActiveConversationId { get; set; }

Property Value

string

Methods

CreatePollAsync(string, string, int, bool, CancellationToken)

[KernelFunction("create_poll")]
[ToolSafetyTier(SafetyTier.ConfirmOnce)]
public Task<string> CreatePollAsync(string question, string options, int durationHours = 24, bool multiSelect = false, CancellationToken ct = default)

Parameters

question string
options string
durationHours int
multiSelect bool
ct CancellationToken

Returns

Task<string>

CreateThreadAsync(string, string, int, CancellationToken)

[KernelFunction("create_thread")]
[ToolSafetyTier(SafetyTier.ConfirmOnce)]
public Task<string> CreateThreadAsync(string name, string message, int archiveAfterMinutes = 1440, CancellationToken ct = default)

Parameters

name string
message string
archiveAfterMinutes int
ct CancellationToken

Returns

Task<string>

SendEmbedAsync(string, string, string, string?, string?, CancellationToken)

[KernelFunction("send_embed")]
[ToolSafetyTier(SafetyTier.AutoApprove)]
public Task<string> SendEmbedAsync(string title, string description, string color = "#3b82f6", string? fields = null, string? footer = null, CancellationToken ct = default)

Parameters

title string
description string
color string
fields string
footer string
ct CancellationToken

Returns

Task<string>

SendFileAsync(string, string?, CancellationToken)

[KernelFunction("send_file")]
[ToolSafetyTier(SafetyTier.AutoApprove)]
public Task<string> SendFileAsync(string filePath, string? message = null, CancellationToken ct = default)

Parameters

filePath string
message string
ct CancellationToken

Returns

Task<string>