/iblai-vibe-agent
First time here? If iblai.env has no ARCHITECTURE=, run /iblai-vibe-start first (four questions; two minutes) — it decides single-org / multi-org / headless and who signs in, and every skill reads the answer.
Everything about configuring an agent lives behind one provider and one
route layout. Set the provider up once (§1), then mount only the tabs your app
needs (§2). Most apps need five or six; the rest are there when asked for.
Common setup (brand, conventions, env files, verification): see docs/skill-setup.md.
Prerequisites
- Auth in place (
/iblai-vibe-auth, or vibe-starter).
- A real agent UUID — the last path segment of
https://os.ibl.ai/platform/<org-key>/<agent-uuid>, or one created with /iblai-vibe-agent-create. Never invent one.
- The signed-in user must be the agent's owner, an org admin, or hold an editor role on it (
/iblai-vibe-agent-access); otherwise tabs render "no access".
1. The provider (once)
// app/(app)/agents/[mentorId]/layout.tsx
"use client";
import { AgentSettingsProvider } from "@iblai/iblai-js/web-containers/next";
import { useParams } from "next/navigation";
import { useEffect, useState } from "react";
import { resolveAppTenant } from "@/lib/iblai/tenant";
export default function AgentLayout({ children }: { children: React.ReactNode }) {
const { mentorId } = useParams<{ mentorId: string }>();
const [tenantKey, setTenantKey] = useState("");
const [username, setUsername] = useState("");
useEffect(() => {
try {
const raw = localStorage.getItem("userData");
if (raw) setUsername(JSON.parse(raw).user_nicename ?? "");
} catch {}
setTenantKey(resolveAppTenant());
}, []);
if (!tenantKey || !username) return null;
return (
<AgentSettingsProvider tenantKey={tenantKey} mentorId={mentorId} username={username} enableRBAC={false}>
{children}
</AgentSettingsProvider>
);
}
Suggested routes: app/(app)/agents/[mentorId]/<tab>/page.tsx, one per tab,
with a small tab strip (shadcn Tabs or plain links) in the layout. Each tab
component reads the agent from context — no props needed for the basics.
2. The tabs
Start with the core six (bold). Add the others only when the user asks.
| Tab |
What it does |
Skill |
REST twin (iblai-api-*, kind api) |
| Settings |
name, description, avatar, category, visibility; copy to another org; delete |
/iblai-vibe-agent-setting |
agent-setting |
| Prompts |
system prompt, proactive/study/guided prompts, suggested prompts |
/iblai-vibe-agent-prompt |
agent-prompt |
| LLM |
provider + model selection (incl. the org's own keys) |
/iblai-vibe-agent-llm |
agent-llm |
| Datasets |
RAG: files, URLs, YouTube, crawl, GitHub; train/retrain |
/iblai-vibe-agent-dataset |
agent-dataset |
| Memory |
enable memory; manage memories and categories |
/iblai-vibe-agent-memory (guide: /iblai-vibe-memory-guide) |
agent-memory |
| Tools |
enable/disable the agent's tools |
/iblai-vibe-agent-tool |
agent-tool |
| Access |
RBAC sharing: editor / chat / analytics roles for users and groups |
/iblai-vibe-agent-access |
agent-access |
| API |
API keys for this agent |
/iblai-vibe-agent-api |
agent-embed |
| Billing |
spend cap for the agent and per user |
/iblai-vibe-agent-billing |
spend-caps |
| Embed |
embed code, styling, shareable links |
/iblai-vibe-agent-embed |
agent-embed |
| Evals |
benchmarks, LLM-as-Judge reviews, manual scores, CSV export |
/iblai-vibe-agent-evals |
agent-eval |
| Grader |
rubric-based grading with overrides |
/iblai-vibe-agent-grader |
— |
| History |
conversation history with filters and export |
/iblai-vibe-agent-history |
agent-history |
| LTI |
LTI 1.3 launch, keys, tools, endpoints |
/iblai-vibe-agent-lti |
— |
| MCP |
connectors (featured + custom), OAuth |
/iblai-vibe-agent-mcp |
agent-mcp |
| Privacy |
PII detection: redact / mask / block |
/iblai-vibe-agent-privacy |
agent-privacy |
| Safety |
moderation prompts, flagged content |
/iblai-vibe-agent-safety |
agent-safety |
| Sandbox |
computing runtime / VM shell / Claw instances |
/iblai-vibe-agent-sandbox |
agent-sandbox |
| Skills |
reusable Agent Skills, per-agent assignment, chat / picker |
/iblai-vibe-agent-skills |
agent-skill |
| Support |
human support ticket inbox |
/iblai-vibe-agent-support |
agent-support |
| Tasks |
scheduled periodic agent tasks with run logs |
/iblai-vibe-agent-task |
— |
| Voice |
voice selection and voice-call configuration |
/iblai-vibe-agent-voice |
— |
| Audit |
who changed what and when |
/iblai-vibe-agent-audit |
agent-audit |
| Disclaimers |
user agreement and advisory text |
/iblai-vibe-agent-disclaimer |
agent-disclaimer |
Every tab skill has screenshots of the surface it mounts — open the skill before promising the user what they will see.
3. Not tabs, but agent-related
| Need |
Skill |
| Create an agent from the app |
/iblai-vibe-agent-create |
| Chat with an agent |
/iblai-vibe-agent-chat (+ /iblai-vibe-agent-chat-sidebar) |
| Browse / star agents |
/iblai-vibe-agent-search |
| Agent-scoped analytics |
/iblai-vibe-analytics with mentor_unique_id |
Verify
Run /iblai-vibe-ops-test before telling the user the work is ready:
pnpm build, pnpm test, then npx playwright screenshot http://localhost:3000/agents/<uuid>/settings /tmp/agent-settings.png.
1---2name: iblai-vibe-agent3description: Family index for configuring one ibl.ai agent from your app — the AgentSettingsProvider layout every tab needs, the suggested route layout, and the map of all 24 agent settings tabs (settings, prompts, LLM, datasets, memory, tools, access, API, billing, embed, evals, grader, history, LTI, MCP, privacy, safety, sandbox, skills, support, tasks, voice, audit, disclaimers) with the skill that mounts each. Use when the user wants to edit, configure, or manage an agent, or asks which agent tab does what. For creating an agent see /iblai-vibe-agent-create; for chatting see /iblai-vibe-agent-chat; for browsing agents see /iblai-vibe-agent-search.4---56# /iblai-vibe-agent78> **First time here?** If `iblai.env` has no `ARCHITECTURE=`, run `/iblai-vibe-start` first (four questions; two minutes) — it decides single-org / multi-org / headless and who signs in, and every skill reads the answer.910Everything about **configuring an agent** lives behind one provider and one11route layout. Set the provider up once (§1), then mount only the tabs your app12needs (§2). Most apps need five or six; the rest are there when asked for.13141516> **Common setup (brand, conventions, env files, verification):** see [docs/skill-setup.md](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/docs/skill-setup.md).1718## Prerequisites1920- Auth in place (`/iblai-vibe-auth`, or vibe-starter).21- A real agent UUID — the last path segment of `https://os.ibl.ai/platform/<org-key>/<agent-uuid>`, or one created with `/iblai-vibe-agent-create`. **Never invent one.**22- The signed-in user must be the agent's owner, an org admin, or hold an editor role on it (`/iblai-vibe-agent-access`); otherwise tabs render "no access".2324## 1. The provider (once)2526```tsx27// app/(app)/agents/[mentorId]/layout.tsx28"use client";2930import { AgentSettingsProvider } from "@iblai/iblai-js/web-containers/next";31import { useParams } from "next/navigation";32import { useEffect, useState } from "react";33import { resolveAppTenant } from "@/lib/iblai/tenant";3435export default function AgentLayout({ children }: { children: React.ReactNode }) {36 const { mentorId } = useParams<{ mentorId: string }>();37 const [tenantKey, setTenantKey] = useState("");38 const [username, setUsername] = useState("");3940 useEffect(() => {41 try {42 const raw = localStorage.getItem("userData");43 if (raw) setUsername(JSON.parse(raw).user_nicename ?? "");44 } catch {}45 setTenantKey(resolveAppTenant());46 }, []);4748 if (!tenantKey || !username) return null;4950 return (51 <AgentSettingsProvider tenantKey={tenantKey} mentorId={mentorId} username={username} enableRBAC={false}>52 {children}53 </AgentSettingsProvider>54 );55}56```5758Suggested routes: `app/(app)/agents/[mentorId]/<tab>/page.tsx`, one per tab,59with a small tab strip (shadcn `Tabs` or plain links) in the layout. Each tab60component reads the agent from context — no props needed for the basics.6162## 2. The tabs6364Start with the **core six** (bold). Add the others only when the user asks.6566| Tab | What it does | Skill | REST twin (`iblai-api-*`, kind `api`) |67|---|---|---|---|68| **Settings** | name, description, avatar, category, visibility; copy to another org; delete | `/iblai-vibe-agent-setting` | [agent-setting](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-setting/SKILL.md) |69| **Prompts** | system prompt, proactive/study/guided prompts, suggested prompts | `/iblai-vibe-agent-prompt` | [agent-prompt](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-prompt/SKILL.md) |70| **LLM** | provider + model selection (incl. the org's own keys) | `/iblai-vibe-agent-llm` | [agent-llm](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-llm/SKILL.md) |71| **Datasets** | RAG: files, URLs, YouTube, crawl, GitHub; train/retrain | `/iblai-vibe-agent-dataset` | [agent-dataset](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-dataset/SKILL.md) |72| **Memory** | enable memory; manage memories and categories | `/iblai-vibe-agent-memory` (guide: `/iblai-vibe-memory-guide`) | [agent-memory](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-memory/SKILL.md) |73| **Tools** | enable/disable the agent's tools | `/iblai-vibe-agent-tool` | [agent-tool](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-tool/SKILL.md) |74| Access | RBAC sharing: editor / chat / analytics roles for users and groups | `/iblai-vibe-agent-access` | [agent-access](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-access/SKILL.md) |75| API | API keys for this agent | `/iblai-vibe-agent-api` | [agent-embed](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-embed/SKILL.md) |76| Billing | spend cap for the agent and per user | `/iblai-vibe-agent-billing` | [spend-caps](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/billing/iblai-api-spend-caps/SKILL.md) |77| Embed | embed code, styling, shareable links | `/iblai-vibe-agent-embed` | [agent-embed](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-embed/SKILL.md) |78| Evals | benchmarks, LLM-as-Judge reviews, manual scores, CSV export | `/iblai-vibe-agent-evals` | [agent-eval](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-eval/SKILL.md) |79| Grader | rubric-based grading with overrides | `/iblai-vibe-agent-grader` | — |80| History | conversation history with filters and export | `/iblai-vibe-agent-history` | [agent-history](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-history/SKILL.md) |81| LTI | LTI 1.3 launch, keys, tools, endpoints | `/iblai-vibe-agent-lti` | — |82| MCP | connectors (featured + custom), OAuth | `/iblai-vibe-agent-mcp` | [agent-mcp](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-mcp/SKILL.md) |83| Privacy | PII detection: redact / mask / block | `/iblai-vibe-agent-privacy` | [agent-privacy](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-privacy/SKILL.md) |84| Safety | moderation prompts, flagged content | `/iblai-vibe-agent-safety` | [agent-safety](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-safety/SKILL.md) |85| Sandbox | computing runtime / VM shell / Claw instances | `/iblai-vibe-agent-sandbox` | [agent-sandbox](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-sandbox/SKILL.md) |86| Skills | reusable Agent Skills, per-agent assignment, chat `/` picker | `/iblai-vibe-agent-skills` | [agent-skill](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-skill/SKILL.md) |87| Support | human support ticket inbox | `/iblai-vibe-agent-support` | [agent-support](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-support/SKILL.md) |88| Tasks | scheduled periodic agent tasks with run logs | `/iblai-vibe-agent-task` | — |89| Voice | voice selection and voice-call configuration | `/iblai-vibe-agent-voice` | — |90| Audit | who changed what and when | `/iblai-vibe-agent-audit` | [agent-audit](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-audit/SKILL.md) |91| Disclaimers | user agreement and advisory text | `/iblai-vibe-agent-disclaimer` | [agent-disclaimer](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/skills/agents/iblai-api-agent-disclaimer/SKILL.md) |9293Every tab skill has screenshots of the surface it mounts — open the skill before promising the user what they will see.9495## 3. Not tabs, but agent-related9697| Need | Skill |98|---|---|99| Create an agent from the app | `/iblai-vibe-agent-create` |100| Chat with an agent | `/iblai-vibe-agent-chat` (+ `/iblai-vibe-agent-chat-sidebar`) |101| Browse / star agents | `/iblai-vibe-agent-search` |102| Agent-scoped analytics | `/iblai-vibe-analytics` with `mentor_unique_id` |103104## Verify105106Run `/iblai-vibe-ops-test` before telling the user the work is ready:107`pnpm build`, `pnpm test`, then `npx playwright screenshot http://localhost:3000/agents/<uuid>/settings /tmp/agent-settings.png`.