Agent Builder Skill logo

Agent Builder Skill

Community
zeenie-ai
agent-builder-skill

How to use the Agent Builder tool's five canvas-mutation operations to inspect and grow your own toolset / skills / teammates / workflows mid-execution

Overview

Publisherzeenie-ai
RepositoryOpenCompany
Skill nameagent-builder-skill
Stars
912
Forks
137
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by zeenie-ai on GitHub. Read the source before you install it.

Installation

Install the Agent Builder Skill AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/zeenie-ai/OpenCompany.git /tmp/OpenCompany
mkdir -p .claude/skills
cp -r /tmp/OpenCompany/server/skills/assistant/agent-builder-skill .claude/skills/agent-builder-skill
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Agent Builder Skill in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Agent Builder Skill on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Agent Builder Skill is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Agent Builder

You are connected to an Agent Builder node. It exposes ONE LLM-callable tool, agentBuilder, which dispatches to FIVE canvas-mutation operations via the operation field:

operation valuePurpose
inspect_canvasRead-only view of the canvas PLUS the full catalogue of every tool, agent, and skill you can spawn. ALWAYS call this first.
add_toolSpawn a tool node + wire it to your input-tools handle. Idempotent — already-wired tools return success with no change.
add_skillToggle a skill on your Master Skill (auto-creates one if missing). Idempotent — already-enabled skills return success with no change.
add_subagentTeam-leads only — spawn a delegate agent + wire to your input-teammates. Idempotent — already-wired teammates return success with no change.
create_workflowTemporarily disabled. Mutate the current workflow instead.

Every call is agentBuilder({operation: "<one-of-above>", ...op-specific-fields}). There are no separate tools.

The cardinal rule

Call agentBuilder({operation: "inspect_canvas"}) BEFORE any mutation. The response carries the full registry of spawnable types (plus the live canvas) so you can pick the right one in a single follow-up call instead of guessing. Skipping inspect_canvas means you're flying blind on what's available.

Hot rebind (default: ON)

By default, tools / skills / teammates you spawn become callable in the same run, on your very next response. The mutation summary ends with "Available immediately — call it in your next response." Take this literally: you may invoke the new tool right away. No need to tell the user "send another message".

If the user has disabled the "Auto-Rebind Tools After Canvas Changes" toggle in Settings, mutation summaries end with "Available on your next turn." In that case the new wiring is staged but not callable this run — tell the user and stop calling that tool.

The summary text is your signal. Read it.

Operation reference

operation: "inspect_canvas"

No additional fields. Returns:

json
{
  "operation": "inspect_canvas",
  "summary": "<live counts: nodes, tools wired, available types>",
  "nodes": [{ "id", "type", "label", "key_params" }, ...],
  "edges": [{ "source", "target", "source_handle", "target_handle" }, ...],
  "you": {
    "node_id": "agent-1",
    "incoming": [...], "outgoing": [...]
  },
  "available_tools": [{ "type", "display_name", "description" }, ...],
  "available_agents": [{ "type", "display_name", "description" }, ...],
  "available_skills": [{ "folder", "name", "description" }, ...]
}
  • available_tools — every value add_tool({node_type: ...}) will accept, with descriptions.
  • available_agents — every value add_subagent({agent_type: ...}) will accept (team-leads only).
  • available_skills — every value add_skill({skill_folder: ...}) will accept.
  • you.incoming — connections wired TO your handles. Use this to see what tools / skills / teammates you already have.

API keys, prompts, and other secrets are stripped from key_params. Only safe planner-relevant fields surface (provider, model, operation, url, query).

operation: "add_tool"

Required field: node_type (string).

Spawns a tool node and wires it to your input-tools handle. Pick node_type from inspect_canvas.available_tools.

Idempotency: if a tool of this exact type is already wired to you, add_tool returns success with operations: [] and a summary like "Tool 'httpRequest' is already wired (node id=…). Reusing existing instance." Don't loop trying again — the tool is callable.

If the tool has a paired teaching skill, the auto-add-skill handler enables it too — no separate add_skill call needed.

operation: "add_skill"

Required field: skill_folder (string).

