Configuration Reference
Complete, authoritative reference for Hector's YAML configuration format. Every field documented with type, default, constraints, and description.
Schema Version: Generated from /schema endpoint
Default Location: .hector/config.yaml
This file documents the app config (YAML). For server flags (port, database, auth), see the CLI Reference.
Top-Level Properties
| Property |
Type |
Required |
Description |
version |
string |
No |
Configuration version |
llms |
map[string]object |
No |
LLM provider configurations |
tools |
map[string]object |
No |
Tool configurations |
agents |
map[string]object |
No |
Agent configurations |
guardrails |
map[string]object |
No |
Guardrail configurations |
vector_stores |
map[string]object |
No |
Vector database configurations |
embedders |
map[string]object |
No |
Embedding provider configurations |
document_stores |
map[string]object |
No |
Document source configurations |
defaults |
object |
No |
Default values |
llms
LLM provider configurations. Each key is a unique LLM name.
llms.\<name>
| Property |
Type |
Default |
Constraints |
Description |
provider |
string |
(auto-detected) |
enum: anthropic, openai, gemini, ollama, deepseek, groq, mistral, cohere |
LLM provider. Auto-detected from environment variables if not set. |
model |
string |
(provider default) |
- |
Model identifier |
api_key |
string |
- |
- |
API key for authentication (use ${ENV_VAR}) |
base_url |
string |
- |
- |
Custom base URL for API endpoint |
temperature |
number |
0.7 |
min: 0, max: 2 |
Sampling temperature |
max_tokens |
integer |
(provider default) |
min: 0 |
Maximum tokens to generate. 0 means use provider default. |
max_tool_output_length |
integer |
0 |
min: 0 |
Maximum output length for tools tokens to avoid context length error |
thinking |
object |
- |
- |
Extended thinking configuration (Claude) |
llms.\<name>.thinking
| Property |
Type |
Default |
Constraints |
Description |
enabled |
boolean |
true |
- |
Enable extended thinking |
budget_tokens |
integer |
1024 |
min: 1 |
Token budget for thinking |
Tool configurations. Each key is a unique tool name.
| Property |
Type |
Default |
Constraints |
Description |
type |
string |
mcp |
enum: mcp, function, command |
Type of tool |
enabled |
boolean |
true |
- |
Whether the tool is active |
description |
string |
- |
- |
What this tool does |
url |
string |
- |
- |
MCP server URL (for type=mcp) |
transport |
string |
- |
enum: stdio, sse, streamable-http |
MCP transport type |
command |
string |
- |
- |
Command to execute MCP server (for type=mcp stdio) |
args |
[]string |
- |
- |
Arguments for MCP stdio transport |
env |
map[string]string |
- |
- |
Environment variables for MCP stdio transport |
filter |
[]string |
- |
- |
Limit which tools are exposed from MCP server |
handler |
string |
- |
- |
Function name (for type=function) |
parameters |
object |
- |
- |
Parameters schema (for type=function) |
allowed_commands |
[]string |
- |
- |
Whitelist of allowed base commands |
denied_commands |
[]string |
- |
- |
Blacklist of denied base commands |
working_directory |
string |
- |
- |
Working directory for command execution |
max_execution_time |
string |
- |
- |
Maximum command execution duration |
deny_by_default |
boolean |
false |
- |
Require explicit allowed_commands whitelist |
require_approval |
boolean |
false |
- |
Whether this tool requires human approval (HITL) |
approval_prompt |
string |
- |
- |
Message shown when requesting approval |
agents
Agent configurations. Each key is a unique agent name (used in URL path).
agents.\<name>
| Property |
Type |
Default |
Constraints |
Description |
name |
string |
- |
- |
Human-readable display name for the agent (e.g. 'AI Assistant') |
description |
string |
- |
- |
Human-readable description of agent's purpose |
visibility |
string |
public |
enum: public, internal, private |
Controls agent discovery and access |
llm |
string |
default |
- |
References a configured LLM by name |
tools |
[]string |
- |
- |
List of tool names this agent can use |
sub_agents |
[]string |
- |
- |
Child agents that can receive transferred control |
agent_tools |
[]string |
- |
- |
Agent names to use as callable tools |
instruction |
string |
- |
- |
System prompt that defines agent behavior |
instruction_file |
string |
- |
- |
Path to a file containing the system instruction |
global_instruction |
string |
- |
- |
Instruction applied to all agents in the tree |
reasoning |
object |
- |
- |
Chain-of-thought reasoning loop settings |
context |
object |
- |
- |
Working memory and context window settings |
guardrails |
string |
- |
- |
References a named guardrails configuration |
disable_safety_protocols |
boolean |
false |
- |
Disable automatic injection of tool safety and CoT protocols |
prompt |
object |
- |
- |
Detailed prompt configuration |
skills |
[]object |
- |
- |
Agent capabilities for A2A discovery |
input_modes |
[]string |
- |
- |
Supported input MIME types |
output_modes |
[]string |
- |
- |
Supported output MIME types |
streaming |
boolean |
true |
- |
Token-by-token streaming from LLM |
document_stores |
[]string |
- |
- |
Document stores accessible to this agent |
include_context |
boolean |
false |
- |
Automatically inject RAG context |
include_context_limit |
integer |
5 |
min: 1 |
Maximum number of documents to include |
include_context_max_length |
integer |
500 |
min: 1 |
Maximum content length per document (chars) |
structured_output |
object |
- |
- |
JSON schema response format configuration |
type |
string |
llm |
enum: llm, sequential, parallel, loop, remote, runner, conditional |
Type of agent |
max_iterations |
integer |
- |
min: 0 |
Maximum iterations for loop agents |
condition_agent |
string |
- |
- |
Agent that evaluates the routing condition |
condition_field |
string |
safe |
- |
JSON field to check in condition agent output |
on_true_agent |
string |
- |
- |
Agent to run when condition is true |
on_false_response |
string |
I cannot process this request. |
- |
Static response when condition is false |
trigger |
object |
- |
- |
Automatic invocation trigger (e.g. cron schedule) |
notifications |
[]object |
- |
- |
Outbound notifications for agent events |
url |
string |
- |
- |
Base URL of remote A2A server |
agent_card_url |
string |
- |
- |
URL to fetch agent card from |
agent_card_file |
string |
- |
- |
Local file path to agent card JSON |
headers |
map[string]string |
- |
- |
Custom headers for remote requests |
timeout |
string |
30s |
- |
Request timeout |
agents.\<name>.reasoning
| Property |
Type |
Default |
Constraints |
Description |
max_iterations |
integer |
100 |
min: 1 |
Safety limit for reasoning loop iterations |
enable_exit_tool |
boolean |
false |
- |
Add exit_loop tool for explicit termination |
enable_escalate_tool |
boolean |
false |
- |
Add escalate tool for parent delegation |
termination_conditions |
[]string |
- |
- |
Conditions that terminate the reasoning loop |
completion_instruction |
string |
- |
- |
Instruction appended to help model know when to stop |
agents.\<name>.context
| Property |
Type |
Default |
Constraints |
Description |
strategy |
string |
none |
enum: none, buffer_window, token_window, summary_buffer |
Context window management strategy |
window_size |
integer |
20 |
min: 1 |
Minimum guaranteed messages (buffer floor). Dynamically reduced if Budget is too small. |
budget |
integer |
8000 |
min: 1 |
Primary token constraint. Dynamically limits WindowSize if set too low. |
threshold |
number |
0.85 |
min: 0, max: 1 |
Percentage of budget that triggers summarization |
target |
number |
0.7 |
min: 0, max: 1 |
Percentage of budget to reduce to after summarization |
preserve_recent |
integer |
5 |
min: 0 |
Minimum number of recent messages to always keep |
summarizer_llm |
string |
- |
- |
LLM reference for summarization (uses agent LLM if empty) |
agents.\<name>.prompt
| Property |
Type |
Default |
Constraints |
Description |
system_prompt |
string |
- |
- |
Full system prompt (overrides Instruction) |
role |
string |
- |
- |
Agent's role |
guidance |
string |
- |
- |
Additional instructions |
agents.\<name>.skills[]
| Property |
Type |
Default |
Constraints |
Description |
id |
string |
- |
- |
Unique identifier for the skill |
name |
string |
- |
- |
Display name |
description |
string |
- |
- |
What this skill does |
tags |
[]string |
- |
- |
Tags for categorization |
examples |
[]string |
- |
- |
Example prompts this skill handles |
agents.\<name>.structured_output
| Property |
Type |
Default |
Constraints |
Description |
schema |
object |
- |
- |
JSON schema the response must conform to |
strict |
boolean |
true |
- |
Enable strict schema validation |
name |
string |
response |
- |
Optional name for the schema |
agents.\<name>.trigger
| Property |
Type |
Default |
Constraints |
Description |
type |
string |
schedule |
enum: schedule, webhook |
Type of trigger |
enabled |
boolean |
true |
- |
Whether the trigger is active |
cron |
string |
- |
- |
Cron schedule (e.g. '0 9 * * *' for daily at 9am) |
timezone |
string |
UTC |
- |
Timezone for cron schedule |
input |
string |
- |
- |
Static input for triggered runs |
path |
string |
- |
- |
URL path for webhook endpoint |
methods |
[]string |
[POST] |
- |
Allowed HTTP methods |
secret |
string |
- |
- |
Secret for webhook signature verification |
signature_header |
string |
X-Webhook-Signature |
- |
HTTP header containing HMAC signature |
webhook_input |
object |
- |
- |
Payload transformation configuration |
response |
object |
- |
- |
Webhook response configuration |
| Property |
Type |
Default |
Constraints |
Description |
template |
string |
- |
- |
Go template for transforming webhook payload to agent input |
session_id |
string |
- |
- |
Template for deriving session ID from payload for conversation continuity |
extract_fields |
[]object |
- |
- |
Fields to extract from payload |
| Property |
Type |
Default |
Required |
Description |
path |
string |
- |
Yes |
Path to field in payload |
as |
string |
- |
Yes |
Name to use in template |
agents.\<name>.trigger.response
| Property |
Type |
Default |
Constraints |
Description |
mode |
string |
sync |
enum: sync, async, callback |
How to respond to webhook requests |
timeout |
integer |
- |
- |
Max wait time for sync mode |
callback_url |
string |
- |
- |
URL to POST results to in callback mode |
agents.\<name>.notifications[]
| Property |
Type |
Default |
Required |
Description |
id |
string |
- |
Yes |
Unique identifier for this notification |
type |
string |
webhook |
enum: webhook |
Notification type |
enabled |
boolean |
true |
- |
Whether the notification is active |
events |
[]string |
- |
- |
Events that trigger notification |
url |
string |
- |
Yes |
URL to send notifications to |
headers |
map[string]string |
- |
- |
Additional HTTP headers |
payload |
object |
- |
- |
Payload configuration |
retry |
object |
- |
- |
Retry configuration |
agents.\<name>.notifications[].payload
| Property |
Type |
Default |
Constraints |
Description |
template |
string |
- |
- |
Go template for payload generation |
agents.\<name>.notifications[].retry
| Property |
Type |
Default |
Constraints |
Description |
max_attempts |
integer |
3 |
- |
Maximum retry attempts |
initial_delay |
integer |
- |
- |
Initial retry delay |
max_delay |
integer |
- |
- |
Maximum retry delay |
guardrails
Guardrail configurations. Each key is a unique guardrail name.
guardrails.\<name>
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
true |
Yes |
Whether guardrails are active |
input |
object |
- |
- |
Input validation and sanitization settings |
output |
object |
- |
- |
Output filtering and redaction settings |
tool |
object |
- |
- |
Tool authorization settings |
moderation |
object |
- |
- |
LLM-powered content moderation settings |
| Property |
Type |
Default |
Constraints |
Description |
chain_mode |
string |
fail_fast |
enum: fail_fast, collect_all |
How to handle multiple guardrails |
length |
object |
- |
- |
Input length constraints |
injection |
object |
- |
- |
Prompt injection protection |
sanitizer |
object |
- |
- |
Input cleaning and normalization |
pattern |
object |
- |
- |
Regex-based validation |
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
true |
Yes |
Enable length validation |
min_length |
integer |
1 |
- |
Minimum input length |
max_length |
integer |
100000 |
- |
Maximum input length |
action |
string |
block |
enum: allow, block, warn |
Action on violation |
severity |
string |
medium |
enum: low, medium, high, critical |
Severity level |
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
true |
Yes |
Enable injection detection |
patterns |
[]string |
- |
- |
Additional regex patterns to detect |
case_sensitive |
boolean |
false |
- |
Case sensitive matching |
action |
string |
block |
enum: allow, block, warn |
Action on violation |
severity |
string |
high |
enum: low, medium, high, critical |
Severity level |
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
true |
Yes |
Enable sanitization |
trim_whitespace |
boolean |
true |
- |
Trim leading/trailing whitespace |
normalize_unicode |
boolean |
false |
- |
Normalize unicode characters |
max_length |
integer |
- |
- |
Truncate if exceeded (0=no limit) |
strip_html |
boolean |
false |
- |
Remove HTML tags |
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
false |
Yes |
Enable pattern validation |
allow_patterns |
[]string |
- |
- |
Patterns that input must match |
block_patterns |
[]string |
- |
- |
Patterns that input must NOT match |
action |
string |
block |
enum: allow, block, warn |
Action on violation |
severity |
string |
medium |
enum: low, medium, high, critical |
Severity level |
guardrails.\<name>.output
| Property |
Type |
Default |
Constraints |
Description |
chain_mode |
string |
fail_fast |
enum: fail_fast, collect_all |
How to handle multiple guardrails |
pii |
object |
- |
- |
Detect and redact personally identifiable information |
content |
object |
- |
- |
Block or warn about harmful content |
guardrails.\<name>.output.pii
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
true |
Yes |
Enable PII detection |
detect_email |
boolean |
true |
- |
Detect email addresses |
detect_phone |
boolean |
true |
- |
Detect phone numbers |
detect_ssn |
boolean |
true |
- |
Detect social security numbers |
detect_credit_card |
boolean |
true |
- |
Detect credit card numbers |
redact_mode |
string |
mask |
enum: mask, remove, hash |
How to redact detected PII |
action |
string |
modify |
enum: allow, block, modify, warn |
Action on detection |
severity |
string |
high |
enum: low, medium, high, critical |
Severity level |
guardrails.\<name>.output.content
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
false |
Yes |
Enable content filtering |
blocked_keywords |
[]string |
- |
- |
Case-insensitive keywords to block |
blocked_patterns |
[]string |
- |
- |
Regex patterns to block |
action |
string |
block |
enum: allow, block, warn |
Action on violation |
severity |
string |
high |
enum: low, medium, high, critical |
Severity level |
| Property |
Type |
Default |
Constraints |
Description |
chain_mode |
string |
fail_fast |
enum: fail_fast, collect_all |
How to handle multiple guardrails |
authorization |
object |
- |
- |
Control which tools can be called |
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
false |
Yes |
Enable tool authorization |
allowed_tools |
[]string |
- |
- |
Whitelist of allowed tools (glob patterns) |
blocked_tools |
[]string |
- |
- |
Blacklist of blocked tools (glob patterns) |
action |
string |
block |
enum: allow, block, warn |
Action on violation |
severity |
string |
high |
enum: low, medium, high, critical |
Severity level |
guardrails.\<name>.moderation
| Property |
Type |
Default |
Required |
Description |
enabled |
boolean |
false |
Yes |
Enable LLM moderation |
strategy |
string |
openai |
enum: none, openai, lakera, prompt |
Moderation approach |
action |
string |
block |
enum: block, warn |
Action on flagged content |
openai |
object |
- |
- |
OpenAI Moderation API settings |
lakera |
object |
- |
- |
Lakera Guard API settings |
prompt |
object |
- |
- |
Custom LLM prompt settings |
guardrails.\<name>.moderation.openai
| Property |
Type |
Default |
Constraints |
Description |
model |
string |
omni-moderation-latest |
- |
Moderation model (omni-moderation-latest or text-moderation-latest) |
threshold |
number |
0.8 |
min: 0, max: 1 |
Score threshold for flagging |
guardrails.\<name>.moderation.lakera
| Property |
Type |
Default |
Constraints |
Description |
project_id |
string |
- |
- |
Lakera project ID for policy configuration |
breakdown |
boolean |
- |
- |
Enable detailed detector breakdown |
endpoint |
string |
- |
- |
Custom API endpoint URL |
guardrails.\<name>.moderation.prompt
| Property |
Type |
Default |
Constraints |
Description |
llm |
string |
- |
- |
LLM to use for moderation |
template |
string |
- |
- |
Custom moderation prompt template |
safe_field |
string |
safe |
- |
Field name for safe/unsafe result |
vector_stores
Vector database configurations. Each key is a unique store name.
vector_stores.\<name>
| Property |
Type |
Default |
Required |
Description |
type |
string |
- |
Yes |
Vector store type (e.g., chromem, qdrant, pinecone) |
host |
string |
- |
- |
Database host |
port |
integer |
- |
- |
Database port |
api_key |
string |
- |
- |
API key |
enable_tls |
boolean |
- |
- |
Enable TLS connection |
persist_path |
string |
- |
- |
Persistence path (for embedded stores) |
compress |
boolean |
- |
- |
Enable compression |
collection |
string |
- |
- |
Collection name |
index_name |
string |
- |
- |
Index name (Pinecone) |
environment |
string |
- |
- |
Environment (Pinecone) |
enable_persistence |
boolean |
- |
- |
Enable persistence |
embedders
Embedding provider configurations. Each key is a unique embedder name.
embedders.\<name>
| Property |
Type |
Default |
Constraints |
Description |
provider |
string |
- |
- |
Embedding provider |
model |
string |
- |
- |
Model name |
api_key |
string |
- |
- |
API key |
base_url |
string |
- |
- |
Custom API endpoint |
dimension |
integer |
- |
- |
Embedding dimension |
timeout |
integer |
- |
- |
Request timeout in seconds |
batch_size |
integer |
- |
- |
Batch size for embedding requests |
encoding_format |
string |
- |
- |
Encoding format |
user |
string |
- |
- |
User identifier |
input_type |
string |
- |
- |
Input type (Cohere) |
output_dimension |
integer |
- |
- |
Output dimension (for dimensionality reduction) |
truncate |
string |
- |
- |
Truncation mode |
document_stores
Document source configurations for RAG. Each key is a unique store name.
document_stores.\<name>
| Property |
Type |
Default |
Required |
Description |
source |
object |
- |
Yes |
Document source configuration |
chunking |
object |
- |
- |
Chunking strategy |
vector_store |
string |
- |
- |
Vector store reference |
embedder |
string |
- |
- |
Embedder reference |
collection |
string |
- |
- |
Collection name |
watch |
boolean |
- |
- |
Watch for file changes |
incremental_indexing |
boolean |
- |
- |
Enable incremental indexing |
search |
object |
- |
- |
Search configuration |
indexing |
object |
- |
- |
Indexing configuration |
mcp_parsers |
object |
- |
- |
MCP parser configuration |
document_stores.\<name>.source
| Property |
Type |
Default |
Required |
Description |
type |
string |
- |
Yes |
Source type (blob, sql, api, collection) |
include |
[]string |
- |
- |
Include patterns |
exclude |
[]string |
- |
- |
Exclude patterns |
max_file_size |
integer |
- |
- |
Maximum file size in bytes |
collection |
string |
- |
- |
Collection name |
sql |
object |
- |
- |
SQL source config |
api |
object |
- |
- |
API source config |
blob |
object |
- |
- |
Blob storage config |
document_stores.\<name>.source.sql
| Property |
Type |
Default |
Required |
Description |
dsn |
string |
- |
- |
Database connection string |
tables |
[]object |
- |
Yes |
Table configurations |
document_stores.\<name>.source.sql.tables[]
| Property |
Type |
Default |
Required |
Description |
table |
string |
- |
Yes |
Table name |
columns |
[]string |
- |
Yes |
Columns to index |
id_column |
string |
- |
Yes |
Primary key column |
updated_column |
string |
- |
- |
Column for incremental updates |
where_clause |
string |
- |
- |
Filter clause |
metadata_columns |
[]string |
- |
- |
Additional metadata columns |
document_stores.\<name>.source.api
| Property |
Type |
Default |
Required |
Description |
url |
string |
- |
Yes |
API endpoint URL |
headers |
map[string]string |
- |
- |
HTTP headers |
id_field |
string |
- |
Yes |
Field for document ID |
content_field |
string |
- |
Yes |
Field for document content |
document_stores.\<name>.source.blob
| Property |
Type |
Default |
Required |
Description |
url |
string |
- |
Yes |
Blob storage URL |
prefix |
string |
- |
- |
Path prefix |
document_stores.\<name>.chunking
| Property |
Type |
Default |
Constraints |
Description |
strategy |
string |
- |
- |
Chunking strategy |
size |
integer |
- |
- |
Chunk size |
overlap |
integer |
- |
- |
Chunk overlap |
min_size |
integer |
- |
- |
Minimum chunk size |
max_size |
integer |
- |
- |
Maximum chunk size |
preserve_words |
boolean |
- |
- |
Preserve word boundaries |
document_stores.\<name>.search
| Property |
Type |
Default |
Constraints |
Description |
top_k |
integer |
- |
- |
Number of results to return |
threshold |
number |
- |
- |
Similarity threshold |
enable_hyde |
boolean |
- |
- |
Enable HyDE (Hypothetical Document Embeddings) |
hyde_llm |
string |
- |
- |
LLM reference for HyDE |
enable_rerank |
boolean |
- |
- |
Enable result reranking |
rerank_llm |
string |
- |
- |
LLM reference for reranking |
rerank_max_results |
integer |
- |
- |
Maximum results after reranking |
enable_multi_query |
boolean |
- |
- |
Enable multi-query retrieval |
multi_query_llm |
string |
- |
- |
LLM reference for multi-query |
multi_query_count |
integer |
- |
- |
Number of query variations |
document_stores.\<name>.indexing
| Property |
Type |
Default |
Constraints |
Description |
max_concurrent |
integer |
- |
- |
Maximum concurrent indexing operations |
retry |
object |
- |
- |
Retry configuration |
document_stores.\<name>.indexing.retry
| Property |
Type |
Default |
Constraints |
Description |
max_retries |
integer |
- |
- |
Maximum retry attempts |
base_delay |
integer |
- |
- |
Base delay between retries (ms) |
max_delay |
integer |
- |
- |
Maximum delay (ms) |
jitter |
number |
- |
- |
Jitter factor (0-1) |
document_stores.\<name>.mcp_parsers
| Property |
Type |
Default |
Required |
Description |
tool_names |
[]string |
- |
Yes |
MCP tool names for parsing |
extensions |
[]string |
- |
- |
File extensions to process |
priority |
integer |
- |
- |
Parser priority |
prefer_native |
boolean |
- |
- |
Prefer native parsers |
path_prefix |
string |
- |
- |
Path prefix for files |
defaults
Default values for agent configurations.
defaults
| Property |
Type |
Default |
Constraints |
Description |
llm |
string |
- |
- |
Default LLM for agents that don't specify one |