Update Config
Safely update Nexo config files with read-before-write merges, schema-aware mapping, and reload/restart awareness.
Files1
View on GitHubSKILL.mdskills/update-config/SKILL.md
GitHubUpdate Config
Update Nexo configuration intentionally and safely. Prefer minimal, reversible patches that preserve existing structure and comments.
Use when
- User asks to change runtime behavior through config instead of code.
- You need to edit files under
config/orconfig/plugins/. - You must wire skills/tools/models/bindings with explicit YAML changes.
Do not use when
- The request is a source-code behavior change (edit Rust/TS files instead).
- The target setting cannot be mapped confidently to a known config file.
- The user asks only for one-off runtime commands with no config change needed.
Input contract
request(required): desired behavior change.target_scope(optional):agent|llm|runtime|plugin|mcp|memory|tool_policy|explicit_file.target_file(optional): required whentarget_scope=explicit_file.merge_mode(optional):append_idempotent(default) orreplace.confirm_before_write(optional): defaulttruefor ambiguous or high-impact edits.trigger_reload(optional): defaulttruefor hot-reloadable files.
Mapping rules
Prefer this mapping order:
- Agent-level behavior (
skills,allowed_tools,system_prompt,inbound_bindings,model.model,web_search,link_understanding) ->config/agents.yamlorconfig/agents.d/<agent>.yaml - Provider/auth/retry defaults ->
config/llm.yaml - Reload watcher/migration/runtime knobs ->
config/runtime.yaml - MCP client servers ->
config/mcp.yaml - Plugin instance config ->
config/plugins/<plugin>.yaml - Memory backend/vector knobs ->
config/memory.yaml - Tool policy / gate rules ->
config/tool_policy.yaml
If the request cannot be mapped unambiguously, ask the user before writing.
Hot-reload vs restart
- Usually hot-reloadable:
config/agents.yaml,config/agents.d/**,config/llm.yaml,config/runtime.yaml. - Usually restart-required:
config/plugins/*.yaml,config/mcp.yaml,config/memory.yaml,config/broker.yaml,config/extensions.yaml, plus structural agent changes (id,plugins,workspace,skills_dir).
After writing:
- if hot-reloadable: recommend
agent reload(or rely on watcher), - else: state explicitly that daemon restart is required.
Canonical workflow
- Clarify intent
- Restate the requested behavior in concrete config terms.
- Resolve target file(s)
- Map request -> file path(s) using rules above.
- Read before write
- Load current file content first; never blind-overwrite.
- Prepare minimal merge patch
- Preserve unrelated keys and comments.
- For arrays, default to idempotent append unless user requested replace.
- Apply edit
- Write only the required keys/values.
- Validate
- Check YAML/shape consistency (for example
agent --check-config).
- Check YAML/shape consistency (for example
- Finalize
- Report exact file changes + reload/restart action required.
Guardrails
- Never replace whole config files when a minimal patch is possible.
- Never inline secrets in YAML when
${file:...}or env refs are expected. - Never drop existing array entries unless user asked for replacement.
- Never claim live effect without stating hot-reload vs restart requirement.
- If validation fails, stop and report corrective action before proceeding.
Output format
Always return:
status:applied|proposed|needs_user_input|validation_failedmapped_targets: list of file paths with rationalechanges: concrete key-level mutationsvalidation: checks executed and resultactivation:hot_reloadorrestart_requirednext_action: required unlessstatus=applied
Examples
request="attach verify + stuck skills to agent ana"request="enable web_search tavily for ana binding"request="increase llm retry backoff" target_scope="llm"request="add whatsapp instance for sales bot" target_scope="plugin"