SuperAPI AI 工具集

iblai-vibe-agent-tool

编程与开发

查看项目

更新于 10-16 03:37

技能介绍

用途:在 Next.js 应用中添加智能体 Tools 标签页,以可切换列表展示智能体工具,包含显示名、工具提示描述和启用/禁用开关;属于 agent-settings 系列中的一个标签页,所有标签页共用 AgentSettingsProvider 包裹。

前置条件:先完成认证设置(/iblai-vibe-auth);配置 MCP 服务器与技能(@iblai/mcp 写入 .mcp.json);路由需由 AgentSettingsProvider 在布局层包裹(见 /iblai-vibe-agent-setting 第二步);需向用户询问真实 mentorId(智能体 UUID),不要自行编造。环境检查要求项目根目录存在 iblai.env,并含 PLATFORM、DOMAIN、TOKEN 变量;缺失时按资料提示下载模板:curl -o iblai.env https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/iblai.env

用法:从 @iblai/iblai-js/web-containers/next 导入 AgentToolsTab 并挂载到如 app/(app)/agents/[mentorId]/tools/page.tsx。可通过 labels 属性(DeepPartial<ToolsTabLabels>)覆盖界面文案;相关导出含 AGENT_TOOLS_TAB_LABELS 与 ToolsTabLabels 类型。自定义可用的 MCP 工具:get_component_info("AgentToolsTab")、get_component_info("AgentSettingsProvider")。

验证:运行 /iblai-vibe-ops-test;pnpm build 需零错误,pnpm test 需 vitest 通过;启动 pnpm dev 后可用 npx playwright screenshot http://localhost:3000/agents/<id>/tool /tmp/agent-tool.png 做触屏测试。

注意事项:Redux store 必须包含 mentorReducer 与 mentorMiddleware;initializeDataLayer() 为 5 参数(v1.2+);@reduxjs/toolkit 通过 next.config.ts 的 webpack 别名去重;需安装对等依赖 pnpm add sonner @iblai/iblai-web-mentor;遵循 BRAND.md 品牌规范。

MCP 服务器 REST API:适用于在 AgentToolsTab 之外做自定义 UI,用于注册外部 MCP 服务器并绑定到智能体。端点前缀为 ${dmUrl}/api/ai-mentor/orgs/{org}/users/{user_id}/,其中 dmUrl 为 NEXT_PUBLIC_API_BASE_URL;仅组织管理员可用。工作流:在智能体上启用 MCP 工具、注册 MCP 服务器记录(URL、transport、auth_type)、创建连接并把凭证绑定到 scope、通过智能体设置端点分配服务器。transport 取值 sse | websocket | streamable_http;auth_type 取值 none | token | oauth2;auth_scope 取值 platform(默认)| mentor | user。auth_type=oauth2 + auth_scope=user 会触发聊天内 OAuth 握手。运行时解析顺序:用户级连接、智能体级连接、平台级连接、精选服务器回退(is_featured=true 的全局平台)。

OAuth 连接器 REST API:针对 oauth2 的 MCP 服务器,每个用户需先按 provider/service 授权一次。端点位于 ${dmUrl}/api/accounts/,认证头为 Authorization: Token {token}。管理员需在凭证库中存储 auth_{provider} 的 client_id、client_secret、redirect_uri。流程:列出服务、获取 auth_url 并打开、厂商回调后原样转发 code+state 到回调端点、回调返回持久化的 ConnectedService(id、provider、service、expires_at、scope),令牌由服务端自动刷新。

聊天内 MCP 事件(WebSocket / SSE):当 auth_type=oauth2 + auth_scope=user 且无用户级连接时,聊天消费者暂停会话并在现有聊天 socket 上发出事件,按 type 解析:oauth_required、oauth_connection_resolved、mcp_tools_retrieved、warning、error(ChatValidationError)。oauth_required 时打开 auth_url(弹窗或新标签页,部分厂商禁止 iframe),显示等待指示,不要关闭聊天 socket。时间常量:MCP_OAUTH_MAX_WAIT_SECONDS 为 300(5 分钟),MCP_OAUTH_POLL_INTERVAL_SECONDS 为 10。

限制:资料仅覆盖上述组件、API 与事件行为,未提供定价、平台支持范围或效果数据。