Zum Hauptinhalt springen

AnthropicAiQueryNodeConfiguration

Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Transform

Configuration for Anthropic AI Query node that uses Claude to extract information from data

public record AnthropicAiQueryNodeConfiguration : SourceTargetPathNodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IPathNodeConfiguration, IEquatable<SourceTargetPathNodeConfiguration>, IEquatable<AnthropicAiQueryNodeConfiguration>

Inheritance Object → NodeConfiguration → TargetPathNodeConfiguration → SourceTargetPathNodeConfiguration → AnthropicAiQueryNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IPathNodeConfiguration, IEquatable<SourceTargetPathNodeConfiguration>, IEquatable<AnthropicAiQueryNodeConfiguration>

Properties​

ApiKeyConfigurationName​

Name of the AiConfiguration entity in GlobalConfiguration to load the API key from. When set, the API key is read from the configuration entity and never exposed in the data context. Takes precedence over AnthropicAiQueryNodeConfiguration.ApiKey.

public string ApiKeyConfigurationName { get; set; }

Property Value​

String

ApiKey​

The Anthropic API key for authentication. Prefer using AnthropicAiQueryNodeConfiguration.ApiKeyConfigurationName to avoid exposing the key in pipeline definitions.

public string ApiKey { get; set; }

Property Value​

String

Model​

The Claude model to use (e.g., "claude-sonnet-4-6", "claude-opus-4-1"). Optional on the node when the referenced AiConfiguration supplies aiModel; that value takes precedence. There is deliberately no hard-coded default model — a pinned model id goes out of date, so the model must be provided explicitly (node or AiConfiguration).

public string Model { get; set; }

Property Value​

String

Question​

The question/prompt to ask the AI about the data

public string Question { get; set; }

Property Value​

String

DataPaths​

Optional context data paths to include in the query (e.g., ["$.ExtractedText", "$.DocumentMetadata"])

public String[] DataPaths { get; set; }

Property Value​

String[]

SystemPrompt​

System prompt to set the context for the AI

public string SystemPrompt { get; set; }

Property Value​

String

MaxTokens​

Maximum tokens for the response. A maxTokens value on the referenced AiConfiguration entity takes precedence; this property is the fallback.

public int MaxTokens { get; set; }

Property Value​

Int32

Temperature​

Temperature for response generation (0.0 to 1.0). A temperature value on the referenced AiConfiguration entity takes precedence; this property is the fallback.

public double Temperature { get; set; }

Property Value​

Double

ResponseFormat​

Expected response format (e.g., "json", "text")

public string ResponseFormat { get; set; }

Property Value​

String

IncludeRawResponse​

Whether to include the raw AI response in the output

public bool IncludeRawResponse { get; set; }

Property Value​

Boolean

RawResponseOutputPath​

Output path for the raw AI response (if IncludeRawResponse is true)

public string RawResponseOutputPath { get; set; }

Property Value​

String

ContinueOnError​

Whether to continue processing if the AI query fails

public bool ContinueOnError { get; set; }

Property Value​

Boolean

McpServerUrl​

Optional URL of the OctoMesh MCP server (e.g. "https://localhost:5017"). When set, Claude can use MCP tools to query live OctoMesh data instead of relying on static context. The tenant ID is appended automatically: {McpServerUrl}/{tenantId}/mcp

public string McpServerUrl { get; set; }

Property Value​

String

MaxToolRounds​

Maximum number of tool use rounds to prevent infinite loops (default: 10)

public int MaxToolRounds { get; set; }

Property Value​

Int32

McpToolNames​

Optional list of MCP tool names to expose to Claude. If set, only these tools are available. Reduces context size by excluding unused tools (e.g., ["query_entities_simple", "navigate_associations"]).

public String[] McpToolNames { get; set; }

Property Value​

String[]

McpServiceAccountConfigName​

Optional well-known name of a System.Communication/ServiceAccountConfiguration entity used to authenticate the MCP tool calls. When set, the node acquires an OAuth2 client-credentials token and sends it as a Authorization: Bearer header on the {McpServerUrl}/{tenantId}/mcp requests. Required once the MCP server enforces authentication (see AB#4315).

public string McpServiceAccountConfigName { get; set; }

Property Value​

String

McpDelegateToCaller​

When true, the MCP calls run under the end user's identity instead of the service account's: the node exchanges the caller's access token for a delegated one (OctoMesh on-behalf-of grant, AB#5026/AB#5031) via AnthropicAiQueryNodeConfiguration.McpServiceAccountConfigName, so the MCP server sees the user's own roles and data permissions rather than the service account's full octo_api reach.

public bool McpDelegateToCaller { get; set; }

Property Value​

Boolean

Remarks:

Requires a trigger that carries a caller token — today FromHttpRequest@2 with allowAnonymous: false. Fail-closed: with no caller token, or when the delegated token cannot be acquired, the node fails; it never falls back to the service account and never sends an unauthenticated MCP request. Channel assistants (Teams, Signal, e-mail) have no caller and must leave this off.

Default false keeps the existing service-account behaviour byte for byte, including its degrade-to-unauthenticated paths.

Identity​

The general execution-identity property (AB#5127). On this node it drives the MCP call identity rather than a repository session: delegates to the calling user (on-behalf-of, the same as legacy AnthropicAiQueryNodeConfiguration.McpDelegateToCaller = true); and use the service account's own token.

public NodeExecutionIdentity Identity { get; set; }

Property Value​

NodeExecutionIdentity

Remarks:

The default is — not the default of the data nodes — because the AI node's historical behaviour (AnthropicAiQueryNodeConfiguration.McpDelegateToCaller absent) is to call MCP as the service account. AnthropicAiQueryNodeConfiguration.McpDelegateToCaller stays supported as an alias: setting either it or identity: Caller selects delegation, so both spellings keep working.

DelegatesToCaller​

Whether this node's MCP calls run on the caller's identity (AB#5127 alias resolution): true when either the legacy AnthropicAiQueryNodeConfiguration.McpDelegateToCaller flag is set or AnthropicAiQueryNodeConfiguration.Identity is . Either "caller" spelling wins, so a pipeline can use whichever it likes.

public bool DelegatesToCaller { get; }

Property Value​

Boolean

ConversationHistoryPath​

Optional JSON path to conversation history array. Each entry should have "role" (user/assistant) and "content" fields. When set, previous messages are included for multi-turn conversations.

public string ConversationHistoryPath { get; set; }

Property Value​

String

JsonFormatSample​

Sample JSON format for structured responses

public string JsonFormatSample { get; set; }

Property Value​

String

Path​

public string Path { get; set; }

Property Value​

String

TargetPath​

public string TargetPath { get; set; }

Property Value​

String

TargetValueWriteMode​

public TargetValueWriteModes TargetValueWriteMode { get; set; }

Property Value​

TargetValueWriteModes

TargetValueKind​

public ValueKinds TargetValueKind { get; set; }

Property Value​

ValueKinds

DocumentMode​

public DocumentModes DocumentMode { get; set; }

Property Value​

DocumentModes

Description​

public string Description { get; set; }

Property Value​

String

Constructors​

AnthropicAiQueryNodeConfiguration()​

Caution​

Constructors of types with required members are not supported in this version of your compiler.


public AnthropicAiQueryNodeConfiguration()