discourse/plugins/discourse-ai/config/settings.yml
Rafael dos Santos Silva 059856d6a8
FIX: Run Discord agents as their associated user (#40914)
Previously, Discord agent mode ran without an explicit agent user, so
tool behavior could differ from the selected agent's configured
identity.

This change runs Discord agents as their associated user and validates
that Discord agent mode has one before it can be enabled.
2026-06-15 18:00:30 -03:00

616 lines
16 KiB
YAML
Vendored

discourse_ai:
discourse_ai_enabled:
default: false
client: true
ai_artifact_security:
client: true
type: enum
default: "strict"
choices:
- "disabled"
- "lax"
- "hybrid"
- "strict"
ai_default_llm_model:
default: ""
type: enum
allow_any: false
enum: "DiscourseAi::Configuration::LlmEnumerator"
validator: "DiscourseAi::Configuration::LlmValidator"
ai_sentiment_enabled:
default: false
client: true
ai_sentiment_model_configs:
default: ""
secret: true
json_schema: DiscourseAi::Sentiment::SentimentSiteSettingJsonSchema
ai_sentiment_sentiment_classification_strategy:
default: "classification_model"
type: enum
choices:
- classification_model
- agent
ai_sentiment_sentiment_agent:
default: "-36"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
ai_sentiment_emotion_classification_strategy:
default: "classification_model"
type: enum
choices:
- classification_model
- agent
ai_sentiment_emotion_agent:
default: "-37"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
ai_sentiment_backfill_maximum_posts_per_hour:
default: 2500
min: 0
max: 10000
hidden: true
ai_sentiment_backfill_post_max_age_days:
default: 60
hidden: true
ai_openai_embeddings_url:
hidden: true
default: "https://api.openai.com/v1/embeddings"
ai_openai_organization:
default: ""
hidden: true
ai_hugging_face_tei_endpoint:
hidden: true
default: ""
ai_hugging_face_tei_endpoint_srv:
default: ""
hidden: true
ai_hugging_face_tei_api_key:
default: ""
hidden: true
ai_hugging_face_tei_reranker_endpoint:
default: ""
ai_hugging_face_tei_reranker_endpoint_srv:
default: ""
hidden: true
ai_hugging_face_tei_reranker_api_key:
default: ""
secret: true
ai_google_custom_search_api_key:
default: ""
secret: true
ai_google_custom_search_cx:
default: ""
ai_cloudflare_workers_account_id:
default: ""
secret: true
hidden: true
ai_cloudflare_workers_api_token:
default: ""
secret: true
hidden: true
ai_gemini_api_key:
default: ""
hidden: true
ai_llm_temperature_top_p_enabled:
default: false
hidden: true
client: true
ai_strict_token_counting:
default: false
hidden: true
ai_helper_enabled:
default: false
client: true
validator: "DiscourseAi::Configuration::LlmDependencyValidator"
area: "ai-features/ai_helper"
composer_ai_helper_allowed_groups:
type: group_list
list_type: compact
default: "3|11" # 3: @staff, 11: @trust_level_1
allow_any: false
refresh: true
area: "ai-features/ai_helper"
ai_helper_allowed_in_pm:
default: false
client: true
area: "ai-features/ai_helper"
post_ai_helper_allowed_groups:
type: group_list
list_type: compact
default: "3|11" # 3: @staff, 11: @trust_level_1
allow_any: false
refresh: true
area: "ai-features/ai_helper"
ai_helper_automatic_chat_thread_title:
default: false
area: "ai-features/ai_helper"
ai_helper_automatic_chat_thread_title_delay:
default: 5
area: "ai-features/ai_helper"
ai_helper_enabled_features:
client: true
default: "suggestions|context_menu"
type: list
list_type: compact
allow_any: false
refresh: true
choices:
- "suggestions"
- "context_menu"
- "image_caption"
area: "ai-features/ai_helper"
ai_helper_proofreader_agent:
default: "-22"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_title_suggestions_agent:
default: "-23"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_explain_agent:
default: "-24"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_post_illustrator_agent:
default: "-21"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_smart_dates_agent:
default: "-19"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_translator_agent:
default: "-25"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_markdown_tables_agent:
default: "-20"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_custom_prompt_agent:
default: "-18"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_image_caption_agent:
default: "-26"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_helper_chat_thread_title_agent:
default: "-35"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/ai_helper"
ai_embeddings_enabled:
default: false
client: true
validator: "DiscourseAi::Configuration::EmbeddingsModuleValidator"
area: "ai-features/embeddings"
ai_embeddings_selected_model:
type: enum
default: ""
allow_any: false
enum: "DiscourseAi::Configuration::EmbeddingDefsEnumerator"
validator: "DiscourseAi::Configuration::EmbeddingDefsValidator"
area: "ai-features/embeddings"
ai_embeddings_backfill_model:
type: enum
default: ""
allow_any: false
enum: "DiscourseAi::Configuration::EmbeddingDefsEnumerator"
hidden: true
ai_embeddings_per_post_enabled:
default: false
hidden: true
ai_embeddings_generate_for_pms:
default: false
area: "ai-features/embeddings"
ai_embeddings_semantic_related_topics_enabled:
default: false
client: true
area: "ai-features/embeddings"
ai_embeddings_semantic_related_topics:
default: 5
area: "ai-features/embeddings"
ai_embeddings_semantic_related_include_closed_topics:
default: true
area: "ai-features/embeddings"
ai_embeddings_semantic_related_age_penalty:
default: 0.0
type: float
min: 0.0
max: 2.0
area: "ai-features/embeddings"
ai_embeddings_semantic_related_age_time_scale:
default: 365
type: integer
min: 1
max: 3650
area: "ai-features/embeddings"
ai_embeddings_backfill_batch_size:
default: 250
hidden: true
ai_embeddings_semantic_search_enabled:
default: false
client: true
area: "ai-features/embeddings"
ai_embeddings_semantic_search_use_hyde:
default: false
validator: "DiscourseAi::Configuration::LlmDependencyValidator"
area: "ai-features/embeddings"
ai_embeddings_semantic_quick_search_enabled:
default: false
client: true
area: "ai-features/embeddings"
ai_embeddings_semantic_search_hyde_agent:
default: "-32"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/embeddings"
ai_embeddings_discourse_service_api_endpoint:
default: ""
hidden: true
ai_embeddings_discourse_service_api_endpoint_srv:
default: ""
hidden: true
ai_embeddings_discourse_service_api_key:
hidden: true
default: ""
secret: true
ai_embeddings_model:
hidden: true
type: enum
default: "bge-large-en"
allow_any: false
choices:
- all-mpnet-base-v2
- text-embedding-ada-002
- text-embedding-3-small
- text-embedding-3-large
- multilingual-e5-large
- bge-large-en
- gemini
- bge-m3
ai_embeddings_pg_connection_string:
default: ""
hidden: true
ai_admin_dashboard_enabled:
default: false
client: true
validator: "DiscourseAi::Configuration::LlmDependencyValidator"
area: "ai-features/admin_dashboard"
ai_admin_dashboard_highlights_agent:
default: "-38"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/admin_dashboard"
ai_summarization_enabled:
default: false
client: true
validator: "DiscourseAi::Configuration::LlmDependencyValidator"
area: "ai-features/summarization"
ai_summarization_agent:
default: "-11"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/summarization"
ai_pm_summarization_allowed_groups:
type: group_list
list_type: compact
default: ""
area: "ai-features/summarization"
ai_summary_gists_enabled:
default: false
client: true
area: "ai-features/summarization"
ai_summary_gists_agent:
default: "-12"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/summarization"
ai_summary_backfill_topic_max_age_days:
default: 30
min: 1
max: 10000
area: "ai-features/summarization"
ai_summary_backfill_maximum_topics_per_hour:
default: 0
min: 0
max: 10000
area: "ai-features/summarization"
ai_summary_backfill_minimum_word_count:
default: 200
area: "ai-features/summarization"
ai_bot_enabled:
default: false
client: true
area: "ai-features/bot"
enable_ai_bot_starred_conversations:
default: false
hidden: true
client: true
upcoming_change:
status: "alpha"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/403285"
ai_bot_enabled_llms:
default: ""
client: true
type: list
list_type: compact
allow_any: false
enum: "DiscourseAi::Configuration::LlmEnumerator"
refresh: true
area: "ai-features/bot"
ai_bot_enable_chat_warning:
default: false
client: true
area: "ai-features/bot"
ai_bot_debugging_allowed_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
area: "ai-features/bot"
ai_bot_allowed_groups:
type: group_list
list_type: compact
default: "3|14" # 3: @staff, 14: @trust_level_4
area: "ai-features/bot"
ai_bot_public_sharing_allowed_groups:
client: false
type: group_list
list_type: compact
default: "1|2" # 1: admins, 2: moderators
allow_any: false
refresh: true
area: "ai-features/bot"
ai_bot_add_to_header:
default: false
client: true
area: "ai-features/bot"
ai_bot_add_to_community_section:
default: true
client: true
area: "ai-features/bot"
ai_bot_github_access_token:
default: ""
secret: true
area: "ai-features/bot"
ai_bot_enable_docked_composer:
default: false
hidden: true
client: true
area: "ai-features/bot"
upcoming_change:
status: "alpha"
impact: "feature,all_members"
learn_more_url: "https://meta.discourse.org/t/-/403327"
ai_discover_enabled:
default: false
client: true
area: "ai-features/search"
ai_discover_agent:
default: "-34"
type: enum
client: true
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/search"
ai_automation_max_triage_per_minute:
default: 60
hidden: true
ai_automation_max_triage_per_post_per_minute:
default: 2
hidden: true
ai_discord_search_enabled:
default: false
client: true
validator: "DiscourseAi::Configuration::DiscordSearchAgentValidator"
area: "ai-features/discord"
ai_discord_app_id:
default: ""
client: false
area: "ai-features/discord"
ai_discord_app_public_key:
default: ""
client: false
area: "ai-features/discord"
ai_discord_search_mode:
default: "search"
type: enum
choices:
- search
- agent
validator: "DiscourseAi::Configuration::DiscordSearchAgentValidator"
area: "ai-features/discord"
ai_discord_search_agent:
default: ""
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
validator: "DiscourseAi::Configuration::DiscordSearchAgentValidator"
area: "ai-features/discord"
ai_discord_allowed_guilds:
type: list
list_type: compact
default: ""
area: "ai-features/discord"
ai_spam_detection_enabled:
default: false
validator: "DiscourseAi::Configuration::SpamDetectionValidator"
ai_spam_detection_user_id:
default: ""
hidden: true
ai_spam_detection_max_post_count:
default: 3
min: 1
max: 100
ai_spam_detection_max_trust_level:
default: 1
type: enum
choices:
- 0
- 1
- 2
- 3
- 4
ai_rag_images_enabled:
default: false
hidden: true
ai_translation_enabled:
default: false
client: true
validator: "DiscourseAi::Configuration::LlmDependencyValidator"
area: "ai-features/translation"
ai_translation_locale_detector_agent:
default: "-27"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/translation"
ai_translation_post_raw_translator_agent:
default: "-28"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/translation"
ai_translation_topic_title_translator_agent:
default: "-29"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/translation"
ai_translation_short_text_translator_agent:
default: "-30"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/translation"
ai_translation_backfill_hourly_rate:
default: 50
min: 0
max: 100000
client: false
area: "ai-features/translation"
ai_translation_excluded_categories:
type: category_list
default: ""
client: false
area: "ai-features/translation"
ai_translation_personal_messages:
type: enum
default: "none"
choices:
- "none"
- "group"
- "all"
client: false
area: "ai-features/translation"
ai_translation_include_bot_content:
default: false
client: false
area: "ai-features/translation"
ai_translation_max_post_length:
default: 10000
client: false
area: "ai-features/translation"
ai_translation_backfill_max_age_days:
default: 5
min: 0
max: 20000
client: false
area: "ai-features/translation"
ai_translation_backfill_parallel_jobs:
default: 1
min: 1
max: 10
hidden: true
area: "ai-features/translation"
ai_translation_verbose_logs:
default: false
client: false
hidden: true
area: "ai-features/translation"
inferred_concepts_enabled:
default: false
client: true
area: "ai-features/inference"
inferred_concepts_background_match:
default: false
client: false
area: "ai-features/inference"
inferred_concepts_daily_topics_limit:
default: 20
client: false
area: "ai-features/inference"
inferred_concepts_min_posts:
default: 5
client: false
area: "ai-features/inference"
inferred_concepts_min_likes:
default: 10
client: false
area: "ai-features/inference"
inferred_concepts_min_views:
default: 100
client: false
area: "ai-features/inference"
inferred_concepts_lookback_days:
default: 30
client: false
area: "ai-features/inference"
inferred_concepts_daily_posts_limit:
default: 30
client: false
area: "ai-features/inference"
inferred_concepts_post_min_likes:
default: 5
client: false
area: "ai-features/inference"
inferred_concepts_generate_agent:
default: "-15"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/inference"
inferred_concepts_match_agent:
default: "-16"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/inference"
inferred_concepts_deduplicate_agent:
default: "-17"
type: enum
enum: "DiscourseAi::Configuration::AgentEnumerator"
area: "ai-features/inference"
ai_artifact_kv_value_max_length:
default: 5000
hidden: true
ai_artifact_max_keys_per_user_per_artifact:
default: 100
hidden: true
ai_usage_rollup_after_days:
default: 7
min: 0
client: false
hidden: true
ai_audit_logs_purge_after_days:
default: 180
min: 0
client: false