Reconcile 6-week divergence: Gitea main (injection-defense, output-defense, prompt-guard-client, admin-auth, start-with-env, dashboard-v2, savings-calculator, race-mode, gamification + 13 more modules) merged with Erik's deployed features (usage-report endpoint, per-device entries, CEST timezone, cost-panel, bridge routing). ecosystem.config.cjs excluded (live token, never commit).
1399 lines
37 KiB
YAML
1399 lines
37 KiB
YAML
# LLM Gateway Routing Rules
|
|
# Maps task_type → model + prompt template + validation config
|
|
|
|
routing_rules:
|
|
|
|
# ─── PRE-CLASSIFICATION ────────────────────────────────────────────────────
|
|
pre_classify:
|
|
model: qwen2.5:3b
|
|
tier: fast
|
|
prompt_template: pre_classify
|
|
temperature: 0.1
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: []
|
|
callers: [all]
|
|
|
|
# ─── MAGATAMA — TEPPEKI Security Intelligence ─────────────────────────────
|
|
magatama_threat_analysis:
|
|
model: magatama:32b
|
|
tier: large
|
|
prompt_template: magatama_threat_analysis
|
|
temperature: 0.1
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [magatama, shieldx, shieldy, switchblade, internal]
|
|
|
|
magatama_ciso_report:
|
|
model: magatama:32b
|
|
tier: large
|
|
prompt_template: magatama_ciso_report
|
|
temperature: 0.2
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [magatama, switchblade, internal]
|
|
|
|
magatama_compliance_gap:
|
|
model: magatama:32b
|
|
tier: large
|
|
prompt_template: magatama_compliance_gap
|
|
temperature: 0.1
|
|
max_tokens: 4096
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [magatama, switchblade, internal]
|
|
|
|
magatama_incident_response:
|
|
model: magatama:32b
|
|
tier: large
|
|
prompt_template: magatama_incident_response
|
|
temperature: 0.1
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [magatama, shieldy, internal]
|
|
|
|
magatama_bgp_security:
|
|
model: magatama:32b
|
|
tier: large
|
|
prompt_template: magatama_bgp_security
|
|
temperature: 0.1
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [fact_checker, length]
|
|
callers: [magatama, peercortex, switchblade, internal]
|
|
|
|
magatama_vuln_triage:
|
|
model: magatama:32b
|
|
tier: large
|
|
prompt_template: magatama_vuln_triage
|
|
temperature: 0.1
|
|
max_tokens: 2048
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [magatama, shieldx, shieldy, internal]
|
|
|
|
# ─── CTX-REPORT MORNING BRIEFING ──────────────────────────────────────────
|
|
ctx_morning_briefing:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: ctx_morning_briefing
|
|
temperature: 0.7
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: []
|
|
callers: [ctx-report, internal]
|
|
|
|
# ─── INTERNAL ─────────────────────────────────────────────────────────────
|
|
internal_ban_detect:
|
|
model: qwen2.5:3b
|
|
tier: fast
|
|
prompt_template: internal_ban_detect
|
|
temperature: 0.1
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: []
|
|
callers: [internal]
|
|
|
|
internal_prompt_improve:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: internal_prompt_improve
|
|
temperature: 0.4
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: []
|
|
callers: [internal]
|
|
|
|
# ─── TIP: TRANSCEIVER INTELLIGENCE PLATFORM ────────────────────────────────
|
|
tip_transceiver_enrich:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_transceiver_enrich
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, tip_validator, length]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_datasheet_extract:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_datasheet_extract
|
|
temperature: 0.1
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_compatibility_parse:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_compatibility_parse
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_blog_generator:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: tip_blog_generator
|
|
temperature: 0.6
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [tip-scraper, internal, n8n]
|
|
|
|
tip_faq_answer:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_faq_answer
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, tip_validator, length]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_hype_cycle_narrative:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_hype_cycle_narrative
|
|
temperature: 0.5
|
|
max_tokens: 2500
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [tip-scraper, internal, n8n]
|
|
|
|
tip_price_anomaly:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_price_anomaly
|
|
temperature: 0.2
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_vendor_classify:
|
|
model: qwen2.5:7b
|
|
tier: fast
|
|
prompt_template: tip_vendor_classify
|
|
temperature: 0.1
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_product_description:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_product_description
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [schema, banlist, language, tip_validator, length]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_technical_summary:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_technical_summary
|
|
temperature: 0.2
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: true
|
|
validators: [schema, tip_validator, length]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_competitor_analysis:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: tip_competitor_analysis
|
|
temperature: 0.4
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, tip_validator, length]
|
|
callers: [tip-scraper, internal, n8n]
|
|
|
|
tip_price_extraction:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_price_extraction
|
|
temperature: 0.0
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_market_analysis:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: tip_market_analysis
|
|
temperature: 0.5
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [tip-scraper, internal, n8n]
|
|
|
|
tip_hype_cycle:
|
|
model: deepseek-r1:32b
|
|
tier: large
|
|
prompt_template: tip_hype_cycle
|
|
temperature: 0.3
|
|
max_tokens: 2048
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator, length]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_faq_generation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_faq_generation
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_vendor_profile:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_vendor_profile
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, tip_validator, length]
|
|
callers: [tip-scraper, internal]
|
|
|
|
tip_blog_post:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: tip_blog_post
|
|
temperature: 0.6
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [tip-scraper, internal, n8n]
|
|
|
|
tip_spec_extraction:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: tip_spec_extraction
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [tip-scraper, internal]
|
|
|
|
# ─── EO GLOBAL PULSE (template-based) ──────────────────────────────────────
|
|
eo_business_card_ocr:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_business_card_ocr
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_voice_to_crm:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_voice_to_crm
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_event_prep_brief:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_event_prep_brief
|
|
temperature: 0.4
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_attendee_enrich:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_attendee_enrich
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_meeting_suggest:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_meeting_suggest
|
|
temperature: 0.5
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_lead_qualify:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_lead_qualify
|
|
temperature: 0.3
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_debrief_generate:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: eo_debrief_generate
|
|
temperature: 0.4
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_ticket_summarize:
|
|
model: qwen2.5:7b
|
|
tier: fast
|
|
prompt_template: eo_ticket_summarize
|
|
temperature: 0.2
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
# ─── EO GLOBAL PULSE ────────────────────────────────────────────────────────
|
|
eo_member_summary:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_member_summary
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_meeting_notes:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_meeting_notes
|
|
temperature: 0.3
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_chapter_report:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: eo_chapter_report
|
|
temperature: 0.4
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_learning_recommendation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_learning_recommendation
|
|
temperature: 0.5
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_forum_moderation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_forum_moderation
|
|
temperature: 0.2
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_event_agenda:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_event_agenda
|
|
temperature: 0.5
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
eo_travel_brief:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: eo_travel_brief
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language]
|
|
callers: [eo-global-pulse, internal]
|
|
|
|
# ─── PEERCORTEX (template-based) ────────────────────────────────────────────
|
|
pc_as_narrative:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: pc_as_narrative
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [banlist, fact_checker, length]
|
|
callers: [peercortex, internal]
|
|
|
|
pc_health_summary:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: pc_health_summary
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [peercortex, internal]
|
|
|
|
pc_rpki_explain:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: pc_rpki_explain
|
|
temperature: 0.3
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [fact_checker, length]
|
|
callers: [peercortex, internal]
|
|
|
|
pc_anomaly_hypothesis:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: pc_anomaly_hypothesis
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [peercortex, internal]
|
|
|
|
pc_peer_recommendation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: pc_peer_recommendation
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [peercortex, internal]
|
|
|
|
pc_incident_brief:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: pc_incident_brief
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [peercortex, internal]
|
|
|
|
# ─── PEERCORTEX ──────────────────────────────────────────────────────────────
|
|
peercortex_asn_analysis:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: peercortex_asn_analysis
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [banlist, fact_checker, length]
|
|
callers: [peercortex, internal]
|
|
|
|
peercortex_routing_summary:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: peercortex_routing_summary
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [fact_checker, length]
|
|
callers: [peercortex, internal]
|
|
|
|
peercortex_ix_report:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: peercortex_ix_report
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [fact_checker, length]
|
|
callers: [peercortex, internal]
|
|
|
|
peercortex_health_report:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: peercortex_health_report
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [peercortex, internal]
|
|
|
|
peercortex_rpki_analysis:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: peercortex_rpki_analysis
|
|
temperature: 0.2
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: true
|
|
validators: [fact_checker]
|
|
callers: [peercortex, internal]
|
|
|
|
# ─── SWITCHBLADE (template-based) ────────────────────────────────────────────
|
|
sb_root_cause:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: sb_root_cause
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_alert_narrative:
|
|
model: qwen2.5:7b
|
|
tier: fast
|
|
prompt_template: sb_alert_narrative
|
|
temperature: 0.2
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_cve_remediation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: sb_cve_remediation
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_csrd_narrative:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: sb_csrd_narrative
|
|
temperature: 0.4
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_transceiver_advisor:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: sb_transceiver_advisor
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_bandwidth_report:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: sb_bandwidth_report
|
|
temperature: 0.3
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_ticket_draft:
|
|
model: qwen2.5:7b
|
|
tier: fast
|
|
prompt_template: sb_ticket_draft
|
|
temperature: 0.3
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_firmware_assess:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: sb_firmware_assess
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
sb_topology_explain:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: sb_topology_explain
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
# ─── SWITCHBLADE ─────────────────────────────────────────────────────────────
|
|
switchblade_incident_summary:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: switchblade_incident_summary
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_config_review:
|
|
model: deepseek-r1:8b
|
|
tier: medium
|
|
prompt_template: switchblade_config_review
|
|
temperature: 0.1
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [length]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_peering_recommendation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: switchblade_peering_recommendation
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: true
|
|
validators: [schema, fact_checker]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_blacklist_report:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: switchblade_blacklist_report
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [length]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_rack_documentation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: switchblade_rack_documentation
|
|
temperature: 0.3
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_csrd_report:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: switchblade_csrd_report
|
|
temperature: 0.4
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_transceiver_advisor:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: switchblade_transceiver_advisor
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, tip_validator]
|
|
callers: [switchblade, internal]
|
|
|
|
switchblade_bgp_policy:
|
|
model: deepseek-r1:8b
|
|
tier: medium
|
|
prompt_template: switchblade_bgp_policy
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [length]
|
|
callers: [switchblade, internal]
|
|
|
|
# ─── NOGNET (template-based) ─────────────────────────────────────────────────
|
|
nog_cfp_evaluate:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: nog_cfp_evaluate
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [nognet, internal]
|
|
|
|
nog_cfp_feedback:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: nog_cfp_feedback
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [nognet, internal]
|
|
|
|
nog_topic_gap_analysis:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: nog_topic_gap_analysis
|
|
temperature: 0.5
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [nognet, internal]
|
|
|
|
nog_meeting_match:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: nog_meeting_match
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [nognet, internal]
|
|
|
|
nog_speaker_enrich:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: nog_speaker_enrich
|
|
temperature: 0.3
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [nognet, internal]
|
|
|
|
nog_sponsor_pitch:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: nog_sponsor_pitch
|
|
temperature: 0.5
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [nognet, internal]
|
|
|
|
nog_event_debrief:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: nog_event_debrief
|
|
temperature: 0.4
|
|
max_tokens: 3000
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [nognet, internal]
|
|
|
|
nog_agenda_summary:
|
|
model: qwen2.5:7b
|
|
tier: fast
|
|
prompt_template: nog_agenda_summary
|
|
temperature: 0.5
|
|
max_tokens: 512
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [nognet, internal]
|
|
|
|
nog_session_intro:
|
|
model: qwen2.5:3b
|
|
tier: fast
|
|
prompt_template: nog_session_intro
|
|
temperature: 0.5
|
|
max_tokens: 128
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist]
|
|
callers: [nognet, internal]
|
|
|
|
# ─── NOGNET / CTXEVENT ───────────────────────────────────────────────────────
|
|
nognet_event_description:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: nognet_event_description
|
|
temperature: 0.5
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [nognet, internal]
|
|
|
|
nognet_sponsor_proposal:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: nognet_sponsor_proposal
|
|
temperature: 0.5
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [nognet, internal]
|
|
|
|
nognet_program_committee:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: nognet_program_committee
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [nognet, internal]
|
|
|
|
nognet_recap_article:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: nognet_recap_article
|
|
temperature: 0.6
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [nognet, internal]
|
|
|
|
ctxevent_agenda_builder:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: ctxevent_agenda_builder
|
|
temperature: 0.4
|
|
max_tokens: 2048
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [nognet, internal]
|
|
|
|
ctxevent_attendee_communication:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: ctxevent_attendee_communication
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language]
|
|
callers: [nognet, internal]
|
|
|
|
# ─── SHIELDX (template-based) ────────────────────────────────────────────────
|
|
shieldx_threat_classify:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_threat_classify
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_pattern_describe:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_pattern_describe
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_healing_recommend:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_healing_recommend
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_compliance_report:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: shieldx_compliance_report
|
|
temperature: 0.3
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_false_positive:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_false_positive
|
|
temperature: 0.2
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [shieldx, internal]
|
|
|
|
# ─── SHIELDX ─────────────────────────────────────────────────────────────────
|
|
shieldx_threat_classification:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_threat_classification
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_attack_analysis:
|
|
model: deepseek-r1:8b
|
|
tier: medium
|
|
prompt_template: shieldx_attack_analysis
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_defense_recommendation:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_defense_recommendation
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [length]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_pattern_extraction:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: shieldx_pattern_extraction
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [shieldx, internal]
|
|
|
|
shieldx_red_team_simulate:
|
|
model: deepseek-r1:32b
|
|
tier: large
|
|
prompt_template: shieldx_red_team_simulate
|
|
temperature: 0.4
|
|
max_tokens: 2048
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [shieldx, internal]
|
|
|
|
# ─── CONTENT / LINKEDIN (template-based) ──────────────────────────────────
|
|
linkedin_post_de:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: linkedin_post_de
|
|
temperature: 0.7
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length, question_closer]
|
|
callers: [n8n, internal]
|
|
|
|
linkedin_post_en:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: linkedin_post_en
|
|
temperature: 0.7
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length, question_closer]
|
|
callers: [n8n, internal]
|
|
|
|
newsletter_dispatch_de:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: newsletter_dispatch_de
|
|
temperature: 0.5
|
|
max_tokens: 3072
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [n8n, internal]
|
|
|
|
# ─── CONTENT / LINKEDIN ──────────────────────────────────────────────────────
|
|
linkedin_post:
|
|
model: fo-blog-v10
|
|
tier: large
|
|
prompt_template: linkedin_post
|
|
temperature: 0.7
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length, question_closer]
|
|
callers: [n8n, internal, linkedin-distributor]
|
|
|
|
linkedin_comment:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: linkedin_comment
|
|
temperature: 0.6
|
|
max_tokens: 256
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [n8n, internal]
|
|
|
|
linkedin_article:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: linkedin_article
|
|
temperature: 0.6
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length, question_closer]
|
|
callers: [n8n, internal]
|
|
|
|
blog_post_de:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: blog_post_de
|
|
temperature: 0.6
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length, question_closer]
|
|
callers: [n8n, internal]
|
|
|
|
blog_post_en:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: blog_post_en
|
|
temperature: 0.6
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length, question_closer]
|
|
callers: [n8n, internal]
|
|
|
|
newsletter_section:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: newsletter_section
|
|
temperature: 0.5
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [n8n, internal]
|
|
|
|
social_media_thread:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: social_media_thread
|
|
temperature: 0.7
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, banlist, language]
|
|
callers: [n8n, internal]
|
|
|
|
press_release:
|
|
model: qwen2.5:32b
|
|
tier: large
|
|
prompt_template: press_release
|
|
temperature: 0.4
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, language, length]
|
|
callers: [n8n, internal]
|
|
|
|
content_translation_de_en:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: content_translation_de_en
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [language, length]
|
|
callers: [n8n, internal]
|
|
|
|
content_translation_en_de:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: content_translation_en_de
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [language, length]
|
|
callers: [n8n, internal]
|
|
|
|
# ─── GENERAL PURPOSE ──────────────────────────────────────────────────────────
|
|
generic_summarize:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: generic_summarize
|
|
temperature: 0.3
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [all]
|
|
|
|
generic_extract:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: generic_extract
|
|
temperature: 0.1
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [all]
|
|
|
|
generic_classify:
|
|
model: qwen2.5:3b
|
|
tier: fast
|
|
prompt_template: generic_classify
|
|
temperature: 0.1
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [all]
|
|
|
|
generic_rewrite:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: generic_rewrite
|
|
temperature: 0.5
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [all]
|
|
|
|
generic_qa:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: generic_qa
|
|
temperature: 0.4
|
|
max_tokens: 1024
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [all]
|
|
|
|
code_review:
|
|
model: deepseek-r1:8b
|
|
tier: medium
|
|
prompt_template: code_review
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [length]
|
|
callers: [internal, switchblade, shieldx]
|
|
|
|
code_generate:
|
|
model: deepseek-r1:32b
|
|
tier: large
|
|
prompt_template: code_generate
|
|
temperature: 0.3
|
|
max_tokens: 4096
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [length]
|
|
callers: [internal, switchblade, shieldx]
|
|
|
|
data_enrichment:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: data_enrichment
|
|
temperature: 0.2
|
|
max_tokens: 1024
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [all]
|
|
|
|
# ─── CtxHealth — Infrastructure Self-Healing ───────────────────────────────
|
|
ctx_health_diagnose:
|
|
model: ctxhealer:latest
|
|
tier: medium
|
|
prompt_template: ctx_health_diagnose
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [ctx-health, magatama-infra-health, infra-health, internal]
|
|
fallback_chain: [ctxhealer:latest, qwen2.5:14b, qwen2.5:3b]
|
|
|
|
ctx_health_alert:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: ctx_health_diagnose
|
|
temperature: 0.1
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [ctx-health, internal]
|
|
|
|
# ─── CtxSecurity — Blue/Red Team Defense ──────────────────────────────────
|
|
ctx_security_classify:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: ctx_security_classify
|
|
temperature: 0.05
|
|
max_tokens: 512
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema, length]
|
|
callers: [ctx-security, internal]
|
|
|
|
ctx_security_ddos:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: ctx_security_classify
|
|
temperature: 0.05
|
|
max_tokens: 256
|
|
output_format: json
|
|
requires_fact_check: false
|
|
validators: [schema]
|
|
callers: [ctx-security, internal]
|
|
|
|
ctx_security_report:
|
|
model: qwen2.5:14b
|
|
tier: medium
|
|
prompt_template: ctx_security_classify
|
|
temperature: 0.2
|
|
max_tokens: 2048
|
|
output_format: text
|
|
requires_fact_check: false
|
|
validators: [banlist, length]
|
|
callers: [ctx-security, internal]
|
|
|
|
# Validator configuration
|
|
validators:
|
|
schema:
|
|
enabled: true
|
|
score_impact: -3.0
|
|
retry_on_fail: true
|
|
banlist:
|
|
enabled: true
|
|
score_impact_per_hit: -1.0
|
|
max_penalty: -3.0
|
|
language:
|
|
enabled: true
|
|
wrong_language_impact: -2.0
|
|
formality_impact: -1.0
|
|
tip_validator:
|
|
enabled: true
|
|
score_impact_per_error: -1.5
|
|
immediate_reject_threshold: 3
|
|
fact_checker:
|
|
enabled: true
|
|
score_impact: -2.0
|
|
timeout_ms: 5000
|
|
length:
|
|
enabled: true
|
|
min_chars: 50
|
|
max_chars: 20000
|
|
score_impact: -1.0
|
|
question_closer:
|
|
enabled: true
|
|
score_impact: -1.5
|