Atlas MCP 服务器
个人助手身份:使用 agent.team.inspect / agent_team_inspect 读取 {"view":"assistants"}。通过 agent.team.change 的 operation: assistant.create 或 assistant.update 操作创建或修改,提供 identity: {name, avatarKey};修改还须提供 assistantId 和 revision。头像键为 human-01 至 human-08。沿用带幂等键的提案与明确确认流程;CLI 使用 atlas assistants inspect/propose/confirm。总助理为固定入口,元数据 ID head 不能用作会话 ID。身份及其提案仅本人可见,仍需通过内测资格校验。自定义助手聊天通过单独验证的私有会话能力提供;创建身份不会创建执行代理、调用模型或授予权限。
通过 Streamable HTTP 将 MCP 客户端连接到 Atlas。每次调用都需要一个受委托的 Atlas Bearer 令牌,并限定在该令牌所属的组织范围内。所有写操作都必须先经过一次由人工确认的提案(propose)。
首次使用:连接并读取客户
准备:支持 Streamable HTTP 和自定义请求头的客户端、测试环境账户及包含 crm:read 的委托令牌。令牌属于一个组织,不要共享或写入对话。
- 按 身份验证 获取令牌,并按 客户端配置 设置测试环境端点及 Bearer 请求头。
- 连接后检查工具列表,使用
crm_customers_search,参数为{"q":"Acme","limit":5};将 Acme 替换为你可以访问的客户名称。 - 阅读返回的结构化结果。从
data.items读取该客户的id,再用{"customer_id":"<returned-id>"}调用crm_customer_profile_read查看档案。
预期结果:成功搜索返回 completed 和匹配列表;空列表也是有效结果。这些读取不会创建客户。
发布状态
已在 staging 就绪。MCP profile 1.14 提供 139 个受治理的工具:在 profile 1.13 的界面之上,新增公司动态分享准备(crm_engagement_milestone_sharing_prepare_propose、_confirm、_reject)——按需基于一条 F08 已批准的知识声明准备一份公司动态分享草稿:该声明必须当前能在来源有效版本中解析为已确认且对该客户许可,并与已确认的客户匹配证据配对;缺失的批准或匹配证据会被指明且不创建任何提案(#2126)。
已在 staging 就绪。MCP profile 1.12 提供 133 个受治理的工具:在 profile 1.9 的界面之上,新增售后服务报告准备 crm_engagement_after_sales_report_prepare_propose、_confirm、_reject——按需基于该客户已记录的调查/反馈证据准备一份带来源的售后服务调查报告,每个知识库声明的精确定位必须当前能通过来源使用门槛解析为已确认且可对客户分享;回收数量仅在来源自身提供时按来源携带,缺失月份会被明确表述为覆盖不完整(#2115)。
已在 staging 就绪。MCP profile 1.9 提供 133 个受治理的工具:在原有界面之上,新增已确认的订单交期跟进(#2110——读取工具 crm_engagement_order_delivery_list、crm_engagement_order_delivery_read 与已确认观察效果 crm_engagement_order_delivery_confirm_propose、_confirm、_reject;仅作依据,绝不代替履约)以及客户库存与销售核对(#2113——读取工具 crm_engagement_inventory_sales_checkin_read,单个客户已记录的观察,最新在前,三项独立度量,缺失保持为空、零也是数值;按需的请求准备 crm_engagement_inventory_sales_checkin_prepare_propose、_confirm、_reject,每位客户每个自然月至多一份按产品逐项的更新请求,键为 checkin:<customer_id>:<YYYY-MM>;以及确认数字的记录 crm_engagement_inventory_sales_checkin_record_propose、_confirm、_reject,版本化、只追加的观察;产品必须能在该客户自己的记录中解析,且绝不写入预测、采购订单或外部库存记录)。,以及样品测试跟进(#2108——读取工具 crm_engagement_sample_test_read,列出一个客户的样品测试案例及其最新确认结果,或读取单个案例的完整观察历史;与已确认结果效果 crm_engagement_sample_test_confirm_propose、_confirm、_reject——最终通过/未通过仅停止该样品的跟进),以及已确认的投标简报(crm_engagement_tender_brief_read 与 crm_engagement_tender_brief_create/update/delete 的 propose-confirm-reject 效果)——每个客户投标一条由代表确认的简报:编号、标题、截止时间(epoch 毫秒及其 IANA 时区)和 1-12 条已确认要求,每条要求引用 1-5 个当前可解析的已确认 EvidenceRef(owner:kind/id@version);更新会追加修订以固定依据,且绝不会由此创建报价、样品、价格、投标文件或递标(#2123);以及下一年度合作规划准备(#2116——按需基于该年度已核对的年度合作证据与已明确确认的客户目标准备一份下一自然年度合作规划草稿 crm_engagement_cooperation_plan_prepare_propose、_confirm、_reject;草稿为标注的建议(建议稿),不构成报价、订单或预算承诺,证据年度无可用记录或目标无法解析时会被指明)。
报价结果跟进与确认(#2107):读取 crm_engagement_quotation_result_read 与确认记录 crm_engagement_quotation_result_confirm_propose、_confirm、_reject——反馈以版本化备注保存,接受/拒绝走既有受保护的生命周期,绝不另建并行状态表。
投标产品推广(#2124):crm_engagement_tender_product_promotion_prepare_propose、_confirm、_reject——依据一条现行已确认的投标简报,准备一封将已确认要求映射到已批准产品证据的客户产品推广草稿;只覆盖有依据的要求并明确列出未支持的要求,仅为沟通内容,绝不构成投标提交。
样品选品跟进与结果(#2109):读取 crm_engagement_sample_selection_read 与确认结果三元组 crm_engagement_sample_selection_confirm_propose、_confirm、_reject——对同一样品身份记录已选中、未选中或待定,并与测试结果分开存储、分开跟进;记录选中和未选中的产品料号及原因,或显式标记未提供;料号必须能在该客户自己的记录中解析,最终结果仅停止该样品的选品跟进。
货运进度跟进(#2112):读取 crm_engagement_order_shipment_read 与确认观察三元组 crm_engagement_order_shipment_confirm_propose、_confirm、_reject——对 A09 订单身份下的一票货物记录运输中、异常或已签收,附承运方、运单号或明确的未知及核实时间;缺失的细节保持未知,已签收仅停止该票货物的跟进,交期承诺绝不会被代替,也绝不查询承运方。
客户平台销售回顾(#2114):读取 crm_engagement_platform_sales_read、按需回顾准备三元组 crm_engagement_platform_sales_prepare_propose、_confirm、_reject(每月每客户至多一份有引用的回顾/更新请求草稿,发生标识 psales:<customer_id>:<YYYY-MM>),以及分类记录三元组 crm_engagement_platform_sales_record_propose、_confirm、_reject——每条版本化观察按客户、产品、客户自己的平台标注和期间为键;报告值须引用来源,估算值须写明方法与佐证,缺失须说明原因;标注永不合并,不同单位或币种分列且不加总,零或缺失基期绝不产生增长率,复用的 A11 核对证据只计入一次;被撤回的来源会拒绝记录与起草,且绝不抓取、查询或发布到任何外部平台。
本文档不代表已发布到生产环境。请将客户端配置指向 atlas.staging.forth.ai。
已在 staging 就绪。MCP profile 1.13 提供 136 个受治理的工具:在 profile 1.12 的界面之上,新增售前助理的报价单草稿(#2742——crm_engagement_quotation_draft_prepare_propose、crm_engagement_quotation_draft_prepare_confirm、crm_engagement_quotation_draft_prepare_reject)。确认后,在该客户进行中的业务上恰好创建一份状态为 draft 的报价单,每条已批准的产品证据对应一行且均未定价:代理绝不定价,绝不将报价单标记为已发送,任何界面上都没有与之对应的发送工具。由人工定价并决定。
已在 staging 就绪。除了上面这个固定计数之外,tools/list 现在还会返回调用方所在组织自己分类的外部工具(#2747、#2774)——绝不会返回其他组织的,也从不计入上面那句只统计每个组织都有的工具的计数句。详见下方"组织范围内的外部工具"。
接口地址
| 环境 | URL |
|---|---|
| Staging | https://atlas.staging.forth.ai/assistant/v1/mcp |
| Production(未验证) | https://atlas.forth.ai/assistant/v1/mcp |
传输方式:仅 HTTP POST,JSON 响应,无会话状态。支持的协议版本:2025-11-25 与 2025-06-18。任何支持带自定义请求头的 Streamable HTTP 的客户端均可使用。
身份验证
每次请求都需携带 Authorization: Bearer <token>。缺失时服务端将返回 401 authentication_required。
生成令牌
- 在
https://atlas.staging.forth.ai登录门户。 - 打开浏览器开发者控制台,运行:
fetch("/auth/tokens", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ name: "mcp-client", scopes: ["crm:read", "crm:write"], lifetimeDays: 7 }) }).then(r => r.json()).then(console.log)
- 从响应中复制
token。它只会展示一次。
lifetimeDays 默认为 7,最长为 30。管理员可随时吊销令牌。请只勾选客户端实际需要的 scope。
Scope
| Scope | 解锁的工具 |
|---|---|
crm:read | crm_customer_profile_read、crm_customer_profile_suggestions_list、crm_customers_search、crm_engagement_context_read、crm_engagement_receivable_list、crm_engagement_receivable_read、crm_engagement_order_delivery_list、crm_engagement_order_delivery_read、crm_engagement_annual_evidence_read、crm_engagement_drafts_read、crm_engagement_dispatches_read、crm_engagement_exhibition_context_read、crm_engagement_tender_brief_read、crm_engagement_schedules_read、crm_engagement_preparation_read、crm_engagement_inventory_sales_checkin_read、crm_engagement_sample_test_read、crm_engagement_quotation_result_read、crm_engagement_sample_selection_read |
ekb:read | ekb_knowledge_retrieve、ekb_library_search、ekb_library_passages_read、ekb_source_use_read、ekb_releases_list、ekb_releases_read、ekb_product_evidence_selection_read |
ekb:write | ekb_source_use_change_propose、_confirm、_reject;ekb_product_evidence_selection_create/update/delete_propose 各配 _confirm、_reject |
tasks:write | tasks_profile_gap_task_create_propose、_confirm、_reject;tasks_engagement_followup_create_propose、_confirm、_reject |
crm:write | crm_customer_profile_create_propose、_confirm、_reject;crm_engagement_receivable_confirm_propose、_confirm、_reject;crm_engagement_order_delivery_confirm_propose、_confirm、_reject;crm_engagement_drafts_change_propose、_confirm、_reject;crm_engagement_drafts_send_propose、_confirm、_reject;crm_engagement_exhibition_context_create/update/delete_propose、_confirm、_reject;crm_engagement_schedules_change_propose、_confirm、_reject;crm_engagement_preparation_retry_propose、_confirm、_reject;crm_engagement_tailored_solution_prepare_propose、_confirm、_reject;crm_engagement_exhibition_invitation_prepare_propose、_confirm、_reject;crm_engagement_new_product_promotion_prepare_propose、_confirm、_reject;crm_engagement_after_sales_report_prepare_propose、_confirm、_reject;crm_engagement_milestone_sharing_prepare_propose、_confirm、_reject |
crm:write | crm_customer_profile_create_propose、_confirm、_reject;crm_engagement_receivable_confirm_propose、_confirm、_reject;crm_engagement_order_delivery_confirm_propose、_confirm、_reject;crm_engagement_drafts_change_propose、_confirm、_reject;crm_engagement_drafts_send_propose、_confirm、_reject;crm_engagement_exhibition_context_create/update/delete_propose、_confirm、_reject;crm_engagement_schedules_change_propose、_confirm、_reject;crm_engagement_preparation_retry_propose、_confirm、_reject;crm_engagement_tailored_solution_prepare_propose、_confirm、_reject;crm_engagement_exhibition_invitation_prepare_propose、_confirm、_reject;crm_engagement_new_product_promotion_prepare_propose、_confirm、_reject;crm_engagement_inventory_sales_checkin_prepare_propose、_confirm、_reject;crm_engagement_inventory_sales_checkin_record_propose、_confirm、_reject;crm_engagement_sample_test_confirm_propose、_confirm、_reject;crm_engagement_cooperation_plan_prepare_propose、_confirm、_reject;crm_engagement_quotation_result_confirm_propose、_confirm、_reject;crm_engagement_sample_selection_confirm_propose、_confirm、_reject |
tasks:read | 任务跟踪数据。目前没有任何 MCP 工具需要它。 |
客户端配置
Claude Code 插件(推荐)
atlas-crm 插件将登录、令牌生成与 MCP 注册整合为一条命令——无需打开开发者控制台,也无需手动复制令牌。
/plugin marketplace add Forth-AI/atlas-crm-plugin
/plugin install atlas-crm@atlas-crm-plugin
/atlas-crm:login
/atlas-crm:login 会询问你的 Atlas 邮箱、发送一次性验证码、生成一个 30 天有效期的受委托令牌,并以用户级别注册为 atlas-crm MCP 服务器——在这台机器上的每个 Claude Code 项目中都可用,而不仅限于单个仓库。/atlas-crm:status 显示该令牌的名称与过期时间;/atlas-crm:logout 移除本地注册。源码见 GitHub 上的 Forth-AI/atlas-crm-plugin。
目前仅支持 staging——该插件指向 atlas.staging.forth.ai,尚不支持生产环境或邀请码登录。
Claude Code(手动配置)
claude mcp add --transport http atlas https://atlas.staging.forth.ai/assistant/v1/mcp --header "Authorization: Bearer <your-token>"
已在 Claude Code CLI 2.1.260 上验证。运行 claude mcp list 确认服务器已连接。
任意 Streamable HTTP 客户端
{
"mcpServers": {
"atlas": {
"url": "https://atlas.staging.forth.ai/assistant/v1/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}
工具参考
加粗的为必填输入。读取类工具直接返回数据。Propose 类工具返回一个 proposal_id,不会创建任何内容。
| 工具 | 返回内容 | 输入 | Scope |
|---|---|---|---|
crm_customer_profile_read | 单个客户的档案完整度、已确认事实、引用证据、缺失项。 | customer_id | crm:read |
crm_customer_profile_suggestions_list | 单个客户的档案缺口建议,每条附带原因。 | customer_id | crm:read |
crm_customers_search | 每个关键词都在同一客户的档案、关联联系人、国家/行业、分类或可见标签中命中。 | q、limit | crm:read |
ekb_knowledge_retrieve | 来自当前组织知识库、带排序与引用的段落。 | query、limit、type、source_id | ekb:read |
ekb_library_search | 来自已确认知识库文档、带排序与引用的片段,按混合召回排序(关键词与语义合并;MC-3200-T 这类型号整体匹配)。每条结果带融合分数 score 与位置信息 locator——page、sheet 与 range、part 或 line,另加 kind——用于引用段落所在位置。 | query、limit | ekb:read |
ekb_library_passages_read | 完整读取资料库检索找到的内容。传 passage_index:返回该段及前后各至多一段(总计不超过 6,000 字符)。不传:文件提取文字不超过 12,000 字符时按顺序返回全部段落,否则返回 status: "too_large" 与 passage_count,不含文字。每段带有与检索相同的 locator。可见范围与 ekb_library_search 相同;其他组织的文件、其他成员的个人文件、尚未就绪的文件和超出范围的段落编号一律返回 not_found。 | file_id、passage_index | ekb:read |
ekb_releases_list | 列出或按词法搜索当前已发布的政策与流程版本;保留归属方内容、引用定位和不透明分页游标。 | kind、q、limit、cursor | ekb:read |
ekb_releases_read | 按 EKB 版本 id 读取一个当前版本。未知、外部组织、已撤回或已被取代的 id 均返回 not_found。 | release_id | ekb:read |
tasks_profile_gap_task_create_propose | 档案缺口任务的提案。 | customer_id、profile_gap_code、title、idempotency_key、due_at、assignee_email、suggestion_id | tasks:write |
tasks_profile_gap_task_create_confirm | 依据该提案创建任务。 | proposal_id、idempotency_key | tasks:write |
tasks_profile_gap_task_create_reject | 关闭该提案,不创建任务。 | proposal_id、idempotency_key | tasks:write |
crm_customer_profile_create_propose | 新客户档案的提案。 | name、idempotency_key、contact、email、country、industry、customer_type | crm:write |
crm_customer_profile_create_confirm | 依据该提案创建客户。 | proposal_id、idempotency_key | crm:write |
crm_customer_profile_create_reject | 关闭该提案,不创建客户。 | proposal_id、idempotency_key | crm:write |
agent_team_inspect | 按视图返回 Account Manager 团队、某位雇员详情(同时列出 optimizationDrafts:每名雇用每天至多一条定时方法优化草案,仅含内容无关的运行统计,待审优先)、决策、学习选项或试点指标。使用 runId 选择详情时,usage.byPurpose 返回账本派生的按用途尝试次数、覆盖度、令牌总计、提供商金额(纳单位及币种)与独立的客户积分。缓存和推理令牌是子集。usage.pendingAttempts 统计未结算尝试;存在未结算、缺失或不兼容计量(包括无用量证据的空投影)时,usage.incomplete 为真。不可用总计保持 null。team 与 detail 携带每位雇员的 configuration.permissionLevel。视图 roles 返回本组织对每个目录角色的开关(roleId、enabled、revision、updatedBy、updatedAt);仅限管理员,否则以 admin_required 拒绝。角色已关闭的雇员在团队与详情视图中带有 roleDisabled: true。视图 customer 接受 customerId,以同样的雇员结构只返回该客户账户上的雇员,用于客户详情页的 AI 团队面板;无权查看、跨组织或没有雇员的客户一律返回 {"items":[]},customerId 为空则以 invalid_input 拒绝。视图 decisions 还回答 doneByAiTeam:自动驾驶雇员自行确认的工作(decidedBy 以 agent: 开头),最新优先。视图 team 还回答 runHealth:调用方可见雇员最近七天的运行情况,包含 since、runs(窗口内已发起)、terminalRuns(其中已结束的)、degraded(带 reason: "output_degraded" 的已完成运行)、failed、degradedRate、failedRate、hiresCounted、hiresTruncated 与 byHire(仅列出出现降级或失败的雇员)。degradedRate 与 failedRate 是相对于已结束运行 terminalRuns 的占比,而非相对于 runs。预览运行与评测运行属于试运行,均不计入;被治理清理过的运行同样不计入。hiresCounted 表示实际统计的雇员数,当组织可能还有更多雇员时 hiresTruncated 为真。同样的结构按指标周期随视图 metrics 以 runHealth 返回。它只是汇总,不会发出告警。 在客户经理专员循环上执行的运行(功能开关 team-specialist-loop,STORY-DRAFT-AT-02)还会带有 identity.tools,按顺序列出所走步骤 [{"name","at"}],其模型用量记在用途 specialist_turn 下;单次调用的运行不含这两项。 | view、hireId、runId、customerId | crm:read |
agent_team_change_propose | 雇用、角色、配置、工作或教学变更的提案;不创建任何内容。 | operation、idempotency_key,以及该操作所需的字段(candidateId、hireId、configuration、work、teaching、revision、scope、roleSettings)。role.enable 仅接受 roleSettings,并为每位符合条件的销售各创建一名销售助理。 work.undo 撤回自动驾驶雇员自行执行的一个动作(指明该工作及其版本):它创建的任务被取消,它保存的草稿被作废;只生效一次(already_undone),不适用于由人确认的动作(not_auto_executed),也绝不覆盖情况已变化的任务(world_changed)。所需权限与当初确认该动作相同(任务类动作需要 tasks:write),并始终记录为操作人本人,绝不记为雇员。hire.create 与 hire.configure 接受面向单个客户的 configuration.role(售前助理为 presale_assistant,客户成功经理为 customer_success_manager,客户经理省略该字段;sales_assistant 会被拒绝——它是客户组合范围自身的角色),以及 configuration.permissionLevel(plan_only、默认 co_pilot、auto_pilot);auto_pilot 需要企业管理员的会话,提案证据会列出该角色的 allowedActionClasses 与 excludedActionClasses,请在确认前阅读。hire.create 与 hire.configure 还接受 configuration.eventTriggers(至多 4 个目录事件 id,目前仅有 email.inbound);选中至少一个事件时 configuration.schedule 可以省略:配置了来信触发事件的雇员,其范围内(本账户、所指派的销售组合,或业务分析师的整个组织)每有一封来信与客户建立关联,就恰好运行一次;既没有排程也没有事件的配置会被拒绝。事件触发的运行在运行记录中标记为 event,同一封邮件绝不会触发第二次运行。role.configure 仅接受 roleAvailability(roleId、enabled、revision),为整个组织开启或关闭一个目录角色——roleId 取值为 account_manager、sales_assistant、presale_assistant、customer_success_manager、business_analyst;仅限管理员,修订号与存储值不一致时以 stale_revision 拒绝。对已关闭角色提出的 hire.create、hire.configure 与 role.enable 在提案和确认阶段均以 409 role_disabled 拒绝,不写入任何内容。同一个账户可以部署整支 AI 团队,但每个角色最多只能有一名未退休雇员:若该客户的某个角色已有未退休雇员,hire.create 会以 409 role_already_assigned 拒绝,信封 error 中的 existing_hire_id 与 existing_role 指明该雇员,且不写入任何内容;同一账户上的其他角色是彼此独立的雇用。hire.create 与 hire.configure 也用于为整个组织雇用业务分析师:此时配置携带 assignmentScope {"kind":"organisation","roleId":"business_analyst"} 与保留的 customerId organisation:business_analyst,knowledge 必须为空,permissionLevel 仅可为 plan_only 或 co_pilot——v1 对该角色拒绝 auto_pilot,拒绝附加任何文档,且范围键必须与角色一致。仅限管理员(admin_required);在现有分析师尚未退役时再次雇用,会在提案与确认阶段均以 role_already_hired 拒绝且不写入任何内容。role.configure 的 roleAvailability.roleId 除 account_manager、sales_assistant 外还接受 business_analyst。 skill.withdraw(仅限管理员;携带 scope、fromVersionId、headRevision,不指定目标)把当前生效的学习指导版本头移回基础版本,并将该版本标记为已撤回;版本头已变更时返回 409 skill_head_changed,恢复只能通过教学流程发布替代版本。 | crm:write |
agent_team_change_confirm | 应用此前提案中的一项 Account Manager 变更。 | proposal_id、idempotency_key | crm:write |
agent_team_change_reject | 关闭该提案,不应用任何变更。 | proposal_id、idempotency_key | crm:write |
ekb_source_use_read | 解析某条知识内容对某个客户是否已确认且允许外发,返回批准引用与基础摘要。仅被索引不等于已获准。 | source_id、page_no、ordinal、customer_id | ekb:read |
ekb_product_evidence_selection_read | 列出产品证据选择,或读取单个选择:每条目的来源、版本、摘录、资格与外发许可实时解析。 | selection_id(可选), customer_id(可选) | ekb:read |
ekb_product_evidence_selection_create_propose | 提议保存一个命名的产品证据选择(1-12 条钉定的主张)。经理和管理员专用;确认前不写入。 | name, entries, idempotency_key | ekb:write |
ekb_product_evidence_selection_create_confirm | 按提案保存该选择。 | proposal_id、idempotency_key | ekb:write |
ekb_product_evidence_selection_create_reject | 关闭提案,不保存任何内容。 | proposal_id、idempotency_key | ekb:write |
ekb_product_evidence_selection_update_propose | 提议替换一个选择的名称与条目;版本变化会使提案过期。 | selection_id, name, entries, idempotency_key | ekb:write |
ekb_product_evidence_selection_update_confirm | 按提案应用该替换。 | proposal_id、idempotency_key | ekb:write |
ekb_product_evidence_selection_update_reject | 关闭提案,不替换任何内容。 | proposal_id、idempotency_key | ekb:write |
ekb_product_evidence_selection_delete_propose | 提议删除一个选择及其条目。 | selection_id, idempotency_key | ekb:write |
ekb_product_evidence_selection_delete_confirm | 按提案删除该选择。 | proposal_id、idempotency_key | ekb:write |
ekb_product_evidence_selection_delete_reject | 关闭提案,不删除任何内容。 | proposal_id、idempotency_key | ekb:write |
ekb_source_use_change_propose | 提案批准或撤回一条绑定当前来源版本的客户用途批准。仅限经理与管理员,不会直接生效。 | operation、source_id、idempotency_key、page_no、ordinal、audience、customer_id、valid_until、attestation_id | ekb:write |
ekb_source_use_change_confirm | 按提案执行批准或撤回。 | proposal_id、idempotency_key | ekb:write |
ekb_source_use_change_reject | 关闭该提案,不改变任何批准。 | proposal_id、idempotency_key | ekb:write |
crm_engagement_context_read | 读取一个客户的可溯源互动上下文:档案与已确认特征、联系人、业务、交易与时间线,每条数据带有归属方、内容摘要版本、观察日期、确认状态与可共享性;不合格证据只以通用缺口呈现。只读,不调用模型。 | customer_id、purpose、sections、limit、cursor | crm:read |
crm_engagement_receivable_list | 单个客户已确认的应收事项及最新余额、到期日与状态。 | customer_id | crm:read |
crm_engagement_receivable_read | 单个应收事项及其完整观察记录。 | customer_id、case_id | crm:read |
crm_engagement_order_delivery_list | 单个客户已确认的订单交期事项及最新观察与观察次数。 | customer_id | crm:read |
crm_engagement_order_delivery_read | 单个订单交期事项及其完整观察记录。 | customer_id、case_id | crm:read |
crm_engagement_annual_evidence_read | 单个客户可复核的年度合作依据:按状态与币种分列的交易、合作活动与单独计时的应收余额。 | customer_id、year | crm:read |
crm_engagement_receivable_confirm_propose | 一次带日期的应收观察提案——仅跟进依据,不会记账。 | customer_id、remaining_balance、currency、state、idempotency_key、case_id、source_kind、source_id、expected_revision、due_on、observed_at、note | crm:write |
crm_engagement_receivable_confirm_confirm | 按提案记录该次观察。 | proposal_id、idempotency_key | crm:write |
crm_engagement_order_delivery_confirm_propose | 一次带日期的订单交期观察提案——仅跟进依据,不会有任何订单动作或 ERP 写入。 | customer_id、timing_result、idempotency_key、case_id、order_reference、source_document_id、expected_revision、expected_on、observed_at、source_refs、note | crm:write |
crm_engagement_order_delivery_confirm_confirm | 按提案记录该次观察。 | proposal_id、idempotency_key | crm:write |
crm_engagement_drafts_read | 单个客户的版本化客户跟进草稿,含用途、业务记录、occurrence、收件人与证据摘要;或一条草稿及其完整决策历史。 | customer_id、draft_id、purpose | crm:read |
crm_engagement_drafts_change_propose | 一项草稿操作的提案 — 提交、编辑、批准、忽略或刷新。批准绑定确切的正文、收件人与证据摘要;从不发送任何内容。 | customer_id、operation、idempotency_key、draft_id、expected_version、purpose、business_ref_kind、business_ref_id、occurrence_key、intent、recipient_contact_id、recipient_email、subject、body | crm:write |
crm_engagement_drafts_change_confirm | 按提案应用该草稿操作。 | proposal_id、idempotency_key | crm:write |
crm_engagement_drafts_change_reject | 关闭提案,不应用任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_dispatches_read | 单个客户的互动派发保留记录及其尝试结果——供应商已受理、确定失败或结果未知;供应商回执绝不显示为已送达。 | customer_id、dispatch_id、draft_id | crm:read |
crm_engagement_drafts_send_propose | 发送一条已批准互动消息的提案——CRM 先保留消息版本,现有邮件适配器仅被调用一次,结果未知时绝不自动重试。 | customer_id、draft_id、expected_version、idempotency_key | crm:write |
crm_engagement_drafts_send_confirm | 确认发送——这是保留唯一一次供应商尝试背后的人工决定。 | proposal_id、idempotency_key | crm:write |
crm_engagement_drafts_send_reject | 关闭提案,不发送任何内容。 | proposal_id、idempotency_key | crm:write |
tasks_engagement_followup_create_propose | 依据一条已确认的客户跟进建议创建恰好一个任务的提案,可先编辑标题、截止日期与负责人。 | customer_id、draft_id、proposal_id、idempotency_key、title、due_on、assignee_email | tasks:write |
tasks_engagement_followup_create_confirm | 在 Tasks 服务侧创建该任务并记录确认结果;重复确认或跨服务恢复都会返回同一任务。 | proposal_id、idempotency_key | tasks:write |
tasks_engagement_followup_create_reject | 关闭提案,不创建任何任务。 | proposal_id、idempotency_key | tasks:write |
crm_engagement_schedules_read | 单个客户已接受的互动计划,含用途、业务记录、重复方式、明确的首次到期日、时区、下次到期日与到期依据;或一条计划及其到期历史。 | customer_id、schedule_id、status | crm:read |
crm_engagement_preparation_read | 单个客户的互动准备运行状态——每条计划到期事项与按需请求准备成了草稿、跳过、失败还是停止。 | customer_id、preparation_id、schedule_id、status | crm:read |
crm_engagement_inventory_sales_checkin_read | 单个客户已记录的库存与销售核对,最新在前——产品、期间与三项独立度量(库存数量及其截止日期、销售数量及其期间、销售金额及其币种),缺失的度量保持为空,零也是数值。 | customer_id、limit、cursor | crm:read |
crm_engagement_inventory_sales_checkin_prepare_propose | 准备一份库存与销售核对请求草稿的提案——每位客户每个自然月至多一份按产品逐项的询问(库存数量及其截止日期、销售数量及其期间、销售金额及其币种);CRM 会基于该客户已知产品渲染询问内容。准备从不发送。 | customer_id、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_inventory_sales_checkin_prepare_confirm | 确认准备——请求草稿进入决策队列;每个自然月至多一份请求(checkin:<customer_id>:<YYYY-MM>)。 | proposal_id、idempotency_key | crm:write |
crm_engagement_inventory_sales_checkin_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_inventory_sales_checkin_record_propose | 记录一次已确认的库存/销售核对的提案,保存为一条版本化观察——三项度量至少一项,且每项都完整带有其明确的单位、币种与期间;零也是数值,缺失的度量保持缺失;产品必须能在该客户自己的记录中解析,否则不写入任何内容。 | customer_id、product_ref、inventory、sales_quantity、sales_amount、observed_at、source_refs、idempotency_key、occurrence_key | crm:write |
crm_engagement_inventory_sales_checkin_record_confirm | 确认记录——会追加一条新的版本化观察;记录一次出现绝不触及之后的周期,也绝不写入预测、采购订单或外部库存记录。 | proposal_id、idempotency_key | crm:write |
crm_engagement_inventory_sales_checkin_record_reject | 关闭记录提案,不记录任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_promotion_meeting_summary_prepare_propose | 提出基于一场已有且可见的产品推广会议准备总结草稿的提案——已确认事实、决定、未回答问题与后续要点严格按销售确认的内容携带,已讨论产品实时对照一份固定选择解析并带显示标题,最多三条仅建议的后续任务;建议不创建任务,非会议记录、缺少确认或证据被撤回都会被指明且不创建任何提案。 | customer_id、meeting_id、recipient_contact_id、request_id、promotion_confirmed、idempotency_key | crm:write |
crm_engagement_promotion_meeting_summary_prepare_confirm | 确认准备——重新解析的会议与经证据核验的已讨论产品将固定到一份版本化草稿中,进入决策队列;每条建议的后续任务都需单独接受,且每个槽位只创建一个任务。准备本身从不发送。 | proposal_id、idempotency_key | crm:write |
crm_engagement_promotion_meeting_summary_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_schedules_change_propose | 一项版本化互动计划操作的提案 — 接受、暂停、取消或更新。月度重复在短月收紧;事件相对按输入的提前天数从确认日期倒推——展会前产品推广锚定已核实的展会活动并按活动所在时区运行;保存不准备、不发送任何内容。 | customer_id、operation、idempotency_key、schedule_id、expected_revision、purpose、business_ref_kind、business_ref_id、recurrence、first_due_on、timezone、lead_days、date_ref_kind、date_ref_id、date_ref_field | crm:write |
crm_engagement_schedules_change_confirm | 按提案应用该互动计划操作。 | proposal_id、idempotency_key | crm:write |
crm_engagement_schedules_change_reject | 关闭提案,不应用任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_preparation_retry_propose | 把一条已证实失败的互动准备经由同一注册表重新驱动的提案。确认前不应用任何内容,重试永不发送。 | customer_id、preparation_id、idempotency_key | crm:write |
crm_engagement_preparation_retry_confirm | 按提案重新驱动失败的准备。重试永不发送。 | proposal_id、idempotency_key | crm:write |
crm_engagement_preparation_retry_reject | 关闭提案,不应用任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tailored_solution_prepare_propose | 提出基于产品证据选择准备一份定制产品方案草稿的提案——最多三项推荐,每项绑定产品来源与已确认的客户匹配理由;证据缺失时会指明缺失项,不创建任何内容。 | customer_id、selection_id、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_tailored_solution_prepare_confirm | 确认准备——重新校验后的依据会固定进一条版本化草稿,进入决策队列等待审阅。准备从不发送。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tailored_solution_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_invitation_prepare_propose | 提出基于该客户已核实展会记录准备一份展会邀请草稿的提案——展会、带时区的时间、地点,仅在公司展位确认时写明展位;参与未确认或收件人不可见时会指明缺失项,不创建任何内容。 | customer_id、event_id、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_new_product_promotion_prepare_propose | 提出基于该客户最近已批准的定制方案准备一份新品推广草稿的提案——每个被推广产品的固定声明必须当前能通过来源使用解析器确认为已确认且可对客户分享的上市证据;上传、替换或索引日期永远不算证据,缺失或失效的证明会被指明且不创建任何提案。 | customer_id、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_after_sales_report_prepare_propose | 提出基于该客户已记录的调查/反馈证据准备一份售后服务调查报告草稿的提案——每个知识库声明的精确定位必须当前能通过来源使用解析器确认为已确认且可对客户分享;回收数量仅在来源自身提供时按来源携带,缺失月份会被明确表述为覆盖不完整。准备从不发送。 | customer_id, recipient_contact_id, period_start, period_end, selected_source_refs, idempotency_key, unresolved_questions, permission_limited | crm:write |
crm_engagement_after_sales_report_prepare_confirm | 确认准备——重新核验后的证据被固定进入版本化草稿,等待决策队列审阅。准备从不发送。 | proposal_id, idempotency_key | crm:write |
crm_engagement_after_sales_report_prepare_reject | 关闭准备提案且不准备任何草稿。 | proposal_id, idempotency_key | crm:write |
crm_engagement_milestone_sharing_prepare_propose | 提出基于一条 F08 已批准的知识声明准备一份公司动态分享草稿的提案({customer_id, source_id, page_no, ordinal, recipient_contact_id})——该精确声明必须当前能通过来源使用解析器确认为已确认且对该客户许可(在来源的有效版本中),并与已确认的客户匹配证据配对;缺失、过期、撤回或仅内部的批准,或缺少匹配证据,都会被指明且不创建任何提案。 | customer_id、source_id、page_no、ordinal、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_milestone_sharing_prepare_confirm | 确认准备——已批准的声明、其版本与已确认的匹配理由会被固定进一份进入决策队列的版本化草稿;同一请求重放同一发生。准备从不发送,批准/发送前会实时重新校验批准。 | proposal_id、idempotency_key | crm:write |
crm_engagement_milestone_sharing_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_new_product_promotion_prepare_propose | 提出基于该客户最近已批准的定制方案准备一份新品推广草稿的提案——每个被推广产品的固定声明必须当前能通过来源使用解析器确认为已确认且可对客户分享的上市证据;上传、替换或索引日期永远不算证据,缺失或失效的证明会被指明且不创建任何提案。 | customer_id、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_sample_test_confirm_propose | 一次样品测试结果的确认提案——通过、未通过、结论不明或需重测;结果仅解决该样品自身的跟进问题。 | customer_id、result、idempotency_key、case_id、document_id、sample_label、expected_revision、observed_at、feedback、source_refs | crm:write |
crm_engagement_sample_test_confirm_confirm | 明确确认一条待定的样品测试结果提案;最终通过/未通过仅停止该样品自身的测试跟进。 | proposal_id、idempotency_key | crm:write |
crm_engagement_sample_test_confirm_reject | 明确拒绝一条样品测试结果提案——不记录任何内容,也不关闭任何跟进。 | proposal_id、idempotency_key | crm:write |
crm_engagement_cooperation_plan_prepare_propose | 提出基于该年度已核对的年度合作证据与已明确确认的客户目标准备一份下一自然年度合作规划草稿的提案——目标年度为 evidence_year + 1,每个目标引用必须当前能解析为该客户下已确认且符合目标条件的事实——内部备注、个人联系方式与内部金额会以 goal_ref_not_eligible 拒绝;证据年度无可用记录或目标无法解析时会指明缺失项且不创建任何提案。 | customer_id、evidence_year、confirmed_goal_refs、request_id、recipient_contact_id、idempotency_key | crm:write |
crm_engagement_cooperation_plan_prepare_confirm | 确认准备——证据摘要与每个已确认目标的修订将固定到一份版本化草稿中,进入决策队列;调用方的 request id 即全部身份,重复请求返回同一结果,且在仍有结果待处理时新请求会被拦截。准备本身从不发送。 | proposal_id、idempotency_key | crm:write |
crm_engagement_cooperation_plan_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_new_product_promotion_prepare_confirm | 确认准备——经上市证据核验的推荐基础及其声明定位将固定到一份版本化草稿中,进入决策队列;每个客户每月至多一份。准备本身从不发送。 | proposal_id、idempotency_key | crm:write |
crm_engagement_new_product_promotion_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_invitation_prepare_confirm | 确认准备——重新校验后的展会依据会固定进一条版本化草稿,进入决策队列等待审阅。准备从不发送。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_invitation_prepare_reject | 关闭准备提案,不准备任何草稿。 | proposal_id、idempotency_key | crm:write |
crm_engagement_receivable_confirm_reject | 关闭提案,不记录任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_order_delivery_confirm_reject | 关闭提案,不记录任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_read | 单个客户已核实的展会背景——展会、时间、地点、已核实的参展与展位归属——附核实依据、核实人与核实时间。 | customer_id、event_id | crm:read |
crm_engagement_exhibition_context_create_propose | 一项已核实展会背景的提案;未知的参展或展位状态保持明确未核实。 | customer_id、event_id、event_name、starts_at、ends_at、timezone、venue、participation_customer、participation_company、booth_party、sources、idempotency_key、booth_label | crm:write |
crm_engagement_exhibition_context_create_confirm | 按提案记录已核实的展会背景。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_create_reject | 关闭提案,不记录任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_update_propose | 重新核实一条已有展会记录的提案;输入与 create 相同。 | customer_id、event_id、event_name、starts_at、ends_at、timezone、venue、participation_customer、participation_company、booth_party、sources、idempotency_key、booth_label | crm:write |
crm_engagement_exhibition_context_update_confirm | 按提案执行重新核实。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_update_reject | 关闭提案,不改变记录。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_delete_propose | 撤回一条已核实展会记录的提案。 | customer_id、event_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_delete_confirm | 按提案撤回该记录。 | proposal_id、idempotency_key | crm:write |
crm_engagement_exhibition_context_delete_reject | 关闭提案,不撤回任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tender_brief_read | 一位客户的已确认投标简报——或一条简报及其引用证据、确认人、修订和实时新建推广资格。 | customer_id、tender_reference | crm:read |
crm_engagement_tender_brief_create_propose | 一条已确认投标简报的提案;每条要求引用 1-5 个已确认证据引用(owner:kind/id@version)。 | customer_id、tender_reference、title、deadline_at、timezone、requirements、idempotency_key | crm:write |
crm_engagement_tender_brief_create_confirm | 按提案记录该投标简报;CRM 在执行时重新解析每个引用。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tender_brief_create_reject | 关闭提案,不记录任何内容。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tender_brief_update_propose | 再次确认一条既有简报的提案(输入与创建相同;编号不可变更)。 | customer_id、tender_reference、title、deadline_at、timezone、requirements、idempotency_key | crm:write |
crm_engagement_tender_brief_update_confirm | 将再次确认追加为新修订;原修订保留并转为非当前。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tender_brief_update_reject | 关闭提案,不改变简报。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tender_brief_delete_propose | 撤回一条已确认投标简报及其保留修订的提案。 | customer_id、tender_reference、idempotency_key | crm:write |
crm_engagement_tender_brief_delete_confirm | 按提案撤回该简报。 | proposal_id、idempotency_key | crm:write |
crm_engagement_tender_brief_delete_reject | 关闭提案,不撤回任何内容。 | proposal_id、idempotency_key | crm:write |
询价移交
以 {"operation":"run.handoff","hireId":"<pre-sale hire id>","revision":<hire revision>} 调用 agent_team_change_propose,再调用 agent_team_change_confirm。它把在职售前助理的需求矩阵移交给同一客户上在职的客户经理:两条触发方式为 handoff 的运行和一个工作流。客户经理运行在唯一一次受治理的模型调用(用途 rfq_handoff)之前把售前运行记录为 handoff 证据,并为前三个缺口各发布一条 Clarify: <requirement> 任务和一封跟进草稿,全部等待批准;不会发送任何内容。该客户没有在职客户经理、调用者不能运行两位雇员,或仍有移交在进行时,返回 409 handoff_unavailable;售前运行没有任何需求时,客户经理运行以 handoff_source_failed 结束为 failed。相同幂等键绝不会创建第二对运行。
售前雇员的详情视图(agent_team_inspect view:"detail")返回 handoffAvailable;为 false 时同时返回 handoffUnavailableReason,取值为 no_account_manager, plan_only_account_manager, handoff_in_flight, no_access, unavailable 之一。只要一对运行中任一条仍在排队或运行、且其工作流尚未结束,移交即视为进行中;某一步骤耗尽重试后工作流结束时,未完成的运行以 failed 结束(handoff_abandoned;售前运行未完成时,客户经理运行为 handoff_source_failed),之后可以发起新的移交。以不同幂等键同时确认两次只会创建一对运行,另一次返回 409 handoff_unavailable。工作流无法启动时,确认返回 503 handoff_unavailable,这对运行以 handoff_abandoned 结束,可直接重试;详情读取无法判断时显示 unavailable。由移交产生的客户经理运行输出和工作,只对当前同时能看到该售前雇员的成员显示并允许审批,且仅在售前运行仍是其记录的、已保留且已完成的那次运行时有效;其他人看到的是 evidence_unavailable,与证据被撤回时相同。超出前三个已提问缺口的其余缺口都会在限制说明中逐一列出;放不下时,剩余的缺口合并在最后一条 Not asked: <id>, <id> 中列出。
未保存的教学建议
以以下参数调用 agent_team_change_propose,再以返回的 proposal_id 和确认用 idempotency_key 调用 agent_team_change_confirm。
{"operation":"teaching.suggest","hireId":"amhire_example","revision":1,"teachingSuggestion":{"runId":"amrun_example","excerpt":"No clear question.","expected":"Ask for a decision date."},"idempotency_key":"suggest-example-1"}
范围默认为账户;有权限的组织教学提案仍保留既有的管理员评测和发布限制。确认产生一次计费尝试,返回未保存的 suggestion,含 proposedInstructions、rationale、inputDigest 和来源引用,以及顶层 runId/hireId。审阅后才另行提交 teaching.create。teaching.create 接受可选的 feedback 锚点({"source":"knowledge_sandbox"|"agent_run","id"}),保存前会对其指向的沙盒评分或代理运行评分进行核验。当前来源和方法权限、积分预留均为必需。重放恢复仍保留的输出或拒绝;result_unavailable 不会触发再次调用。明确新建提案会独立计费。详见 REST 输入限制、错误和保留规则。
教学对比使用提案并确认 {"operation":"teaching.compare","hireId":"amhire_example","candidateId":"amlearn_example"}。仅当前人工管理员可使用。staging/development 由服务器负责发布包与用例解析、固定展开、目标预留与积分检查,注册表无兼容方法包时会在世界或模型调用前如实拒绝。生产环境的教学对比是无副作用的录制锚点运行回放——重读录制输入(漂移即拒绝)、有/无课程各重跑一次、由固定评判器对照录制输出与人工纠正要求判定——按组织积分计量并有审计,且直接决定发布资格:只有通过的对比才允许发布课程。
当前版本调用与结果
同一个工具可读取未筛选页面、执行词法检索,并用不透明游标读取下一页。使用 ekb_releases_read 读取列表返回的版本 id:
{"jsonrpc":"2.0","id":21,"method":"tools/call","params":{"name":"ekb_releases_list","arguments":{"kind":"policy","limit":1}}}
{"jsonrpc":"2.0","id":22,"method":"tools/call","params":{"name":"ekb_releases_list","arguments":{"q":"报价审批","limit":1}}}
{"jsonrpc":"2.0","id":23,"method":"tools/call","params":{"name":"ekb_releases_list","arguments":{"q":"报价审批","limit":1,"cursor":"eyJxIjoi5oql5Lu35a6h5om5Iiwia2luZCI6bnVsbCwidGllciI6MSwicHVibGlzaGVkX2F0IjoiMjAyNi0wOS0wOFQwMDowMDowMC4wMDBaIiwiaWQiOiJtcmVsXzAxIn0"}}}
{"jsonrpc":"2.0","id":24,"method":"tools/call","params":{"name":"ekb_releases_read","arguments":{"release_id":"mrel_01"}}}
检索命中时,structuredContent 原样携带归属方负载。以下精简响应展示有类型的稳定定位与原文;下一页请求须原样传回 next_cursor:
{"jsonrpc":"2.0","id":22,"result":{"structuredContent":{
"schema_version":"atlas.action.v1","action":"ekb.releases.list","status":"completed",
"data":{"items":[{
"citation":{"schemaVersion":1,"reference":{"schemaVersion":1,"kind":"policy","owner":"ekb","id":"mrel_01","version":"3"},"asset":{"id":"mpol_01","title":"报价制度"},"locator":{"type":"section","stable_id":"psec_0123456789abcdef0123456789abcdef","label":"审批"},"quote":"报价须经过审批"},
"release":{"id":"mrel_01","release_no":3,"published_at":"2026-09-08T00:00:00.000Z","author_email":"[email protected]","status":"released","content_digest":"…","answerable":false,"executable":false,"withdrawn_at":null,"withdrawn_by":null,"withdraw_reason":null,"asset_kind":"policy","asset_id":"mpol_01","asset_title":"报价制度","content":{"title":"报价制度","category":"销售","sections":[{"heading":"审批","body":"报价须经过审批"}]}}
}],"next_cursor":"eyJxIjoi5oql5Lu35a6h5om5Iiwia2luZCI6bnVsbCwidGllciI6MSwicHVibGlzaGVkX2F0IjoiMjAyNi0wOS0wOFQwMDowMDowMC4wMDBaIiwiaWQiOiJtcmVsXzAxIn0"},"meta":{"principal_kind":"delegated_token"}
}}}
空页仍是已完成结果:data: {"items":[],"next_cursor":null}。成功的 ekb_releases_read 响应使用操作 ekb.releases.read,并把同一个完整条目放在 data.item。未知、跨组织、已撤回和已被取代的 id 均返回 terminal_failure/not_found。
准入失败发生在 JSON-RPC 分派前:组织被停用时返回 HTTP 403 {"error":"organisation_suspended","retryable":false};Auth 不可用时返回 HTTP 503 {"error":"credential_store_unavailable","retryable":true}。工具级失败使用 isError:true,且不包含版本数据:
{"jsonrpc":"2.0","id":22,"result":{"isError":true,"structuredContent":{"status":"forbidden","error":{"code":"insufficient_scope","retryable":false}}}}
{"jsonrpc":"2.0","id":22,"result":{"isError":true,"structuredContent":{"status":"retryable_failure","error":{"code":"credential_store_unavailable","retryable":true}}}}
{"jsonrpc":"2.0","id":22,"result":{"isError":true,"structuredContent":{"status":"retryable_failure","error":{"code":"upstream_unavailable","retryable":true}}}}
完整的输入 schema 来自 tools/list。连接后调用一次即可,不要将上表硬编码到代码中。
agent_team_* 这组工具除 scope 之外,还受 AI 团队的发布开关约束。平台超级管理员可将 ai-team 功能开关设为仅开发者可见、内测或正式发布,其登记默认值为仅开发者可见。处于仅开发者可见时,这四个工具仍会出现在 tools/list 中,但每次调用都会被拒绝并返回 agent_team_restricted,同时排定的 Sales Assistant 与 Account Manager 工作不再启动新任务。本表中的其他工具不受影响。
组织范围内的外部工具
管理员在已连接系统上分类过的工具(#2747),会与上面这些工具一起出现在 tools/list 里,且只对你令牌所属的组织生效。已分类的读取类工具作为一个工具发布;已分类的写入类工具会拆成三个——_propose、_confirm、_reject——与目录内的写入工具完全一致,客户端无法跳过确认步骤。若某个工具自分类以来远端入参发生了变动,或其连接被暂停或吊销,该工具会从列表中消失;按其旧名调用会得到 Tool <name> not found,且不会联系远端系统。未连接任何外部系统的组织看到的仍是上面那份固定的受治理工具列表,不多不少。
工具名称完全由 Atlas 生成,绝非远端工具自己的名字:external.<connectionId>.<toolName> 会展平为 external_<connectionId>_<toolName>(写入类再追加 _propose/_confirm/_reject)。如果两个不同的已分类工具展平后得到同一个名字,两者都会从列表中被隐去,调用该共享名字时也解析不到任何工具。写入三件套沿用与其他所有会写入的 MCP 工具相同的 propose/confirm/reject 流程:未经明确确认,绝不联系远端系统,且一次确认最多只调用一次。远端工具返回的任何内容都只是供你阅读的数据,绝不会被当作 Atlas 或客户端应当执行的指令。
这与雇员自己的 AI 团队运行按其角色与权限级别使用已分类工具是两回事,后者根本不是一次 MCP 调用:plan_only、co_pilot、auto_pilot 三种雇员的差异,以及为何雇员无论权限级别多高都不会亲自执行已分类的变更工具,见 REST 手册的「雇员运行期间使用外部工具」一节。
腾讯会议个人账号。此连接仅接受浏览器会话,内容只归本人访问,不向 Bearer 令牌 MCP 客户端或后台助手发布。请使用腾讯会议私有连接与审核保存指南;管理员分类不能授予访问权或启用写入工具。
关键变更保持两步确认
- 使用你自选的
idempotency_key调用*_create_propose。结果携带proposal_id、一段摘要与expires_at。 - 把摘要展示给做决定的人。不要代替他们确认。
- 使用该
proposal_id与一个新的idempotency_key调用*_create_confirm或*_create_reject。 - 使用同一个 key 重复执行 confirm,会返回原始结果并带有
meta.repeated: true,不会产生第二次实际效果。
提案在创建 15 分钟后过期。对已过期或已拒绝的提案执行 confirm 会返回 conflict;请重新发起提案。
确认时的公司政策
每个 *_propose 结果都带有 policy:outcome 为 none、warn、block 或 could_not_verify,reasons 中列出所引用的政策标题、条款标题和引文。请把它展示给做决定的人。确认时会再次评估。若被引用的规则标注了允许的替代做法,或被引用的章节带有中文标题,每条原因还会携带 permitted_alternative(替代做法那句话,至多 300 字)与 heading_zh;未设置这些字段的政策不会返回它们,旧政策的读取结果与之前完全一致(#3954)。
block会将提案交由组织负责人或管理员决定。委托的 MCP 调用方收到owner_decision_required,再次用override_reason调用*_confirm也不能继续。已登录的负责人或管理员通过POST /agent/assistant/owner-decisions/:id/decide提交 10–500 字理由决定搁置计划;决定及获批后的覆盖会显示在助理日志中。policy_unverified表示无法完成检查。没有执行任何操作,任何理由都无法解除;请稍后重试。policy_changed表示结果比展示时更严格(“指引已更改,请重新查看”)。请先展示新的policy,再重新确认。warn会继续执行,结果中带有警告。*_reject不接受理由。
不要替做决定的人填写 override_reason。确认类工具保留这个可选字段以兼容现有客户端;委托的 MCP 调用方不能用它决定搁置提案。
档案缺口任务提案的关联依据
现有 tasks.profile_gap_task.create 提案新增 data.proposal.evidence.linked_sources:最多 50 个明确关联的文件,按 source_id,link_id 排序。CRM 依据保留在原有独立字段。每个来源结构如下:
{"link_id":"link_1","source_id":"libf_1","state":"current","citations":[{"schemaVersion":1,"reference":{"schemaVersion":1,"kind":"knowledge_source","owner":"ekb","id":"libf_1"},"asset":{"id":"libf_1","title":"Customer notes"},"locator":{"type":"passage","index":0},"quote":"Contact channel reported by the source."}]}
可读取来源为 current;引用保留真实来源 ID、标题、从零开始的段落索引,以及最多 200 个 Unicode 码点的原文前缀。每个文件按索引顺序最多返回三段。[] 仅表示 CRM 无关联。其他状态的 citations 为空:source_unavailable(缺失或外部组织来源,返回无法区分的 404)、inaccessible(无现有知识读取权限或返回 401/403)、no_passage(有效文件无段落)、owner_unavailable(缺少服务绑定、超时、503、损坏或意外响应)。CRM 补充解析的 unknown 会保留关联;独立授权的 EKB 读取成功后仍可提供引用。
提案仍要求 tasks:write;委托引用额外要求同一令牌已有的 ekb:read。缺少知识权限不改变任务资格。来源文字不会改写 CRM 事实或任务元数据。人工明确确认前应核对两组依据;关联 ID、状态或引用内容变化时返回 409 proposal_stale 且不创建任务,应重新提案并复核新依据。依据未变时保留原有幂等确认,拒绝不会创建任务。
使用 tasks_profile_gap_task_create_propose 并核对 result.structuredContent.data.proposal.evidence.linked_sources。随后携带现有 proposal_id,idempotency_key 调用 tasks_profile_gap_task_create_confirm 或 tasks_profile_gap_task_create_reject。MCP 仍要求委托 Bearer 令牌。
故障排查
| 现象 | 解决方法 |
|---|---|
HTTP 401 authentication_required | 令牌缺失、过期或已吊销。生成新令牌并更新客户端请求头。 |
状态 forbidden,错误 insufficient_scope | 生成一个包含错误信息中所需 scope 的令牌。 |
状态 forbidden,错误 agent_team_restricted | 该环境尚未发布 AI 团队,或该角色尚未对你开放。由平台超级管理员发布 ai-team 功能开关;无论是否发布,这些工具都会列出。 |
confirm 时状态 conflict | 提案已过期或被拒绝,或 idempotency key 被复用但输入不同。请重新发起提案。 |
HTTP 400,MCP-Protocol-Version 无效 | 使用能够协商 2025-11-25 或 2025-06-18 的客户端。 |
HTTP 405 | 客户端发送了 GET 或 DELETE。该接口仅支持 POST;请关闭 SSE 或会话相关功能。 |
tools/list 中缺少某个工具 | 与上表对比。缺少工具通常意味着客户端指向了较旧的环境。 |
客户资料、导入与销售阶段
客户档案读取包含网站、背景备注,以及可选的主营市场(main_markets)、品牌(brands)和产品(products)。读取仍按组织和客户负责人权限过滤;使用 REST 导入或客户编辑页面维护这些信息。
任务隐私
本人创建并分配给自己的任务默认标记为 private,即使关联客户也不例外。仅负责人本人可访问,经理和管理员无权绕过。team 任务对负责人、创建人和组织管理人员可见,其他销售人员不可访问。筛选、来源重试、提醒和代理调用均遵守同一权限边界,定时共享上下文不包含私密任务。
XLSX 读取与客户准备
GET /knowledge/files/:id/xlsx 通过已认证的知识库所有者读取保留的原始工作簿,沿用组织与资料库权限。响应为 {"extraction": ...};读取不会替换原始文件,也不表示 CRM 导入已完成。
| 查询参数 | 含义 |
|---|---|
sheetIndex | 从 0 开始的工作表序号,默认 0。 |
startRow、startColumn | 从 1 开始的坐标,默认 1。 |
maxRows、maxColumns | 每次最多 200 行、40 列,也是默认值。 |
结果包含固定的技能 ID、版本及摘要、文档元数据、有序工作表名称、原始单元格坐标、类型值与显示值、超链接标签及目标、合并区域,以及与缓存值分开的公式。缺失缓存会明确标记;公式与外部链接不会执行。coverage.covered、coverage.remaining 和 continuation 给出精确范围。用返回的续读参数再次读取;表头保留原始坐标。图表优先返回缓存序列,位图描述通过受治理 AI 生成;不可读取的视觉内容会产生警告及部分覆盖状态。有效空工作簿可成功返回;缺失元数据为 not provided。
具名解析错误包括 xlsx_corrupt、xlsx_encrypted、xlsx_legacy_binary 和 xlsx_unsafe_archive。资源上限为 400 个 ZIP 条目、总解压 32 MiB、每条目 8 MiB;额外分配限制为 16,000 个单元格、64,000 个 XML 标记、总 XML 8 MiB、XML 文本 2 MiB。超限明确拒绝,不会静默截断。技能身份或遥测故障单独报告。重新提取失败时保留上次有效结果及原始字节。
附件与助手读取范围
GET /crm/intake-artifacts/:id/reading 与助手的 read_artifact 接受 sheet(名称)、row_from/row_to 和 col_from/col_to。行列从 1 开始,包含首尾。每次最多读取 200 行、40 列;依据返回的完整性及剩余范围继续读取,不应把首个窗口视为整个工作簿。引用或准备客户时保留来源位置。这些是现有附件与助手操作,并非新增 MCP 工具名称。
客户画像将同一公司的重复行保留为独立联系人,包括空序号单元格及来源网站;不会按邮箱域名合并公司。单客户准备发现多家公司时返回 422 multiple_customers,助手转入现有批量审核。422 source_range_required 表示应为歧义输入选择更小的来源范围后重试。使用现有明确提交操作前,审核公司、每位联系人及网站。读取或准备成功不表示客户已经保存。
受治理的人类团队操作
所有接口复用 Auth 团队函数。新增委托权限 auth:teams:read 与 auth:teams:write 相互独立:写权限只允许提出和确认已审核变更,不包含读取工具。既有令牌不会自动获得权限,须通过 POST /auth/tokens 显式申请。签发以及每次读取、提案、确认、恢复均检查当前有效的所有者/管理员成员身份,以及对应实时 members:read/members:write 能力。撤销、过期、角色降级及不支持的平台/计划任务/同步身份均不能执行。
MCP 工具:auth_teams_read、auth_teams_change_propose、auth_teams_change_confirm、auth_teams_change_reject。提案参数包含变更字段和 idempotency_key;确认/拒绝使用 proposal_id 与 idempotency_key。CLI:atlas organisation teams read '<json>';atlas organisation teams propose '<json>' --idempotency-key KEY;atlas organisation teams confirm PROPOSAL_ID --idempotency-key KEY;atlas organisation teams reject PROPOSAL_ID --idempotency-key KEY。
REST 动作入口:POST /assistant/v1/actions/auth.teams.read、POST /assistant/v1/actions/auth.teams.change,及现有 POST /assistant/v1/proposals/:id/confirm 或 /reject。提案和决定须提供 Idempotency-Key。结果使用现有 atlas.action.v1 信封,数据与 Auth 团队/分配结果一致。团队变更属于管理类提案,执行前仍受政策暂停、到期、拒绝及实时权限检查约束。提案绑定原始主体、组织、规范化输入、版本依据和幂等键。委托令牌不能绕过政策;所有者决定沿用现有治理流程。
{"operation":"list","status":"active","limit":50}
{"operation":"team","team_id":"TEAM_ID","limit":50}
{"operation":"assignment","email":"[email protected]"}
{"operation":"create","name":"销售团队"}
{"operation":"rename","team_id":"TEAM_ID","name":"客户成功","expected_revision":1}
{"operation":"archive","team_id":"TEAM_ID","expected_revision":2}
{"operation":"assign","email":"[email protected]","team_id":"TEAM_ID","expected_assignment_revision":0,"expected_team_revision":1}
{"operation":"assign","email":"[email protected]","team_id":null,"expected_assignment_revision":1}
列表状态支持 active(默认)、archived、all,按 ID/邮箱稳定排序,使用不透明 cursor,默认 50 条、最多 100 条;原样传回 next_cursor。名称去除首尾空白后不能为空,最多 80 个 Unicode 字符。拒绝未知/多余字段。重命名和归档须提供当前 expected_revision;分配须提供 expected_assignment_revision,非空目标另须 expected_team_revision;移除分配必须省略目标版本。仅能归档无成员的有效团队,不提供角色或全局成员变更。
Auth 将变更、审计和操作回执原子提交。超时或响应丢失后,以相同提案和决定键重试:恢复经过实时准入,仅返回匹配的原始结果,不会再次执行;已执行提案随后过期仍可恢复。缺少回执不能绕过有效期。重复键对应不同输入或版本过期返回冲突;权限撤销返回拒绝;服务/存储不可用返回可重试失败,不能伪装为空成功。所有响应均为 no-store。先部署 Auth 回执迁移 0023_organisation_team_operation_receipts.sql、权限和生产接口,再部署 Agent 适配器;公开会话团队 REST 保持兼容。仅服务绑定可访问 /internal/teams/actions/read 和 /change/prepare、/change/execute、/change/recover,要求精确绑定请求及正文的断言,没有公开别名。
若确认请求超时,操作可能仍在提交。方案保持待定;在结果未确定时,拒绝与过期处理返回冲突。再次确认只查询原操作回执,不重复执行;若始终没有回执,方案保持待定,不能据此假定操作失败。
通过 MCP 与 CLI 读取工作台客户分析
只读操作 crm.workbench.customer_summary.read 与 crm.workbench.customer_contributors.read 沿用 crm:read 权限。普通租户会话与持有该授权的委托令牌,会在 CRM 查询前及返回前由 Auth 重新确定公司、已分配团队、本人或空范围。未分配有效团队的经理获得明确的空范围;无需团队管理权限,也无需确认操作。
MCP 提供只读工具 crm_workbench_customer_summary_read 与 crm_workbench_customer_contributors_read。概览输入严格为 {};明细输入为 {"metric":"customers","scope_revision":"<scope_revision>","limit":50},可选不透明的 cursor。指标包括 customers、active、at_risk、open_pipeline;每页默认50条,允许1–100条。额外字段及调用者提供的组织、负责人或范围提示均被拒绝。
atlas workbench customers summary
atlas workbench customers contributors '{"metric":"open_pipeline","scope_revision":"<revision>","limit":50}'
CLI 调用 POST /assistant/v1/actions/crm.workbench.customer_summary.read 与 POST /assistant/v1/actions/crm.workbench.customer_contributors.read,保留现有操作信封。游标字节须原样传递,并使用匹配的范围版本。每页明细与四项总数来自同一次当前 CRM 快照;分页不保证历史快照不变。
结果保留 customer-current-book-v1、公开范围元数据及 evaluated_at。商机 amount_by_currency 使用完整货币单位并按币种分组;unknown_amount_count 统计缺失金额。商机明细同时提供 customer_id/customer_name 与跟进项目名称及ID,不返回内部负责人名单。
响应均为 Cache-Control: no-store。输入或游标无效返回400;凭证与权限拒绝保留401/403;范围变化返回409 scope_changed,需重新读取概览;Auth/CRM 不可用返回503,不伪造零值。平台、定时及同步调用者不受支持。公开 CRM 路由仍仅接受会话,令牌通过受治理操作读取。先部署 Auth 精确允许列表与 CRM 断言入口,再部署 Agent 适配器;不增加迁移或权限范围。
Knowledge 页面与来源权限
此接口已实现但默认未启用。只有在完整的目标数据普查和产品影响审核通过后才可开放。本文不代表已在 staging 或生产环境上线。
ekb_page_list
ekb_page_read
ekb_page_revisions_list
ekb_page_revisions_read
ekb_page_create_propose / ekb_page_create_confirm / ekb_page_create_reject
ekb_page_update_propose / ekb_page_update_confirm / ekb_page_update_reject
ekb_page_decide_propose / ekb_page_decide_confirm / ekb_page_decide_reject读取参数沿用 REST 字段,按需增加 pageId 或 revision。propose 使用扁平的操作字段及 idempotency_key;confirm/reject 使用 {proposal_id,idempotency_key}。提案不是已完成的写入;确认后仍可能因权限或来源变化被拒绝。提案预览和历史回执不保存可直接重放的页面正文。
ekb.page.list, ekb.page.read, ekb.page.create, ekb.page.update, ekb.page.decide, ekb.page.revisions.list, ekb.page.revisions.read.
个人页面仅限所有者;公司页面的贡献者需要当前 knowledgeFiles 写权限,审核需要 knowledge 写权限。普通公司读者只能看到已批准版本;view=current 仅供作者或审核者。每次读取及重试都重新检查全部来源。来源被撤回、修正或无权访问时,整份衍生内容不可用,包括摘要、引用、相关标题和数量。没有完整来源记录的历史内容以及 Sales 依赖内容保持不可用。core 回退仅从当前原始片段进行关键词检索;纯语义检索返回 source_unavailable,未验证的向量排序不会进入模型上下文。原始文件标题、正文片段、下载和原有权限不变。
读取需要 ekb:read;返回页面内容的 delegated 写操作同时需要明确授予 ekb:read 和 ekb:write。idempotencyKey 是 EKB 操作标识,不能与提案或确认请求的 idempotency_key 混用。保持相同正文和标识重试;409 conflict 表示需要重新读取并审核当前版本。404 source_unavailable 不披露不可读来源;503 read_unavailable 表示无法确认读取结果。内部适配器可使用签名 URL 的 receiptOnly=true 仅恢复既有回执;无回执时返回 404,绝不产生新操作。
合并客户
需要当前客户访问权限。读取与审阅使用 crm:read;提交、继续及取消使用 crm:write,仍须通过 CRM 的当前角色和客户权限检查。组织和操作人来自已验证的凭据,输入不能包含 org_id。此说明对应本地候选功能,不代表已在生产环境开放;完整流程验收前不得启用。
- 选取 2–10 个客户,先提交
customer_ids和可选的survivor_id进行只读审阅。 - 按返回的
selection修改选择,再次审阅完整选择。查看每个值的来源、时间、冲突、关联记录及负责人影响。latest不会代替必须明确作出的决定;时间相同、主联系人、计划及缺失决定等阻碍须先解决。choices和custom_field_sources的值是来源客户 ID。 - 向操作人展示最终名称、保留的原始资料数量、负责人及访问变化,取得明确确认。发送前持久保存唯一的
request_id、完整选择、preview_digest和expires_at。提交时加上confirmed:true;不能用通用--yes跳过审阅。 - 持续查看同一操作;只有
state:complete表示已发布。pending仍在处理,blocked需要按阻碍处理。响应丢失时用同一request_id查询,不能另建请求;继续操作只用已有operation_id,不传替代选择。
审阅过期或数据变化后须重新审阅,不能绕过 preview_digest。只有进入 apply 前才可请求取消;以 state:cancelled 为准,取消不是撤销。已开始应用的操作应继续恢复。完成后从合并历史查看保留的关联原始资料;原始资料只读,内容仍按当前访问权限过滤,无自动 Undo。
crm_customer_merge_preview
crm_customer_merge_commit
crm_customer_merge_request
crm_customer_merge_status
crm_customer_merge_resume
crm_customer_merge_cancel
crm_customer_merge_history
crm_customer_merge_originalpreview 接受初始选集或完整选择。commit 接受完整且明确确认的提交体。request 接受 {request_id};status、resume、cancel 接受 {operation_id};history 接受 {customer_id};original 接受 {operation_id,source_id}。工具仅在已配置签名 CRM 桥接且有对应 scope 时列出;调用仍检查当前权限。结果保留 http_status 和 data;202 的 pending 不是完成。确认只能在操作人已明确批准后提交,不能由模型自行推断。
遇到 409 merge_blocked、preview_stale、preview_expired 或请求查询返回 404 时,仍须保留同一 request_id;并发提交可能已经获准执行。重新审阅并明确确认后,继续使用同一编号重试。遇到 idempotency_conflict 时,查询同一编号并恢复已有操作,不能替换已保存的计划。只有确认 state:complete 或 state:cancelled 后才可结束使用该编号。
搜索 Atlas
使用 atlas.search 查找当前身份可访问的记录和内容。此接口只读取;它不会发送邮件、保存更改或调用 AI。以下说明对应待部署的候选实现,不代表线上验收已经通过。
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"atlas_search","arguments":{"query":"电机","kinds":["customer","task"],"limit":10}}}输入 query 为 1–100 个 UTF-16 单元,不允许控制字符;可选 kinds 为不重复的类别数组,limit 为每类别 1–20 条(默认 10)。类别:customer, contact, opportunity, task, work, mail, document, knowledge, chat, assistant.
返回 atlas.action.v1,其结果包含 data.query、items 和 sections。每个请求类别均有状态:complete 表示读取完成,unavailable 表示该来源或凭据不受支持,error 表示读取失败。hasMore 只统计可访问的匹配项。一个类别失败不影响其他类别;可使用原查询重试。
聊天搜索使用 GET /crm/communications/authority/readable?strict=1。已确认的拒绝或空授权集返回 200 {items:[]};权限服务不可用、响应格式错误或存储失败返回 503。搜索将这些失败标为 error,不返回聊天条目或计数。返回结果前会再次检查邮箱授权;授权变化也会撤回该类别的结果。不带此选项的原有权限查询仍保留返回空集的行为。
入口沿用 crm:read。普通成员会话始终携带此传输 scope,不受 CRM 设置权限影响;各所属服务仍单独执行访问检查。任务另需 tasks:read,文件与知识另需 ekb:read。仅持有 EKB 或 Tasks scope 的令牌应使用原有领域接口。委托令牌不能通过此接口读取私人 chat 或 work;它们沿用普通会话权限。assistant 在独立身份后端可用前返回 unavailable。邮件索引未就绪或失效时,mail 返回 unavailable;不会把摘要搜索伪装成完整正文搜索。
每条结果仅含 kind,id,title 及需要时的 subtitle,snippet,customerId,connectionId,threadKey,fileId,sourceId。标题和副标题最多 200 个单元,摘要最多 300;结果不携带任意网址或执行回调。查询在所属服务的结果上限之前匹配,仍受组织、负责人、任务隐私、邮箱授权、聊天来源及知识可见性限制。
另行授权应用 0167_comm_mail_search_text.sql 并发布 CRM 后,现有 CRM 定时处理器会在已配置的 cron 周期中,自动为已启用 Inbox 的组织调用 runScheduledMailContentBackfill。每次最多处理 10 条、耗时预算 5 秒;持久游标支持续跑和重试,不让失败来源阻塞后续来源。缺少迁移时维护保持停用。检查仅含计数的 [crm.cron] mail content backfill 日志;遍历结束不等于所有正文都已成功索引。未完成、解析失败或已失效的可读来源仍使邮件类别不可用。新导入邮件自动建立索引;源更改、丢弃或删除会使旧索引失效。搜索不会触发索引。使用实时搜索前,请分别核验部署版本和可读内容的索引就绪状态。
邮件导入和旧邮件回填使用带 SHA-256 摘要的独立不可变存储键。发布时须一并包含导入器、附件及回复读取器兼容支持,以及第二版索引和回填逻辑。第一版索引须重建后才可用。回填会固定当前保留的快照,无法恢复历史可变存储键竞争中已被覆盖的原始字节;旧对象会保留。回滚时必须保留新存储键的读取兼容支持,优先向前修复。
助手自动能力配置
新建命名助手会自动沿用 Atlas 现有的任务能力解析:组织启用的技能、可调用的已连接插件工具、内置功能和有权读取的知识。已发布的组织指导和当前用户的生效个人记忆仍由原有模块提供。无需手动分配能力;不会安装服务、增加权限或发布记忆。
目录通过 setupSchema: atlas.assistant-setup.v1 声明支持。明确的中英文工作名称会推断工作重点;名称不明确或包含冲突职责时,在创建提案前返回 400 assistant_purpose_required。请通过可选字段 identity.purpose 提供一条去除首尾空格、1–400 字且不含控制字符的描述。核对工作重点后明确确认。已保存的命名身份可包含 setup: {mode: automatic, focus, source: name|clarified};旧身份不含该字段。只改头像保留工作重点;改名会重新推断或要求澄清,明确填写的用途优先。工作重点仅作为不受信任的用户数据引导任务技能选择,不授予权限。
共享治理追踪保留运行身份、用量及策略等元数据,不包含私人对话正文、计划或工具输入输出。本人对话历史保持可用。