Goal
Modify an existing agent's configuration to customize persona, model tier, enabled skills, and job settings after hiring.
Which Agents Use This
- custom (system/configuration flows) — Used when users need to adjust agent behavior or settings post-hiring
Hard Rules
- MUST validate agent_id belongs to workspace
- MUST preserve agent type (can't change content_creator → reviewer)
- MUST validate enabled_skills against agent type permissions
- MUST NOT allow breaking changes while jobs are active (require pause first)
- Model tier changes require Admin role
Steps
1. Validate agent and permissions
bolta.get_agent(agent_id) → verify agent exists and belongs to workspace
- Check user role has permission to modify requested fields
2. Validate updates
- If updating persona: validate format and length
- If updating model: verify tier is valid for agent type
- If updating enabled_skills: validate each skill exists and is allowed for agent type
- If updating jobs:
bolta.list_jobs(agent_id) → verify all job_ids belong to this agent
3. Check for breaking changes
- If jobs are currently active AND updates would break them:
- Return error: "Pause jobs before making breaking changes"
- Breaking changes: model tier downgrade, removing required skills
- Non-breaking changes can proceed even with active jobs
4. Apply updates
bolta.update_agent(agent_id, updates)
- For each job_update:
bolta.update_job(job_id, {schedule, run_instructions})
5. Return confirmation
- List which fields were updated
- Include warnings if any (e.g., "Model tier downgrade may affect quality")
Output
{
"agent_id": "uuid",
"updated_fields": ["persona", "model", "enabled_skills"],
"warnings": ["Model downgrade from Opus to Sonnet may reduce output quality"]
}
Failure Handling
- If agent_id not found: fail with "Agent not found"
- If breaking changes attempted with active jobs: fail with "Pause jobs first"
- If invalid skill name provided: fail with "Skill 'xyz' not found or not allowed for this agent type"
- Partial updates allowed: if job_updates fail, agent updates still succeed (with warning)
Example Usage
Scenario 1: Adjust persona only
{
"agent_id": "uuid",
"updates": {
"persona": "More enthusiastic and emoji-heavy for social engagement"
}
}
Result: Agent persona updated, no other changes
Scenario 2: Upgrade model tier
{
"agent_id": "uuid",
"updates": {
"model": "claude-opus-4"
}
}
Result: Agent now uses Opus (higher quality, higher cost)
Scenario 3: Update job schedule
{
"agent_id": "uuid",
"updates": {
"job_updates": [
{
"job_id": "uuid",
"schedule": {"cron": "0 9 * * 1,3,5"},
"run_instructions": "Create 1 LinkedIn post about remote work best practices"
}
]
}
}
Result: Job now runs Monday, Wednesday, Friday at 9am with new instructions
1---2name: bolta-agent-configure3version: 2.0.04description: Modify an existing agent's configuration including persona, model tier, enabled skills, and job settings5category: agent6roles_allowed: [Editor, Admin]7required_scopes: [workspace:read]8agent_types: [custom]9safe_defaults:10 require_job_pause_for_breaking_changes: true11tools_required:12 - bolta.get_agent13 - bolta.update_agent14 - bolta.list_jobs15 - bolta.update_job16inputs_schema:17 type: object18 required: [agent_id, updates]19 properties:20 agent_id: { type: string, description: "Agent UUID to configure" }21 updates: 22 type: object23 properties:24 persona: { type: string, description: "Personality and behavioral guidelines" }25 model: { type: string, enum: [claude-sonnet-4, claude-opus-4, claude-haiku-4], description: "Claude model tier" }26 enabled_skills: { type: array, items: { type: string }, description: "Skills this agent can use" }27 job_updates: 28 type: array29 items:30 type: object31 properties:32 job_id: { type: string }33 schedule: { type: object }34 run_instructions: { type: string }35outputs_schema:36 type: object37 properties:38 agent_id: { type: string }39 updated_fields: { type: array, items: { type: string } }40 warnings: { type: array, items: { type: string } }41organization: bolta.ai42author: Bolta Team43---4445## Goal46Modify an existing agent's configuration to customize persona, model tier, enabled skills, and job settings after hiring.4748## Which Agents Use This49- **custom** (system/configuration flows) — Used when users need to adjust agent behavior or settings post-hiring5051## Hard Rules521. MUST validate agent_id belongs to workspace532. MUST preserve agent type (can't change content_creator → reviewer)543. MUST validate enabled_skills against agent type permissions554. MUST NOT allow breaking changes while jobs are active (require pause first)565. Model tier changes require Admin role5758## Steps5960### 1. Validate agent and permissions61- `bolta.get_agent(agent_id)` → verify agent exists and belongs to workspace62- Check user role has permission to modify requested fields6364### 2. Validate updates65- If updating persona: validate format and length66- If updating model: verify tier is valid for agent type67- If updating enabled_skills: validate each skill exists and is allowed for agent type68- If updating jobs: `bolta.list_jobs(agent_id)` → verify all job_ids belong to this agent6970### 3. Check for breaking changes71- If jobs are currently active AND updates would break them:72 - Return error: "Pause jobs before making breaking changes"73 - Breaking changes: model tier downgrade, removing required skills74- Non-breaking changes can proceed even with active jobs7576### 4. Apply updates77- `bolta.update_agent(agent_id, updates)`78- For each job_update:79 - `bolta.update_job(job_id, {schedule, run_instructions})`8081### 5. Return confirmation82- List which fields were updated83- Include warnings if any (e.g., "Model tier downgrade may affect quality")8485## Output86```json87{88 "agent_id": "uuid",89 "updated_fields": ["persona", "model", "enabled_skills"],90 "warnings": ["Model downgrade from Opus to Sonnet may reduce output quality"]91}92```9394## Failure Handling95- If agent_id not found: fail with "Agent not found"96- If breaking changes attempted with active jobs: fail with "Pause jobs first"97- If invalid skill name provided: fail with "Skill 'xyz' not found or not allowed for this agent type"98- Partial updates allowed: if job_updates fail, agent updates still succeed (with warning)99100## Example Usage101102### Scenario 1: Adjust persona only103```json104{105 "agent_id": "uuid",106 "updates": {107 "persona": "More enthusiastic and emoji-heavy for social engagement"108 }109}110```111**Result:** Agent persona updated, no other changes112113### Scenario 2: Upgrade model tier114```json115{116 "agent_id": "uuid",117 "updates": {118 "model": "claude-opus-4"119 }120}121```122**Result:** Agent now uses Opus (higher quality, higher cost)123124### Scenario 3: Update job schedule125```json126{127 "agent_id": "uuid",128 "updates": {129 "job_updates": [130 {131 "job_id": "uuid",132 "schedule": {"cron": "0 9 * * 1,3,5"},133 "run_instructions": "Create 1 LinkedIn post about remote work best practices"134 }135 ]136 }137}138```139**Result:** Job now runs Monday, Wednesday, Friday at 9am with new instructions