Cordys CRM 全局线索商机信息检索智能体!详细搭建教程 - 实践
目录
一、背景介绍
在 Cordys CRM 日常使用中,用户查询线索商机、客户跟进状态时往往需手动查询数据,筛选信息。今天带来的高级查询智能体,可以通过集成 AI 时间提取、代码片段解析、时间戳计算与 Cordys MCP 服务,实现直接提问AI即可获得答案的效果,显著提升 CRM 信息检索效率与操作便捷性。
二、思路介绍
1.明确核心需求:聚焦 CRM 线索 / 客户跟进状态查询场景,确定需支持自然语言时间解析、标准化时间戳转换、Cordys MCP 服务调用、多场景查询反馈四大核心目标;
2.时间处理链路搭建:创建高级编排应用后,通过 AI 对话节点提取用户查询中的时间描述并生成结构化 JSON,经判断器筛选有时间范围的请求,再用代码片段提取工具获取纯净 JSON 数据,最后通过自定义 Python 工具将时间描述转换为 MCP 所需的毫秒级时间戳;
3.MCP 调用与查询闭环:统一配置 AI 对话节点,选择适配模型与 Cordys MCP 服务,填写标准化系统 / 用户提示词,开启工具执行过程与返回内容输出,实现 “时间处理 - 服务调用 - 结果反馈” 的查询闭环;
4.多场景适配优化:针对指定日期、客户名、电话号码三类核心查询场景,完善节点参数配置与工具联动逻辑,确保演示效果覆盖主流使用需求,保障智能体实用性与稳定性。
三、工作流展示
四、流程展示
组件 | 设置 | 截图 |
基本信息 | 修改名称、描述及开场白 | ![]() |
开始 | 无 | |
| AI对话 | ①重命名节点名称 ②选择AI模型 ③填写系统提示词和用户提示词 ④关闭返回内容按钮 | ![]() |
| 判断器 | 配置if条件语句 | ![]() |
| 代码片段提取工具 | ①配置输入参数 ②关闭返回内容 | ![]() |
| 自定义工具 | ①配置输入参数 ②填写工具内容 ③关闭返回内容 | ![]() |
| AI对话节点 | ①选择AI模型 ②填写系统提示词和用户提示词 ③配置Cordys MCP ④打开输出MCP/工具执行过程和返回内容两个按钮 | ![]() |
五、详细操作步骤
①创建代码片段提取工具。我们搭建的智能体需要使用它从markdown格式的文本里提取json数据。在MaxKB工具页面,选择从工具商店创建,在工具商店菜单中的内容处理下面选择代码片段提取工具进行添加。

②配置Cordys MCP。
在MaxKB工具页面,选择创建MCP,填写名称和MCP服务配置。
配置示例:
{
"cordys-crm-mcp-server": {
"url": "http://:8082/sse",
"transport": "sse",
"headers": {
"X-Access-Key": "ryXMgJzdrMeOwBVE",
"X-Secret-Key": "a4b5c5a58c4e49f2b2b683ec6699f1dd"
}
}
}
X-Access-Key以及X-Secret-Key可以在Cordys个人信息的API Keys里创建获取

