Description
Configured Agents are reusable, identity-bearing actors assembled from authored instructions, optional capabilities, and a bounded tool budget. Each Agent chooses one of two stored shapes: a Markdown Agent whose body is its standing system prompt, or a Code Agent whose body is TypeScript or Python with a documented input/output contract. Both shapes can equip Skills and Prompt Chains.
Tool access is expressed as positive capabilities such as search, read, write, shell, web, and vault operations. Before an access profile is created, the package materializes those selections into explicit native-tool and vault-tool deny lists, so unselected capabilities remain unavailable by construction.
Selling Points
- Gives a reusable actor a stable name, profile image, instructions, and capability connections.
- Supports prose-authored agents and deterministic TypeScript or Python agents under one type.
- Equips shared Skills and Prompt Chains rather than duplicating their content.
- Converts friendly capability selections into least-privilege deny policies for native and vault tools.
- Provides one lifecycle switch that removes an Agent from every invocation surface without deleting it.
User Story
A workspace owner creates a research Agent with a concise Markdown brief, equips the source-evaluation Skill, and grants only search, read, and web access. The Agent can gather and interpret evidence but cannot use the shell, write files, or create vault rows. A second Agent reuses the Skill with a different identity and narrower web policy.
Extension Surface
Agent composition is configurable in packages/superpowers/src/internal/templates/agent.template.ts through kind, language, body, profile, equipped Skills, equipped Chains, and tool-access selections. packages/superpowers/src/internal/agents/tool-access-policy.ts is the security-sensitive extension boundary that maps those selections to provider and vault denials without letting consumers hand-widen the policy.
Capabilities & Limits
Configured Agents can represent Markdown or code-authored actors, attach reusable capabilities, select a constrained tool budget, carry a profile image and I/O contract, and preserve lifecycle, embedding, and history metadata. The materializer denies shell and file tools when their positive capability is absent and separately filters gateable vault tools.
The stored model and trusted_urls fields are authoring intent only; no Dots-native run loop enforces them today. Code Agents support only TypeScript and Python, while general Scripts support more languages. This package creates policy data but does not itself run an autonomous Agent or enforce access at every downstream provider.
Implementation Map
packages/superpowers/src/internal/templates/agent.template.tspackages/superpowers/src/internal/agents/tool-access-policy.tsapps/web/src/modules/access/management/agent-tool-profile.tspackages/superpowers/src/internal/templates/skill.template.tspackages/superpowers/src/internal/templates/prompt-chain.template.ts