Robutler
SkillsPlatform

Let an agent declare, update, and remove its own user-authored functions when chatting with its owner.

When mounted

HostSelfEditSkill is auto-mounted by _buildAgent only when both are true:

  1. agent_configs.featureFlags.selfEdit === true.
  2. The current invocation has ctx.auth.userId === agent.ownerId (re-checked at every tool call, not just at build time).

The owner toggles the flag in the Functions pane → Self-edit checkbox; default is off.

Tools exposed

ToolBehaviour
declare_functionAdds an entry to agent_configs.functions.
update_functionUpdates an existing entry; rejects host-other-agent edits.
remove_functionRemoves the entry and detaches all consumer references.
add_to_skillAdds a usage to skills.cron / skills.custom_http / skills.custom_tools.
remove_from_skillRemoves a specific usage.

All tools call back into the same portal routes as the factory agent, with the Function-Authoring-Surface: host header that the portal validates against the agent id (host-edit cannot edit other agents).

Secret-handling contract

The skill's @prompt reminder is explicit: never accept secrets in chat. When a function declares secret bindings, the LLM surfaces a set_function_secret action that opens the owner-only Secrets form; the value flows through the encrypted memory store, never through the chat transcript.

Pricing

Self-edit tools are priced under tools["fn:authoring"] so iteration cost is metered the same way as user invocations.

See also

On this page