一键导入
build-agent
Build a new agent from natural conversation — understand the job, shape the persona, check capabilities, propose, confirm, create
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build a new agent from natural conversation — understand the job, shape the persona, check capabilities, propose, confirm, create
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Aggregate standup prep reports from department agents into a unified morning briefing for leadership
Create tests for recent code changes — analyzes the diff, identifies what needs coverage, and writes appropriate tests
Run before creating a PR — chains test creation, compliance checks, and build verification in sequence, stopping on failure
| name | build-agent |
| description | Build a new agent from natural conversation — understand the job, shape the persona, check capabilities, propose, confirm, create |
| agents | ["all"] |
| workflow | agent-builder |
Create a new agent through guided conversation. The user describes what they need help with — you figure out the agent definition.
You need access to the admin MCP server (for agent_create, agent_list, instance_capabilities).
Before starting, check if you have business context in memory (what kind of business, team size, tools they use). If not, gather the minimum first: "Before I build this, I need a bit of context. What does your business do, and how do you mainly communicate with customers?" Keep it to 1-2 questions — don't turn it into onboarding.
Ask the user what they need help with. Adapt to how they talk:
Get the one job this agent does. Not a job description — the single most important thing.
If the user describes multiple agents ("I need someone to handle sales AND manage my calendar AND do bookkeeping"), scope to one: "Let's start with the one that would save you the most time. Which of those hurts the most?"
One question at a time. Do not present a menu or a list of options.
This is the one step where the user drives. Everything else you figure out — but the soul is personal.
Start open-ended: "Now let's talk about who this person is. Any preferences on personality — someone formal and concise, or warm and conversational? Any other traits that matter to you?"
Follow up based on their interest level:
Things you might gather (all optional — user decides what matters):
Things you do NOT ask about:
Draft the soul (5-15 lines) and show it: "Here's how I'd describe them — does this feel right?"
Soul format — non-negotiable. Write the soul in second person, opening with:
# Soul: <Name>
You are <Name>, <role> at <business>.
This is not stylistic. The soul gets injected into internal classifier prompts (triage, model-router) that say "You are NOT the agent — you are a router." A 2nd-person soul ("You are Nora...") overrides that framing and the classifier responds in character. A 3rd-person soul ("Nora is...") reinforces the router framing — the classifier drops out of character and posts router internals to Slack as the agent ("I'm the router, not Nora — what do you need?"). This has happened. Do not let it happen again.
Using common sense and business context from memory, determine what the agent needs:
You are a frontier model. Use your judgment — don't need a lookup table. An inbox manager needs email access. A sales coordinator needs CRM access. This is obvious.
Every agent needs a home base channel they own, and may have listening posts — channels they passively monitor without owning.
Home base (channels field):
#agent-<name> (e.g. #agent-jordan). This is where the user DMs the agent, where direct mentions land, and where threaded conversations live.#agent-<name> channel — that becomes their inbox. Sound good, or do you want them to sit somewhere else?"Listening posts (passiveChannels field):
#purchasing and #production so she knows what's being ordered without people having to re-explain."passiveChannels empty — easier to add later than to have an agent silently lurking somewhere unexpected.Call instance_capabilities to see what's actually configured on this Hive instance. This tells you which servers have credentials and which integrations are live.
If something the agent needs isn't configured:
Present the agent in plain language. Example:
Here's who I'd build:
Name: Jordan Role: Handles your customer email — reads incoming messages, drafts responses based on your product info, flags anything that needs your personal attention. Access: Your Gmail inbox, product catalog, can send replies on your behalf. Schedule: Checks inbox every 30 minutes during business hours.
Sound right, or would you change anything?
No technical jargon. The user never sees: MCP, server, autonomy, tool, system prompt, model tier, Haiku, Sonnet, Opus, coreServers, delegateServers.
User says yes → create. User says "but also..." → incorporate and re-propose. User says "actually no" → back to intake.
If it takes more than 2-3 rounds, pause: "I want to make sure I get this right. Can you describe a typical day where this agent would help?"
Before creating:
_id (lowercase, hyphens: "Jordan" → "jordan", "Sales Rep" → "sales-rep")agent_list — if the ID exists, ask the user or append a suffixcoreServers and delegateServers against the instance_capabilities response from Step 4. Names that don't match a real server are silently dropped at runtime — the agent will load fine but the tool just won't exist. Common foot-gun: tasks is not a server, the actual id is task-ledger.Call agent_create with:
_id: slugified namename: display namemodel: claude-haiku-4-5 by default. Use claude-sonnet-4-6 only for agents that need nuanced customer-facing communication, complex reasoning, or multi-step coordination.fields:
icon: a Slack emoji shortcode like :clipboard:, :wrench:, :briefcase:, :art:. Never empty. This prefixes the agent's Slack messages and sets icon_emoji on bot posts — without it, the agent has no visual identity in Slack.soul: the persona from step 2 (must be 2nd person, see Step 2)systemPrompt: concise role definition + boundaries + tool usage guidelines (you write this from the conversation — keep it under 50 lines to start)coreServers: minimum servers needed — always include memory, slack, conversation-search, callback, event-bus, contacts. Add others based on the job. Validated against instance_capabilities.delegateServers: servers the agent can delegate to subagents (sparingly). Validated against instance_capabilities.channels: home base from Step 3.5. Never empty.passiveChannels: listening posts from Step 3.5 (may be empty).schedule: cron tasks if neededautonomy: { externalComms: false } unless the user explicitly approved outbound email/SMSbudgetUsd: 10 (default)maxTurns: 200 (default)After creation, give the user an explicit channel handoff. Spell out exactly which channels need to be created and which need the bot invited:
"I've set Jordan up to live in
#agent-jordanand listen in on#purchasingand#production. You'll need to:
- Create
#agent-jordanin Slack if it doesn't exist- Invite the Hive bot to all three channels
Once that's done, Jordan is reachable. Try asking him to check your inbox right now. If he needs more access or you want to change how he works, just let me know."
You cannot create Slack channels or invite the bot for the user — they have to do this themselves.
Before declaring done, send the new agent a test message in their home base channel (or ask the user to). Confirm two things:
:clipboard: *Jordan*: ...). If it doesn't, the icon field is empty or invalid — fix it.If either check fails, fix the agent definition before moving on. The hot-reload is automatic via MongoDB change stream — no restart needed.
Follow these strictly:
# Soul: <Name>\n\nYou are <Name>.... 3rd-person souls break the triage classifier.instance_capabilities before agent_create is called.These are calibration, not templates. Use them to understand what good agents look like.
User said: "I spend 3 hours a day answering the same customer questions over email."
Capability mapping: email access (read + reply), product/service knowledge, escalation for complex questions
Agent definition:
claude-haiku-4-5memory, slack, google, resend, conversation-search, callback, event-bus, contacts{ externalComms: true } (user approved sending replies)[{ cron: "*/30 8-18 * * 1-5", task: "check-inbox" }]User said: "I need a weekly summary of what's happening in our sales pipeline."
Capability mapping: CRM read access, scheduled report generation, Slack posting
Agent definition:
claude-haiku-4-5memory, slack, crm-search, conversation-search, callback, event-bus, contactshubspot-crm (for detailed record lookups){ externalComms: false }[{ cron: "0 8 * * 1", task: "weekly-pipeline-report" }]User said: "I need someone to follow up with leads who haven't responded in a week."
Capability mapping: CRM access, outbound email, scheduled follow-up sweeps, contact management
Agent definition:
claude-sonnet-4-6 (nuanced customer communication)memory, slack, resend, crm-search, conversation-search, callback, event-bus, contactshubspot-crm{ externalComms: true } (user approved outbound email)[{ cron: "0 9 * * 1-5", task: "follow-up-sweep" }]User said: "I need help tracking what everyone's working on — tasks keep falling through the cracks."
Capability mapping: task management, status tracking, team coordination via Slack
Agent definition:
claude-haiku-4-5memory, slack, task-ledger, conversation-search, callback, event-bus, contacts{ externalComms: false }[{ cron: "0 9 * * 1-5", task: "daily-status-check" }, { cron: "0 16 * * 5", task: "weekly-summary" }]