Enables a skill on your Master Skill. Pick skill_folder from inspect_canvas.available_skills. If no Master Skill is wired to your input-skill yet, one is created and wired automatically.

Idempotency: if the skill is already enabled=True in your Master Skill's config, add_skill returns success with operations: [] and "Skill 'X' is already enabled on your Master Skill. No change needed."

operation: "add_subagent"

Required field: agent_type (string).

Team-leads only (orchestrator_agent, ai_employee). Pick agent_type from inspect_canvas.available_agents. Spawns a specialized agent (coding_agent, web_agent, task_agent, etc.) and wires it to your input-teammates handle. The new agent appears in the Task Manager connected-teammate list on your next turn. Assign work with task_manager(operation="assign_task", assignee_node_id=...); do not call a delegate_to_* tool directly.

Idempotency: if a teammate of this exact type is already wired to you, add_subagent returns "Teammate 'X' is already wired (node id=…). Reusing existing instance."

The new agent starts with empty configuration — the user will need to set its provider/model after the run. Mention this in your response.

operation: "create_workflow" — temporarily disabled

This operation is currently disabled. Calling it returns a polite "temporarily disabled" summary; no workflow is created. Mutate the current workflow instead via add_tool / add_skill / add_subagent.

Worked examples

Adding a new tool and using it immediately

User: "Search the web for current weather in Tokyo and tell me."

1. agentBuilder({operation: "inspect_canvas"})
   → summary: "1 nodes, no tool(s) wired to you, 4 tool / 18 agent / 62 skill types available to spawn."
   → available_tools: [..., {type: "duckduckgoSearch", display_name: "DuckDuckGo Search", description: "..."}, ...]
   You see no web-search tool wired and one in the catalogue.

2. agentBuilder({operation: "add_tool", node_type: "duckduckgoSearch"})
   → "Added 'duckduckgoSearch' as a tool. Available immediately — call it in your next response."

3. duckduckgoSearch({query: "Tokyo weather today"})
   → search results

4. Tell the user the weather.

Handling an already-wired tool

User: "Add the calculator tool and compute 17 + 25."

1. agentBuilder({operation: "inspect_canvas"})
   → you.incoming includes a tool wired with source_type "calculatorTool".

2. agentBuilder({operation: "add_tool", node_type: "calculatorTool"})
   → "Tool 'calculatorTool' is already wired to you (node id=calc-1). Reusing existing instance."
   → operations: []

3. calculator({a: 17, b: 25, op: "add"})  ← already callable; no rebind needed
   → 42

4. Tell the user the answer.

You did NOT need to retry add_tool or wait for "next turn" — the existing instance is callable right now.

What NOT to do

  • Don't skip inspect_canvas. It's read-only, cheap, and gives you the full catalogue + canvas state in one call.
  • Don't guess node_type / agent_type / skill_folder values. Pick from the catalogues returned by inspect_canvas.
  • Don't retry add_tool / add_skill / add_subagent on success with operations: []. That's an idempotent success, not a failure. The existing instance is callable.
  • Don't add agentBuilder to yourself via add_tool (rejected — avoids recursion).
  • Don't spawn another team-lead as a subagent (rejected — team-leads delegate to specialists, not to other team-leads).
  • Don't call create_workflow — it's temporarily disabled and will return a no-op summary. Mutate the current workflow instead.
  • Don't ignore the "Available on your next turn" wording. If you see it (toggle is OFF), the tool is staged but NOT callable this run. Tell the user and stop.

Frequently asked questions

What does the Agent Builder Skill AI skill do?

How to use the Agent Builder tool's five canvas-mutation operations to inspect and grow your own toolset / skills / teammates / workflows mid-execution

Why use Agent Builder Skill on TypingMind?

Because you install it once and use it with any model. Agent Builder Skill is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Agent Builder Skill in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/zeenie-ai/OpenCompany/tree/main/server/skills/assistant/agent-builder-skill. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Agent Builder Skill?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Agent Builder Skill?

As many as you like. As long as a model supports skills, you can use Agent Builder Skill with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Agent Builder Skill AI skill free?

Yes. It is published on GitHub by zeenie-ai under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