# CRIC物业AI 工具定义配置 ## 什么是“工具功能集”? 当我们使用 MCP 客户端连接 MCP Server 时,按照 MCP 协议的定义,一般会先调用 `tools/list` 方法,列出所有可用的 Tool(工具),并将这些工具交给客户端的大模型选用。然而: 1. 不同的大模型或者智能体平台,其智力水平不一,优化适配的工具定义范式也各不相同。统一的工具定义,可能无法获得最佳效果。 2. 不同用户的需求不同,可能只需要购买和使用部分工具,而不是全部工具。未购买的工具,无法成功调用,反而会干扰模型的选择。 因此,我们在 CRIC物业AI MCP Server 中引入了“工具功能集”(Feature Set)的概念,以此支持 MCP Server 的用户根据需要选用不同的工具定义范式。 ## 有哪些“工具功能集”? - `base`: 包含了“资讯日报”、“知识库”模块的 **基础功能集**。“知识库”模块中,提供了“获取可用知识库列表”工具和通用的“搜索知识库”工具,需要大模型具备一定的工具规划能力,能正确地先调用“获取可用知识库列表”拿到知识库 ID,再用该 ID 进行知识库搜索。 - `detail`: 包含“资讯日报”、“知识库”模块的 **详细功能集**。“知识库”模块中,不再提供“获取可用知识库列表”工具和通用的“搜索知识库”工具,但为每个可用的知识库提供了单独的带命名“搜索知识库”工具,不再需要大模型正确地先调用“获取可用知识库列表”拿到知识库 ID,减轻了一些智力负担。 ## 🗺️ 功能集对应工具清单 | 工具英文名称 | 功能描述 | 核心参数 | base | detail | |-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|------|--------| | `GetNewsForDate` | 获取资讯日报:根据YYYY-MM-DD形式的日期,获取物业行业资讯日报。每天的资讯日报包含的是前一天的行业新闻资讯。 | `date`(要获取资讯日报的日期,形如 YYYY-MM-DD。如果不提供,则默认为今天。建议使用两个月内的日期,更早的日期返回时间会较长。) | ✅ | ✅ | | `GetTrendingQuestions` | 获取行业热点问题列表:获取当前CRIC物业AI应用内物业行业热点问题的分类和列表,不包含回答。 | *无* | ✅ | ✅ | | `ListAvailableKnowledgeBases` | 获取可用知识库列表:获取可用知识库列表,后续可以使用其中的知识库搜索相关知识。【请务必注意,调用“搜索知识库”工具前必须要先使用本工具,得到 UUID 形式的知识库 ID。】 | *无* | ✅ | ❌ | | `SearchKnowledgeBase` | 搜索知识库:指定具体知识库ID,以及具体查询的问题,获取知识库搜索结果,以知识片段或知识文档全文的形式返回,供AI参考。【请务必注意,调用本工具前必须要先使用“获取可用知识库列表”工具,得到 UUID 形式的知识库 ID,否则无法成功调用本工具。】 | `knowledge_base_id`(知识库的 ID(UUID形式,来自“获取可用知识库列表”工具返回的结果))、`query`(查询的问题) 等 | ✅ | ❌ | | `SearchKnowledgeBase-{{kb_id_first_8_chars}}` | 根据当前 Access Token 可用的知识库列表,自动生成的搜索某个具体知识库的工具,一般有多个。搜索具体的某个知识库,获取知识库搜索结果,以知识片段或知识文档全文的形式返回,供AI参考。 | `query`(查询的问题) 等 | ❌ | ✅ | ## 如何配置“工具功能集”? 我们在为您生成 CRIC物业AI Access Token 时,会根据您购买的功能模块和应用场景,为您默认配置一个“工具功能集”。如果确实需要临时覆盖设置,您可以在 MCP Server 的环境变量中配置 `CRIC_WUYE_AI_FEATURE_SET`,或者在 SSE 调用的 URL Query 后面追加 `feature_set`,来覆盖默认的功能集。例如: ```sh CRIC_WUYE_AI_FEATURE_SET=detail npx -y @wuye-ai/mcp-server-wuye-ai ``` ```json { "mcpServers": { "CRIC物业AI": { "transportType": "sse", "url": "https://mcp.wuye.dichanai.com/sse/mcp?token={{您的 CRIC物业AI Access Token}}&feature_set=detail" } } } ``` ## 工具名称为何都是英文?不能像以前一样用中文吗? 根据 [Model Context Protocol(MCP协议) SEP-986](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) 的要求,工具名称必须符合以下规范: - 长度必须在 1 到 64 个字符之间。 - 区分大小写。 - 只能包含大小写字母、数字和下划线(_)、连字符(-)、点(.)和反斜杠(/),且必须以小写字母开头和结尾。 - 不能包含空格、逗号或其他特殊字符。 因此,我们在 CRIC物业AI MCP Server 中,工具名称使用英文,以确保兼容性和规范性。 ## 工具调用输出格式是怎样的? 在 CRIC物业AI MCP Server 中,工具调用的输出格式可以通过环境变量 `CRIC_WUYE_AI_OUTPUT_FORMAT` 或 URL Query 参数 `output` 来配置。支持的输出格式包括: - `raw`: 默认行为。不做特殊转化,直接返回工具调用的原始结果(对象 JSON.stringify )。 - `text`: 转化为对阅读者更加友好的 Markdown 文本格式,适合直接展示给用户。