开发文档 查看 Markdown
本页目录
  1. 连接
  2. Tool 选择
  3. 标识与组合规则
  4. 按数据依赖组合
  5. 读取范围与完整性
  6. 失败处理

MCP Agent 使用指南

本指南用于把 Arkme 开放平台直接交给 Agent 使用。Tool 名称、描述、参数、返回结构、枚举和边界以 MCP Host 连接后取得的标准 tools/list 为准。

连接

配置 值
MCP Server URL https://openapi.jotmo.cc/mcp
Transport Stateless Streamable HTTP
认证 Header Authorization: Bearer arkme_...

MCP Host 通过 tools/list 发现当前可用能力,并通过 tools/call 执行调用。成功结果同时包含 structuredContent 和等价 JSON 文本;运行环境同时暴露两种表示时,使用 structuredContent,不要把两份等价内容同时加入分析上下文。

Tool 选择

只使用 tools/list 实际提供的能力,以描述和参数、返回合同选择 Tool;名称前缀不代表每个业务都提供同样的能力。

任务 选择规则
不知道稳定标识,只知道人物、会话或主题名称 若该业务提供名称解析,使用对应的 resolve_*,根据候选证据消歧
不知道有哪些会话、成员或主题 使用该业务提供的列举或查询 Tool 分页发现
已知时间范围、状态、参与人、发送人或容器等结构化条件 使用对应的 query_*
按正文关键词定位聊天或记录 若该业务提供关键词搜索,使用对应的 search_*;命中结果是检索证据
已知稳定标识,需要当前概览、状态或版本 使用返回这些字段的精确读取 Tool;已有所需事实时不重复读取
已知稳定标识,需要正文 使用该业务的正文读取 Tool;录音、通话使用转写查询分页读取,批量读取概览不返回转写正文
已知聊天消息坐标,需要它附近的对话 使用消息上下文读取 Tool
创建、发送、更新、移动、流转或删除 使用对应写 Tool,并遵循幂等键或版本合同

标识与组合规则

标识 业务含义 可传入
user_ref 当前调用账号范围内可跨业务复用的人物公开引用 participant_user_ref、participant_user_refs、target_user_ref、sender_user_refs 等人物引用字段;参与人筛选不等于发送人筛选
chat_session_uid 即我私聊、群聊或联系人会话 聊天会话、消息和发送能力的同名字段,以及通话查询的 chat_session_uids
chat_session_uid + sequence 当前会话中的消息 消息查询、搜索、精确读取与上下文能力的同名字段
conversation_uid 微信导入会话 微信导入消息、群成员读取的 conversation_uid,以及会话批量读取的 conversation_uids
message_uid 微信导入消息 微信导入消息批量读取的 message_uids;不是即我聊天消息坐标
recording_uid 一条录音 录音批量读取的 recording_uids、转写查询的 recording_uid
summary_uid 已保存的录音日总结或时间线版本 总结正文读取的 summary_uid;不能与 recording_uid 互换
speaker_uid 当前账号的正式录音说话人标记 录音查询的 speaker_uids;不是录音内的 speaker_index,不能用于其他业务
call_uid 一次通话 通话批量读取的 call_uids、转写查询的 call_uid
topic_uid Record 个人主题 记录容器或安排能力的同名字段
record_uid 一条记录 记录读写能力或安排关联字段
arrangement_uid 一条安排 安排查询、更新、流转和删除能力
team_ref 当前账号范围内的团队引用 团队成员查询与移除的 team_ref 字段

不同标识不可互换。topic_uid 只表示个人主题;即我聊天使用 chat_session_uid,微信导入会话使用 conversation_uid。团队与群的成员关系独立;user_ref 可跨能力复用,成员权限由目标团队或群分别判断。持有标识不代表拥有读取权限。

speaker_index 和 sender_index 分别是本页 speakers 和 senders 的零基索引,不是人物标识,不可跨页或跨业务复用。只有返回了 user_ref 才可将该引用用于人物关联;不能仅按显示名合并身份,通话的 participant_side 也不代表参与人本人。微信导入群成员是导入快照中的当前名单,不是历史发言人集合或微信实时成员。

按数据依赖组合

Tool 之间没有固定工作流。先确定任务要得到或改变的业务事实,再盘点已经掌握的稳定标识和仍缺少的输入;只调用能够补齐下一个缺失输入的 Tool。

缺少标识时,从当前业务实际提供的解析、列举、查询或搜索能力中选择。将输出中语义和类型完全匹配的字段传给下一次调用,不因名称或字符串形态相似而互换。

