Files
org-agent-contrib/skills/org-skill-environment-config.org

2.4 KiB

SKILL: Environment Configuration Manager (Universal Literate Note)

Overview

The Environment Configuration Manager is the source of truth for user preferences. It persists settings (like LLM Model Fleets) into the harness's Memory, allowing for dynamic runtime reconfiguration without environment variable bloat.

Phase A: Demand (PRD)

1. Purpose

Provide a programmatic and literate interface for managing system-wide settings.

2. User Needs

  • Fleet Management: Define preferred models for each LLM provider.
  • Persistence: Ensure settings survive kernel restarts via the Memory.
  • Transparency: Allow the user to audit current settings via the REPL or Org tables.

Phase B: Blueprint (PROTOCOL)

1. Architectural Intent

Define a standardized `CONFIG` object type in the Memory. Provide getter/setter functions for the "LLM Fleet."

2. Semantic Interfaces

Fleet Configuration

(defun set-llm-model (provider model-id)
  "Registers a preferred model for a provider in the Memory."
  (let ((config-id (format nil "config-llm-~a" (string-downcase (string provider)))))
    (let ((obj (make-org-object 
                :id config-id
                :type :CONFIG
                :attributes `(:provider ,provider :model-id ,model-id)
                :content (format nil "Fleet preference for ~a set to ~a" provider model-id)
                :version (get-universal-time))))
      (setf (gethash config-id *memory*) obj)
      (harness-log "CONFIG - Fleet updated: ~a -> ~a" provider model-id)
      t)))

(defun get-llm-model (provider &optional default)
  "Retrieves the preferred model for a provider from the Memory."
  (let* ((config-id (format nil "config-llm-~a" (string-downcase (string provider))))
         (obj (gethash config-id *memory*)))
    (if obj
        (getf (org-object-attributes obj) :model-id)
        default)))

Registration

(defskill :skill-environment-config
  :priority 100
  :trigger (lambda (context) nil) ; Passive utility skill
  :probabilistic (lambda (context) nil)
  :deterministic (lambda (action context) action))