docs/images/agents/skills/sales-opportunity-order-builder.md
帮助销售快速搭建个人销售知识库与商机商单跟进工作流。先完成环境初始化 (AgentPlan APIKey → 创建 OV 库 → 取得库凭据 → 飞书 CLI),再进入三类业务场景 (上传资料 / 查询商机 / session 沉淀)。
这是一个 Builder:优先帮用户把环境搭好、把工作流跑通,而不是直接跳到商机 问答。某项依赖缺失时,给出明确的下一步并暂停依赖它的后续操作,不要伪造结果。
OpenViking 相关操作分属两个不同的面,各用各的 Key,混用是本 skill 最常见的 故障来源:
| 控制面(管库) | 数据面(管数据) | |
|---|---|---|
| 做什么 | 创建/查询/删除 OV 库,获取库的凭据 | 向库里上传文档、检索、写记忆 |
| 用什么工具 | OpenViking 控制面 MCP(mcp-server-openviking-controlplane,工具:list_collections / create_collection / get_collection / get_usage / get_collection_api_key),或同包 CLI ov-cp | OpenViking 数据面 MCP / ov CLI(add_resource / search / remember 等) |
| 用哪个 Key | AgentPlan APIKey(环境变量 AGENTPLAN_API_KEY,Bearer) | OpenViking APIKey(每个库一把,创建后单独获取) |
两个 Key 的边界:
如果发现读写库数据时用的是 AgentPlan APIKey(或反过来),立即停止并纠正。
AGENTPLAN_API_KEY 环境变量、已安全记录的凭据、会话安全上下文)
中是否已有 AgentPlan APIKey。只判断"是否存在/是否可用",不要输出明文。list_collections 或
ov-cp list)——只读操作不消耗 AgentPlan 额度。ProductUnordered("尚未在 OpenViking 开通 AgentPlan
抵扣"),说明用户买了 Key 但没开通抵扣,引导回同一控制台页面完成开通,
不要重试 create。创建 OV 库需要控制面 MCP 或 ov-cp CLI。先检测当前环境是否已具备
(MCP 工具列表里有没有 create_collection,或 ov-cp --help 能否执行)。
如果不具备,不要默默安装——明确询问用户,说清两种方式让用户选。
包发布在 PyPI(mcp-server-openviking-controlplane,MCP server 和 ov-cp
CLI 在同一个包里),境内网络给 uv 配 PyPI 镜像即可,不依赖 GitHub:
一次性使用(推荐先试这个):不落任何持久配置,用 uvx 临时拉起 CLI:
# 境内网络可加:export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
AGENTPLAN_API_KEY=<已配置的key> uvx --from mcp-server-openviking-controlplane ov-cp list
安装为 MCP(适合长期使用):向用户展示将写入 .mcp.json 的内容,
经确认后再写:
{
"mcpServers": {
"openviking-controlplane": {
"command": "uvx",
"args": ["mcp-server-openviking-controlplane"],
"env": { "AGENTPLAN_API_KEY": "${AGENTPLAN_API_KEY}" }
}
}
}
需要征求同意的原因:安装会改动用户的 MCP 配置、引入外部代码,且随后的建库 动作计费。用户拒绝安装时,说明没有控制面能力就无法自动建库,但仍可引导用户 在控制台手工建库后回来继续(见 Step 3 的控制台路径)。
备选安装源:
uvx --from 'git+https://github.com/volcengine/mcp-server#subdirectory=server/mcp_server_openviking_controlplane' ov-cp(需要能访问 GitHub)。两条路都失败时,走控制台手工建库路径。
sales_opportunity_kb),中文名可能不被接受;可另记一个中文别名用于展示。create_collection(或 ov-cp create --name <库名>)。
个人版走默认参数即可,模型配置会自动回落到 AgentPlan。ResourceID(形如 ov-xxxxxxxx),此时库还没就绪,返回结果里
也没有 OpenViking APIKey——这是正常的,进入 Step 4。库创建后处于 INIT 状态,需要轮询到 READY 才能取凭据(INIT 阶段取
api-key 会超时,不是故障,等一会重试即可):
get_collection(或 ov-cp get <ResourceID>)轮询 Status,
直到 READY(通常几分钟内)。get_collection_api_key(或 ov-cp api-key <ResourceID>),返回
{UserID, Role, ApiKey} —— 这里的 ApiKey 就是该库的
OpenViking APIKey,UserID 就是 user 身份。ResourceID、UserID、OpenViking APIKey。回复中只说明
"已安全记录",不展示明文。控制台兜底路径(MCP 不可用、api-key 调用被拦、或用户已有存量库时同样适用): 引导用户打开火山引擎 OpenViking Service 控制台 → 在左侧选择对应的库 → 进入**「鉴权管理」** → 点击**「显示鉴权凭证」**,即可拿到该库的 OpenViking APIKey。让用户把 Key 配置到数据面工具的环境变量/配置中,不要粘贴进聊天。
以下条件全部满足后,进入业务引导:AgentPlan APIKey 可用;OV 库已创建或已 选择且状态 READY;OpenViking APIKey 与 user 身份已记录;飞书 CLI 可用。
使用以下结构回复:
销售商机商单 Builder 已就绪。
已完成:
1. AgentPlan APIKey 可用(用于建库、联网、数据集查询)。
2. OpenViking 个人库「[库名]」已就绪(READY)。
3. 该库的 OpenViking APIKey 与 user 身份已安全记录(用于读写库数据)。
4. 飞书 CLI 已就绪。
你可以直接这样说:
1. **上传资料**:把这份飞书文档上传到"[库名]"。
2. **查询商机**:总结某商机当前进展、风险点和下一步动作。
3. **生成跟进计划**:基于已上传材料,生成下一次客户沟通提纲。
4. **沉淀记忆**:每天 19:00 把今天销售相关 session 摘要上传到"[库名]"。
也可以先发我第一批飞书文档链接,我帮你上传。
把飞书文档、会议纪要、方案材料、报价说明、商单复盘等上传到 OV 库。
## 结论
[一句话概括]
## 当前进展
## 关键风险
## 下一步建议
## 需要补充的资料
推荐 query 示例:
把 Mira 中的销售跟进会话、复盘内容定时上传到 OV,形成可查询的个人销售记忆。
建议上传结构:
# 销售跟进会话沉淀
## 基本信息(时间 / 关联商机 / 来源:Mira session)
## 摘要
## 客户关注点
## 风险与阻塞
## 下一步待办
| 现象 | 含义 | 处理 |
|---|---|---|
| 无 AgentPlan APIKey | 未购买/未配置 | 给控制台链接,暂停建库 |
create 返回 ProductUnordered | 未开通 AgentPlan 抵扣 | 引导控制台开通抵扣,不要重试 |
| create 返回超限 | 已达 20 库上限 | 让用户删除闲置库或复用现有库 |
| api-key 调用超时 | 库还在 INIT | 轮询 get_collection 到 READY 再取 |
控制面 MCP / ov-cp 不可用 | 缺控制面能力 | 走 Step 2 征求安装同意,或控制台手工建库 |
| 拿不到 OpenViking APIKey | — | 控制台「鉴权管理 → 显示鉴权凭证」兜底 |
| 数据面读写鉴权失败 | 可能 Key 用混了 | 确认用的是该库的 OpenViking APIKey |
| 飞书 CLI 不可用 | — | 给官方安装链接,等待安装/授权 |
| 查询无结果 | 库里没有相关内容 | 说明未找到,建议上传哪些文档 |