已有任务所需的公开标识或消息坐标时,直接传给消费 Tool,不重复调用产生它们的解析、列举、查询或搜索 Tool。需要复核当前状态或并发控制值时仍应使用精确读取 Tool;需要正文时选择返回正文的能力,概览与摘要不能代替正文。

解析 Tool 返回当前页候选和 has_more。确认候选唯一时可直接使用其标识,但本页只有一项且 has_more=true 不能据此认定全局唯一;存在多个候选时应根据用户提供的上下文选择,无法可靠区分时让用户确认;has_more=true 时原样传回 next_page_cursor 继续查询。继续分页时保持决定结果集的筛选条件不变;limit 只控制单页大小,可以调整。不得仅凭名称猜测。

写 Tool 结果未知时只能使用完全相同的业务参数重试;Tool 包含 idempotency_key 时,同一业务意图必须复用原值。expected_version 冲突时先重新读取当前事实,再决定新的写入意图。

读取范围与完整性

录音查询的 order 缺省 asc,desc 从最新录音开始;最新指录音开始时间,不是上传或修改时间。时间条件按录音重叠范围筛选,有人物条件时要求该人物在范围内有有效话语。转写查询不继承列表筛选;省略时间窗时读取整条录音,显式传入 start_at/end_at 时,按重叠选择完整原句话语,不做字级时间裁剪。

已有稳定标识时可直接读取所需正文,无须先读取概览。录音和通话的批量读取返回概览或状态,转写正文由各自的转写查询分页返回。

已确认的即我账号使用 user_ref:录音对应 speaker_user_refs,通话对应 participant_user_refs,微信导入会话对应 participant_user_ref。录音与通话多目标取并集。微信无已绑定私聊时返回空,不代表没有相关微信数据;可按用户给出的微信名称解析候选,不推断账号绑定。录音标记名称使用说话人解析,微信备注名、昵称或群名使用微信导入会话解析;名称不自动合并身份。

解析与人物筛选均读取当前可见状态,不创建人物、会话或绑定。页间标记或绑定变化可能改变结果,需要一致重读时从第一页重新查询。空页仍应检查 has_more,扫描未结束不能断言不存在目标。

时间字段的单位、上下界是否包含、默认范围和排序以各能力字段合同为准,不跨业务套用。微信导入会话按最新消息时间筛选,消息按发送时间筛选;分析某段时间内的全部历史消息时,不要用同一时间窗预先排除会话,应不带时间条件枚举会话,再逐个查询目标时间范围内的消息。

需要覆盖整个查询范围时,按该能力的分页字段逐页读取,直到 has_more=false,不能按本页条数判断是否结束。使用不透明游标时,将返回的 next_page_cursor 原样传回 page_cursor,保持账号、能力、对象和筛选条件不变;limit 只控制单页大小,可以调整。每页处理后累计中间结果,需要引用时保留业务标识与原文定位信息。

分页结束只表示本次可读结果已读完,不保证业务数据完整。返回 found=false 表示当前不可读,不能推断对象不存在或已删除;转写还需判断 transcript_state,群成员还需判断 roster_state。媒体元数据也不等于可下载的媒体正文。

录音转写的 bounded 模式不通过继续分页补回截断句尾;需完整原话时改用 text_mode=full,从首页重新读取。full 模式按 utterance_index 和字符坐标拼接同一句的续片,不跨录音或结果快照复用话语序号;坐标以 Unicode code point 计数。truncated=true 表示当前项不是整句,不等于续读后仍缺正文。确认片段连续覆盖 text_total_length,并检查 transcript_state。通话转写及其他正文或名单仍按各自的截断合同处理,不能套用录音 full 模式或假定分页能补回截断内容。

录音总结是自动生成的参考内容;核对原话时读取转写,不必先读取或等待总结。已有 summary_uid 可直接读正文;需要选择版本时按覆盖时间查询。读取时先检查 found 和 content_state,仅 ready 返回正文,JSON 分片须拼齐后解析。查询和读取均不触发生成。

群治理写入允许部分成功;业务拒绝见逐项 reason,基础设施错误可能已经生效。撤回以相同坐标重试;成员写复用原单条状态幂等;结果未知时核对当前状态,重新入群后不得自动重放旧的移出意图。治理查询固定 sequence 上界,但不提供数据库快照,晚到消息需另轮复查。

失败处理

HTTP 401 表示认证不可用;429 应遵循 Retry-After 退避;502 或 503 表示依赖或开放平台暂时不可用。进入 JSON-RPC 后的参数或业务失败以 CallToolResult.isError=true 返回,应根据错误文本修正参数或决定是否重试。