③创建高级编排应用,在基本信息中修改名称、描述以及开场白:
应用名称及描述:
高级查询智能体
开场白示例:
您好,我是 Crm 查询小助手,您可以向我查询线索、线索池、客户、商机、公海、联系人等信息。可以使用日期范围查找。
- 查询昨天华东地区的线索
- 查询星辰云科技这个客户是否有人在跟进
- 查询40000000140这个电话的线索是否有人在跟进
④添加AI对话节点,修改节点名称:提取时间阶段,选择AI模型,填写系统提示词,
系统提示词示例:
# 角色
你是一位专业且精准的时间描述提取专家,凭借扎实的专业知识和敏锐的语言洞察力,专注于从用户问题中准确无误地识别和提取各类时间范围信息。## 技能
### 技能 1: 时间描述提取
1. 深入细致地分析用户输入的问题,运用先进的自然语言理解技术,精准识别其中包含的时间范围描述。
2. 熟练且准确地将识别到的时间描述转化为标准化的结构化数据,保证数据的规范性和一致性。
3. 若涉及到时间维度查询,将 has_time_range 设置为true;否则设置为false。
4. 全面支持提取多种时间类型,具体涵盖:**基础时间维度**:
- `today` - 今天
- `yesterday` - 昨天
- `tomorrow` - 明天
- `this_week` - 本周
- `last_week` - 上周
- `this_month` - 本月
- `last_month` - 上月
- `this_year` - 本年
- `last_year` - 去年**相对时间维度**:
- `past_7_days` - 过去7天内
- `next_7_days` - 未来7天
- `past_30_days` - 过去30天内
- `next_30_days` - 未来30天**最近N维度**:
- `recent_days` - 最近N天
- `recent_weeks` - 最近N周
- `recent_months` - 最近N月
- `recent_years` - 最近N年**自定义范围**:
- `custom_range` - 自定义时间范围
4. 输出必须严格遵循以下JSON格式:
```json
{
"has_time_range": true/false,
"time_type": "today|yesterday|tomorrow|this_week|last_week|this_month|last_month|this_year|last_year|past_7_days|next_7_days|past_30_days|next_30_days|recent_days|recent_weeks|recent_months|recent_years|custom_range",
"value": 数字,
"unit": "days|months|years|hours|none",
"start_time": "YYYY-MM-DD",
"end_time": "YYYY-MM-DD",
"description": "原始时间描述文本",
"confidence": 0.0-1.0
}
```5. 处理规则:
**类型映射**:
将“今天”准确映射为 today
将“最近3天”映射为 recent_days 并设置 value=3
将“2024-01-01到2024-01-15”映射为 custom_range 并设置 start_time/end_time**自定义范围**:
当用户提供具体起止日期时,必须准确设置为custom_range
同时必须完整提供start_time和end_time**数值提取**:
从“最近3天”准确提取 value=3, unit="days"
从“过去2周”准确提取 value=2, unit="weeks"
6. 示例:
**示例1**
用户输入:"查看最近7天的销售数据"
```json
{
"has_time_range": true,
"time_type": "recent_days",
"value": 7,
"unit": "days",
"start_time": "",
"end_time": "",
"description": "最近7天",
"confidence": 0.95
}
```
**示例2**
用户输入:"分析2024-01-01到2024-01-15的数据"
```json
{
"has_time_range": true,
"time_type": "custom_range",
"value": 1,
"unit": "none",
"start_time": "2024-01-01",
"end_time": "2024-01-15",
"description": "2024-01-01到2024-01-15",
"confidence": 0.98
}
```
**示例3**
用户输入:"今天的数据"
```json
{
"has_time_range": true,
"time_type": "today",
"value": 1,
"unit": "none",
"start_time": "",
"end_time": "",
"description": "今天",
"confidence": 0.99
}
```
## 限制
- 仅围绕用户问题中的时间描述展开深入分析和精准提取,绝不涉及其他无关内容。
- 输出内容必须严格按照规定的JSON格式进行组织,杜绝出现任何格式偏差。
- 确保对时间描述的识别和转换高度准确无误,全力保证数据的可靠性。
- 自定义范围必须完整提供start_time和end_time。
- time_type必须严格限定在代码支持的范围内。
示例这里可以看到,遇到带有时间信息的查询语句时,比如用户给出“查询昨天的线索”,AI节点会将has_time_range这个参数置为true,然后输出这一串AI模型从用户输入提取的json信息,就是将识别到的时间描述转化为标准化的结构化数据。一般情况下不需要修改提示词,因为time_type是后面要用到的python代码里定义的参数,大家修改的时候需要修改两个地方:这里的系统提示词里的参数,以及后面python代码里的参数,建议大家直接复制就好。
填写用户提示词,
用户提示词示例:
当前时间:
{{global.time}}问题:
{{开始.question}}
给出当前的时间,以及用户问题,让AI能够处理“昨天,今天”之类的时间信息。
关闭返回内容按钮。
⑤在提取时间阶段节点后添加判断器节点,在if条件选择AI对话节点的AI回答内容包含false。
⑥在判断器节点的else条件分支后添加代码片段提取工具节点,输入参数input_str选择提取时间阶段节点的AI回答内容,split_str填写json,关闭返回内容。这样做是为了从AI回答内容的markdown格式文本中,提取所需要的json格式数据。
⑦在代码片段提取工具节点后添加自定义工具节点,修改节点名称:计算时间。添加输入参数:time_description和current_date_str,数据类型都选择string,来源选择引用参数,打开必填按钮;time_sescription选择代码片段提取工具的结果,current_date_str选择全局变量里的当前时间,然后在下面代码框添加一段python代码,用于根据AI提取的时间描述和指定的当前日期,来计算出对应的时间范围,并返回毫秒级时间戳。简单来说,就是将代码片段提取工具节点得到的json信息转换为mcp工具调用时需要用到的时间戳。
python代码示例:
import json
from datetime import datetime, timedelta
def calculate_custom_range(current_dt, value, unit):
"""
根据数值和单位计算自定义时间范围
Args:
current_dt: 当前日期时间
value: 数值
unit: 单位 (days, weeks, months, years)
Returns:
tuple: (start_time, end_time)
"""
if unit == "days":
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = (current_dt + timedelta(days=value - 1)).replace(hour=23, minute=59, second=59, microsecond=999999)
elif unit == "weeks":
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = (current_dt + timedelta(weeks=value - 1)).replace(hour=23, minute=59, second=59, microsecond=999999)
elif unit == "months":
# 计算value个月后的日期
year = current_dt.year
month = current_dt.month + value
while month > 12:
month -= 12
year += 1
try:
end_time = datetime(year, month, current_dt.day, 23, 59, 59, 999999)
except ValueError:
# 如果日期无效(如2月30日),则使用该月最后一天
if month == 12:
next_month = datetime(year + 1, 1, 1)
else:
next_month = datetime(year, month + 1, 1)
end_time = next_month - timedelta(days=1)
end_time = end_time.replace(hour=23, minute=59, second=59, microsecond=999999)
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
elif unit == "years":
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(year=current_dt.year + value, hour=23, minute=59, second=59, microsecond=999999)
else:
# 默认按天处理
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = (current_dt + timedelta(days=value - 1)).replace(hour=23, minute=59, second=59, microsecond=999999)
return start_time, end_time
def calculate_months_ago(current_dt, months):
"""
计算N个月前的日期
Args:
current_dt: 当前日期时间
months: 月数
Returns:
datetime: N个月前的日期
"""
year = current_dt.year
month = current_dt.month - months
# 处理跨年情况
while month <= 0:
month += 12
year -= 1
# 确保日期有效(比如2月30日的情况)
day = current_dt.day
max_day = get_month_days(year, month)
if day > max_day:
day = max_day
return datetime(year, month, day, 0, 0, 0, 0)
def get_month_days(year, month):
"""
获取指定年份月份的天数
Args:
year: 年份
month: 月份
Returns:
int: 该月的天数
"""
if month == 2:
# 闰年判断
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
return 29
else:
return 28
elif month in [4, 6, 9, 11]:
return 30
else:
return 31
def calculate_time_range_enhanced(time_description, current_date_str):
"""
根据AI提取的时间描述计算时间范围
Args:
time_description: AI提取的时间描述JSON字符串
current_date_str: 当前日期字符串,可能包含时间部分
Returns:
list: 包含start_time和end_time的时间戳列表
"""
# 解析时间描述字符串为字典
try:
time_desc_dict = json.loads(time_description)
print(f"解析到的时间描述: {time_desc_dict}")
except json.JSONDecodeError:
print(f"错误: 无法解析时间描述 '{time_description}'")
# 如果解析失败,使用默认值
time_desc_dict = {
"has_time_range": True,
"time_type": "today",
"description": "今天",
"confidence": 0.9
}
# 清理并解析当前日期字符串
current_date_str = current_date_str.strip()
# 尝试不同的日期时间格式
try:
# 首先尝试完整日期时间格式
current_dt = datetime.strptime(current_date_str, "%Y-%m-%d %H:%M:%S")
except ValueError:
try:
# 如果失败,尝试只有日期的格式
current_dt = datetime.strptime(current_date_str, "%Y-%m-%d")
except ValueError:
try:
# 尝试其他可能的日期格式
current_dt = datetime.strptime(current_date_str, "%Y/%m/%d")
except ValueError:
# 如果所有格式都失败,使用当前时间
current_dt = datetime.now()
print(f"警告: 无法解析日期字符串 '{current_date_str}',使用当前时间: {current_dt}")
# 确保我们只使用日期部分,忽略时间部分
current_dt = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
time_type = time_desc_dict.get("time_type", "today")
value = time_desc_dict.get("value", 1) # 默认值
# 基础时间维度处理
if time_type == "today":
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "yesterday":
yesterday = current_dt - timedelta(days=1)
start_time = yesterday.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = yesterday.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "tomorrow":
tomorrow = current_dt + timedelta(days=1)
start_time = tomorrow.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = tomorrow.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "this_week":
# 本周(周一到周日)
start_time = current_dt - timedelta(days=current_dt.weekday())
start_time = start_time.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = start_time + timedelta(days=6)
end_time = end_time.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "last_week":
# 上周
start_time = current_dt - timedelta(days=current_dt.weekday() + 7)
start_time = start_time.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = start_time + timedelta(days=6)
end_time = end_time.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "this_month":
start_time = current_dt.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
# 计算当月最后一天
if current_dt.month == 12:
next_month = current_dt.replace(year=current_dt.year + 1, month=1, day=1)
else:
next_month = current_dt.replace(month=current_dt.month + 1, day=1)
last_day = next_month - timedelta(days=1)
end_time = last_day.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "last_month":
# 计算上个月
if current_dt.month == 1:
last_month = current_dt.replace(year=current_dt.year - 1, month=12, day=1)
else:
last_month = current_dt.replace(month=current_dt.month - 1, day=1)
start_time = last_month.replace(hour=0, minute=0, second=0, microsecond=0)
# 计算上个月最后一天
end_time = current_dt.replace(day=1) - timedelta(days=1)
end_time = end_time.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "this_year":
start_time = current_dt.replace(month=1, day=1, hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(month=12, day=31, hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "last_year":
start_time = current_dt.replace(year=current_dt.year - 1, month=1, day=1, hour=0, minute=0, second=0,
microsecond=0)
end_time = current_dt.replace(year=current_dt.year - 1, month=12, day=31, hour=23, minute=59, second=59,
microsecond=999999)
# 相对时间维度处理
elif time_type == "past_7_days":
start_time = (current_dt - timedelta(days=6)).replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "next_7_days":
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = (current_dt + timedelta(days=6)).replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "past_30_days":
start_time = (current_dt - timedelta(days=29)).replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "next_30_days":
start_time = current_dt.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = (current_dt + timedelta(days=29)).replace(hour=23, minute=59, second=59, microsecond=999999)
# 最近N天/月/周/年处理
elif time_type == "recent_days":
# 最近N天:包含今天在内的过去N天
start_time = (current_dt - timedelta(days=value - 1)).replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "recent_weeks":
# 最近N周:包含本周在内的过去N周
start_time = (current_dt - timedelta(weeks=value - 1, days=current_dt.weekday()))
start_time = start_time.replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "recent_months":
# 最近N月:包含本月在内的过去N个月
start_time = calculate_months_ago(current_dt, value - 1)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
elif time_type == "recent_years":
# 最近N年:包含今年在内的过去N年
start_time = current_dt.replace(year=current_dt.year - (value - 1), hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
# 自定义时间范围处理
elif time_type == "custom_range":
# 处理自定义范围
custom_start = time_desc_dict.get("start_time")
custom_end = time_desc_dict.get("end_time")
value = time_desc_dict.get("value", 1)
unit = time_desc_dict.get("unit", "days")
if custom_start and custom_end:
# 如果有具体的开始和结束时间,解析它们
try:
start_time = datetime.strptime(custom_start, "%Y-%m-%d").replace(hour=0, minute=0, second=0,
microsecond=0)
end_time = datetime.strptime(custom_end, "%Y-%m-%d").replace(hour=23, minute=59, second=59,
microsecond=999999)
except ValueError:
# 如果解析失败,根据value和unit计算
start_time, end_time = calculate_custom_range(current_dt, value, unit)
else:
# 根据value和unit计算自定义范围
start_time, end_time = calculate_custom_range(current_dt, value, unit)
else:
# 默认返回最近30天
start_time = (current_dt - timedelta(days=29)).replace(hour=0, minute=0, second=0, microsecond=0)
end_time = current_dt.replace(hour=23, minute=59, second=59, microsecond=999999)
# 转换为毫秒级时间戳
start_timestamp = int(start_time.timestamp() * 1000)
end_timestamp = int(end_time.timestamp() * 1000)
print(f"计算的时间范围: {start_time} 到 {end_time}")
print(f"对应时间戳: [{start_timestamp}, {end_timestamp}]")
return [start_timestamp, end_timestamp]
关闭返回内容。
⑧在if条件后面和计算时间工具后面连接同一个AI对话节点,选择AI模型,填写系统提示词,在这里我们提示AI调用各种mcp服务的工具,以及输出的格式,这里是对电话号码进行了脱敏处理,大家在使用时可以将技能的第13点删掉。
系统提示词示例:
# 角色
你是一位专业且极为高效的信息查询助手,具备精准无比的判断能力,针对不同的查询对象,能恰如其分地调用对应的专业工具开展信息查询工作,为用户提供详实、精确的相关信息。## 技能
### 技能 1: 信息查询
1. 当用户提出查询请求时,迅速且精准地判断查询对象。
- 若查询客户相关信息,调用客户查询工具:account_search。
- 若查询公海相关信息,调用公海查询工具:pool_account_search。
- 若查询线索相关信息,调用线索查询工具:lead_search。
- 若查询线索池相关信息,调用线索池查询工具:pool_lead_search。
- 若查询商机相关信息,调用商机查询工具:opportunity_search。
- 若查询联系人相关信息,调用联系人查询工具:contact_search。2. 熟练且灵活运用相应工具获取信息,精心且细致地将查询到的信息进行全面整理,以清晰直观、一目了然的方式反馈给用户。反馈时尽量采用通俗易懂的语言解释信息含义。
3. 调用工具时 pageSize 参数默认为 100。查询过程中实时、及时反馈查询进度,若出现异常状况,迅速向用户反馈具体情况,并说明可能的原因及解决建议。
5. 返回的时间字段信息严格按照时间戳毫秒格式化成年-月-日的规范格式。若用户对时间格式有特殊要求,尽量满足用户需求。
6. 结果统一用易于阅读和理解的表格形式进行展示,为表格添加适当的注释或说明,确保数据呈现具备高度的直观性和易读性。
7. 如果用户问题当中有产品相关描述,比如 js、mk、jms、ms、de 等信息(不区分大小写),从以下值里面精准筛选:
[MeterSphere 企业版、JumpServer 企业版、MaxKB 专业版、MaxKB 企业版、DataEase 企业版、DataEase 专业版、DataEase 嵌入式版、Cordys CRM 企业版、SQLBot 专业版、1Panel 专业版、原厂专业服务 (人天服务)、KubeOperator 容器平台、第三方产品 (Gitea)、第三方产品 (TAPD)、第三方产品 (其他)、高校合作计划、MeterSphere 企业版、JumpServer 社区版、第三方产品 (公有云服务)、CloudExplorer 云管平台]
筛选时对每个产品名称进行详细解释,方便用户理解。8. 如果查询结果 "total": 0,明确输出返回"无匹配数据",并建议用户检查查询条件是否准确。
9. 如果涉及到调用多个工具,依次有序轮询调用准确的工具查询,然后全面汇总结果并整理成规范表格输出。在汇总过程中,对重复数据进行合理处理,避免信息冗余。
10. 在反馈信息之前,你需要先把调用工具的所有详细描述以及枚举值和入参 JSON 清晰地打印出来,并对每个工具进行简要的功能说明。
11. 如果有时间范围的查询,请使用 [计算的时间] 拼接到参数当中。
12. 最后可以简单总结一下查询到的数据。
13. 其中如果有手机号码信息,则展示脱敏后展示,如:186****2620
## 限制:
- 仅围绕与用户查询对象紧密相关的信息进行回答,坚决不回应任何无关话题。若用户询问无关内容,友好提示用户当前 Bot 仅专注于信息查询相关内容。
- 输出内容必须完全基于相应工具查询到的信息,严禁随意编造信息。若查询工具出现数据缺失或不完整情况,如实告知用户并说明可能影响。
## 回复示例### 调用工具描述及枚举值和入参 JSON
[此处详细列出调用工具的所有描述以及枚举值和入参 JSON,并对每个工具进行简要功能说明]**有查询结果的情况**
<example>
## 关键词: [这里清晰呈现提取所有的关键词]
### 线索
[展示表头为:公司、线索所有人、部门、产品类型、手机、最新跟新日期、创建时间]
[这里详细呈现查询出来所有的线索信息,并对部分关键信息进行简要解释]
### 线索池
[展示表头为:公司、产品类型、线索池名字、手机、最新跟新日期]
[这里详细呈现查询出来所有的线索池信息,并对部分关键信息进行简要解释]
### 客户
[展示表头为:客户名、客户所有人、部门、创建时间]
[这里详细呈现查询出来所有的客户信息,并对部分关键信息进行简要解释]
### 公海
[展示表头为:客户名、公海名称、最新跟新日期]
[这里详细呈现查询出来所有的公海信息,并对部分关键信息进行简要解释]
### 商机
[展示表头为:商机名、客户名、商机所有人、部门、产品类型、商机阶段、最新跟新日期、创建时间]
[这里详细呈现查询出来所有的商机信息,并对部分关键信息进行简要解释]
### 联系人
[展示表头为:客户名、姓名、手机、负责人、部门、创建时间]
[这里详细呈现查询出来所有的联系人信息,并对部分关键信息进行简要解释]
</example>**无结果的情况**
<example>
无查询结果。建议你检查查询条件是否准确,以便获取到相关数据。
</example>## 示例结束
填写用户提示词,这里我们给出了用户的问题,当前的时间以及计算出来的时间戳,用于Cordys MCP调用工具进行查询。
用户提示词示例:
## 问题:
{{开始.question}}
## 当前时间:
{{global.time}}
## 计算的时间
{{计算时间.result}}
最后选择我们创建的cordys mcp,打开输出 mcp 工具执行过程以及返回内容两个按钮。
六、演示效果
1.通过指定日期来查询线索



2.通过客户名查询客户是否有人在跟进



3.通过电话号码查询线索是否有人在跟进


七、总结
Cordys CRM 全局线索商机信息检索智能体,基于 MaxKB 平台搭建,核心实现了 “自然语言时间解析 - 标准化时间戳计算 - Cordys MCP 服务调用 - 多场景查询反馈” 的全流程自动化。智能体不仅支持多样化查询场景,还简化了操作门槛,无需手动配置时间参数与 MCP 调用细节,即可快速获取准确的线索商机与客户跟进信息,为 CRM 用户节省大量操作时间,提升工作效率与数据查询准确性。
八、详细视频地址
【Cordys CRM 全局线索商机信息检索智能体!详细搭建教程⚡】 https://www.bilibili.com/video/BV1Bq1ZBGEoS/?share_source=copy_web&vd_source=34908678c6a81884e5cbfc9d1b5226c3








浙公网安备 33010602011771号