
1. 从 Claude 合并入口说起医疗问答先隔离凭证再隔离数据Claude 把 Cowork 与聊天入口合并到同一个 Claude 体验里材料只给出这条变动没有正文细节。作为医疗问答产品经理我更关心另一件事当 Claude Code 的settings.json里要填ANTHROPIC_BASE_URLCodex 的config.toml里要填model_providerCC Switch 还要维护供应商三件套时医疗问答的敏感信息隔离该从哪一步开始。我的做法是先去 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_intro 准备调用凭证再把 Base URL 指向https://taotoken.net/api最后用一份隔离清单约束每一次模型调用。这样做的原因很直接Claude 入口合并、Cowork 与聊天统一改变的是前端使用方式医疗问答真正容易出问题的是调用凭证混用、上下文夹带直接标识符、Token 计量不透明以及日志里把原始问题写进去。换句话说敏感信息隔离不是换一个 Base URL 就结束而是从 Key 分域、模型配置、数据脱敏、日志审计到 Token 消耗记录的一整套工程动作。下面按可跟做步骤展开你可以边看边在本地整理自己的医疗问答隔离清单。2. 医疗问答敏感信息隔离清单12 项检查表先给出一份可以直接复用的清单。它不依赖某个模型供应商但在接入 TaoToken 时尤其有用因为医疗问答通常既要用 Claude 聊天能力又可能用 Claude Code / Codex 做辅助工具链。清单的目标是模型只看到去标识化后的最小必要信息调用凭证按项目隔离Token 消耗可追踪日志不成为新的泄露源。编号检查项落地动作验收证据1数据分类把姓名、电话、身份证、病历号、住址、就诊卡号列为直接标识符日期、机构、科室、年龄段列为准标识符有一份字段分级表2入口脱敏在进入模型前做正则 词典 人工抽检替换直接标识符为占位符脱敏前后样例3上下文最小化只传当前问题必要字段不传完整病历、完整处方、完整检查报告Prompt 模板审查记录4凭证分域开发、测试、生产使用不同 Key医疗问答单独 Key不共用个人 KeyTaoToken API Keys 页面截图或编号记录5Base URL 统一工具配置统一写https://taotoken.net/api不要在 Base URL 后拼接 UTM 参数配置文件审查通过6模型调用隔离Claude Code 用ANTHROPIC_*Codex 用config.toml禁止把ANTHROPIC_*套到 Codex配置模板分开维护7禁止直连生产库不允许 MCP / Agent 直连 Oracle、MySQL、生产 HIS 等数据库SQL 由读者在本地或隔离库执行架构评审结论8日志脱敏请求日志、响应日志、错误日志都不落原始问题只记录 request id、模型、Token 数、耗时日志字段清单9Token 记录按项目、租户、模型记录 input/output/cache Token便于成本与异常审计token_usage.jsonl或本地表10输出复核模型输出进入业务前做标识符二次检测命中则拦截或脱敏输出过滤规则11缓存策略医疗问答默认不做跨用户缓存同一用户短期缓存也要带脱敏标记缓存键设计说明12应急轮换发现误传敏感信息时立即轮换 Key、清理日志、检查调用链应急预案与演练记录这份清单里第 4、5、6、7 项是最容易在接入阶段踩坑的地方。很多人一上来就在 Claude Code 里填 Key在 Codex 里也复制同一份环境变量结果医疗问答专用 Key 和通用开发 Key 混在一起Token 消耗无法归因出了误传也无法快速定位。更稳妥的顺序是先在 TaoToken 官网获取 Key再按工具分别写配置最后把 Token 记录接入应用层。3. 在 TaoToken 准备调用凭证Key、Base URL 与项目分域在准备填写调用凭证前打开 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_get_key 获取 Key。建议不要在聊天记录、代码仓库、工单系统里明文保存 Key。医疗问答项目至少准备两个 Key一个用于开发调试一个用于生产。如果测试环境会放脱敏不彻底的样本最好再单独一个测试 Key。Key 的命名也要可审计例如medical-qa-dev、medical-qa-prod、medical-qa-eval不要用“我的 key”“临时 key”这类无法追责的名字。创建 Key 时可以从 TaoToken 的 API Keys 入口进入https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_api_keys拿到 Key 后先不要急着写进代码。用环境变量做一层隔离避免配置文件和仓库泄露。示例# 本地开发环境不要把真实 Key 提交到仓库 export TAOTOKEN_API_KEYYOUR_API_KEY # 医疗问答生产环境建议单独变量 export TAOTOKEN_MEDICAL_API_KEYYOUR_API_KEY # 所有工具配置统一使用这个 Base URL注意它不带 UTM 参数 export TAOTOKEN_BASE_URLhttps://taotoken.net/api这里反复强调一次Base URL 是工具配置项固定为https://taotoken.net/api不要写成带?utm_source...的地址。UTM 参数用于官网入口统计不应该进入 API 请求路径。否则 Claude Code 或 Codex 可能把查询参数当作路径的一部分出现 404 或签名异常。项目分域建议这样做医疗问答主应用只使用TAOTOKEN_MEDICAL_API_KEY调用日志标记tenantmedical_qa。内部研发工具使用TAOTOKEN_API_KEY不接触真实用户问题。评测集跑批使用独立 Key只允许访问脱敏测试集。个人实验不要使用生产 Key不要让个人脚本读取生产环境变量。如果团队使用 CC Switch 管理多个 CLI 供应商也要把“医疗问答”作为单独配置项而不是在全局配置里切换。这样即使有人临时切到别的供应商医疗问答的生产调用也不会被误切走。4. Claude Code 配置settings.json 中的 ANTHROPIC_* 与隔离式调用Claude Code 读取~/.claude/settings.json或项目级配置时会使用ANTHROPIC_*环境变量。医疗问答项目建议使用项目级配置或者至少把医疗问答专用 Key 放在独立 shell 会话里不要和通用开发 Key 混用。示例settings.json{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_CLAUDE_MODEL_ID, ANTHROPIC_SMALL_FAST_MODEL: YOUR_FAST_MODEL_ID, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1 } }把YOUR_API_KEY替换成你在 TaoToken 创建的医疗问答专用 Key。YOUR_CLAUDE_MODEL_ID和YOUR_FAST_MODEL_ID按 TaoToken 模型对话页面或 Claude Code 文档中可用的模型 ID 填写不要凭记忆写。配置完成后可以在终端验证# 检查环境变量是否生效 env | grep ANTHROPIC # 启动 Claude Code claude --version claude如果出现 401优先检查三件事ANTHROPIC_AUTH_TOKEN是否已经替换为真实 Key当前 shell 是否加载了配置文件是否有旧的全局 Key 覆盖了项目配置。如果出现 404优先检查ANTHROPIC_BASE_URL是否误写成https://taotoken.net/api/v1/messages或带上了 UTM 参数。正确写法就是https://taotoken.net/api。Claude Code 在医疗问答场景里的风险不在“能不能连上”而在“连上以后喂了什么”。不要在 Claude Code 里直接读取生产库、导出原始病历、执行未脱敏 SQL。正确做法是在本地或隔离库执行查询先做脱敏和字段裁剪再把最小必要上下文交给模型。比如只在本地生成去标识化摘要再把摘要贴到 Claude Code 中讨论逻辑。涉及数据库连接串、患者标识、医生姓名、医院名称的内容不应该进入对话历史。如果你用 Claude Code 做代码辅助也要遵守医疗项目隔离原则医疗问答仓库可以单独配置.claude/settings.json但不要把生产 Key 写进去。更推荐在启动脚本中注入环境变量#!/usr/bin/env bash set -euo pipefail export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKEN${TAOTOKEN_MEDICAL_API_KEY:?missing TAOTOKEN_MEDICAL_API_KEY} export ANTHROPIC_MODELYOUR_CLAUDE_MODEL_ID export ANTHROPIC_SMALL_FAST_MODELYOUR_FAST_MODEL_ID claude这样仓库里只保存脚本不保存真实 Key。医疗问答的 Token 消耗也更容易按项目统计因为所有调用都来自TAOTOKEN_MEDICAL_API_KEY。5. Codex 配置config.toml 不要套 ANTHROPIC_*Codex 使用config.toml字段体系与 Claude Code 不同。常见的错误是把ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN复制到 Codex 配置里结果 Codex 读不到 provider或者把 Anthropic 风格字段当成 OpenAI 风格字段解析。正确做法是使用 Codex 自己的model_provider、base_url、env_key、wire_api。示例# ~/.codex/config.toml model_provider taotoken_medical model YOUR_CODEX_MODEL_ID model_reasoning_effort medium [model_providers.taotoken_medical] name TaoToken Medical QA base_url https://taotoken.net/api env_key TAOTOKEN_MEDICAL_API_KEY wire_api chat对应环境变量export TAOTOKEN_MEDICAL_API_KEYYOUR_API_KEY export TAOTOKEN_BASE_URLhttps://taotoken.net/api这里同样不要给base_url加 UTM。Codex 的 provider 名称要和model_provider完全一致env_key指向的环境变量必须存在。启动前可以检查echo ${TAOTOKEN_MEDICAL_API_KEY:ok} codex --version如果 Codex 报 provider 不存在检查model_provider taotoken_medical和[model_providers.taotoken_medical]是否大小写一致。如果报 401检查env_key指定的变量是否 export 成功。如果报模型不存在回到 TaoToken 模型对话或文档中确认可用模型 ID不要自己拼接。医疗问答项目里Codex 更适合做代码、配置、测试用例辅助不应直接承载患者问答原文。你可以为 Codex 单独设置一个 provider例如taotoken_medical_codex只允许访问脱敏后的工程上下文。不要把医疗问答生产 Key 填进 Codex 配置也不要把 Codex 的config.toml与 Claude Code 的settings.json互相复制。6. CC Switch 三件套Base URL、API Key、模型名如何不混淆CC Switch 通常用来切换不同 CLI 工具的供应商配置。无论界面怎么变核心都是三件套Base URL、API Key、模型名。医疗问答接入 TaoToken 时建议把三件套固定成如下逻辑工具Base URLKey 来源模型字段Claude Codehttps://taotoken.net/apiANTHROPIC_AUTH_TOKENANTHROPIC_MODEL/ANTHROPIC_SMALL_FAST_MODELCodexhttps://taotoken.net/apienv_key TAOTOKEN_MEDICAL_API_KEYmodelCC Switch 供应商项https://taotoken.net/api医疗问答专用 Key按工具分别填写在 CC Switch 中新增一个配置项名称可以叫TaoToken Medical QA。Base URL 填https://taotoken.net/api。API Key 填YOUR_API_KEY对应的真实值但更推荐让 CC Switch 引用环境变量而不是长期保存明文。模型名要按工具区分Claude Code 使用 Claude 模型 IDCodex 使用 Codex 侧模型 ID。不要把 Claude Code 的ANTHROPIC_*复制到 Codex也不要把 Codex 的model_provider复制到 Claude Code。切换后建议做三步检查# 1. 检查 Claude Code 侧变量 env | grep -E ANTHROPIC|TAOTOKEN # 2. 检查 Codex 侧配置 grep -n base_url\|env_key\|model_provider ~/.codex/config.toml # 3. 分别启动验证 claude --version codex --version如果 CC Switch 切换后仍然走旧端点优先检查 shell 环境变量优先级。很多情况下是~/.bashrc、~/.zshrc、项目.env、CC Switch 自身配置同时存在后者被前者覆盖。医疗问答项目最好只保留一个配置来源避免“界面上切了终端里没切”。7. 记录医疗问答 Token 消耗从 usage 到本地 JSONL医疗问答的 Token 记录不是为了好看而是为了成本归因、异常检测和审计。记录时不要写原始问题不要写患者标识只记录可审计字段时间、request id、租户、模型、输入 Token、输出 Token、缓存读 Token、缓存写 Token、耗时、脱敏等级、是否命中规则。示例 Python 包装函数import json import time import pathlib USAGE_FILE pathlib.Path(token_usage.jsonl) def log_usage(request_id, model, usage, tenantmedical_qa, deid_levelL2): record { ts: time.strftime(%Y-%m-%dT%H:%M:%S%z), request_id: request_id, tenant: tenant, model: model, input_tokens: usage.get(input_tokens, 0), output_tokens: usage.get(output_tokens, 0), cache_read_input_tokens: usage.get(cache_read_input_tokens, 0), cache_creation_input_tokens: usage.get(cache_creation_input_tokens, 0), deid_level: deid_level, } with USAGE_FILE.open(a, encodingutf-8) as f: f.write(json.dumps(record, ensure_asciiFalse) \n)调用模型后如果响应体是 Anthropic Messages 风格usage通常在response[usage]。你只需要把request_id、model、usage传入即可。不要落prompt、messages、completion原文。汇总可以本地执行jq -r select(.tenantmedical_qa) | [.ts, .model, .input_tokens, .output_tokens] | tsv token_usage.jsonl \ | awk -F\t {inp[$2]$3; out[$2]$4} END {for (m in inp) print m, inp[m], out[m]}如果团队用本地分析库也可以在本地脱敏数据上跑 SQL。注意SQL 由读者在本地或隔离环境执行不要连生产库不要把数据库连接串交给模型。-- 在本地脱敏分析库执行不要连生产库 select substr(ts, 1, 10) as day, model, sum(input_tokens) as input_tokens, sum(output_tokens) as output_tokens, sum(cache_read_input_tokens) as cache_read_tokens from read_json_auto(token_usage.jsonl) where tenant medical_qa group by day, model order by day desc, model;有了这张表你可以回答几个关键问题医疗问答每天消耗多少 Token哪个模型用得最多缓存命中是否异常某个租户是否突然放量是否存在开发 Key 混入生产调用。Token 记录和敏感信息隔离是互相支撑的没有记录无法审计记录里带了原文又会制造新的泄露面。8. 排障与审计401/404、模型不存在、日志脱敏接入 TaoToken 后常见问题可以按下面顺序排查。401 未授权检查 Key 是否替换了YOUR_API_KEY检查 Claude Code 的ANTHROPIC_AUTH_TOKEN是否生效检查 Codex 的env_key指向的环境变量是否存在检查是否误用了已删除或过期的 Key。不要用生产 Key 在本地反复试错建议先用开发 Key 验证通路。404 路径错误检查ANTHROPIC_BASE_URL或 Codexbase_url是否写成https://taotoken.net/api。不要写成https://taotoken.net/api/v1/messages不要带?utm_source...也不要把模型路径和 Base URL 拼错。官网 UTM 链接只用于访问控制台不用于 API 请求。模型不存在回到 TaoToken 模型对话或 Claude Code 文档确认可用模型 ID。模型 ID 不要靠猜也不要把别家供应商的模型名直接填进来。Claude Code 使用 Claude 侧模型字段Codex 使用 Codex 侧模型字段两者不要互换。Codex provider 报错检查config.toml中model_provider与[model_providers.xxx]是否一致检查wire_api是否按工具文档填写检查env_key是否拼写正确。不要把ANTHROPIC_*写进 Codex 的config.toml也不要指望 Codex 读取 Claude Code 的settings.json。CC Switch 切换无效检查终端是否重启检查env | grep输出检查项目.env是否覆盖了全局配置检查 IDE 内置终端是否继承系统环境变量。日志脱敏审计每周抽查一次请求日志、错误日志、Token 汇总。重点看有没有原始问题、患者标识、数据库连接串、SQL 语句、工具调用参数被写入日志。如果发现误传敏感信息立即轮换相关 Key清理日志复核调用链并把该场景加入脱敏规则。医疗问答的日志只保留审计必要字段request id、租户、模型、Token 数、耗时、脱敏等级、错误码。不要为了排障方便把完整 prompt 落盘。9. 落地顺序与 CTA模型对话 → Coding Plan → 创建 Key → Claude Code 文档把上面的内容收敛成一条可执行路径先做敏感信息隔离清单明确哪些字段绝不进入模型上下文。去 TaoToken 官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_final 准备账号与调用凭证。用模型对话验证医疗问答基础问答链路确认 Base URL 为https://taotoken.net/api。按团队用量选择 Coding Plan避免开发、测试、生产共用一套凭证。在控制台创建医疗问答专用 API Key并写入环境变量不要提交到仓库。按 Claude Code 文档配置settings.json或ANTHROPIC_*环境变量Codex 单独维护config.toml。在应用层记录 Token 消耗定期审计发现异常立即轮换 Key。如果你准备开始接入可以按高转化路径逐步操作模型对话验证https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_chatCoding Plan 了解https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_coding_plan创建 API Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_api_keysClaude Code 文档https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentmedical_qa_claude_code_doc医疗问答用 Claude 聊天真正的隔离不是把模型换成另一个入口而是把凭证、数据、日志、Token 计量拆开管理。Claude 把 Cowork 与聊天合并成一个 Claude对产品体验是简化对医疗问答工程侧反而是提醒入口越统一越要把底层调用边界划清楚。Base URL 指向https://taotoken.net/apiKey 用YOUR_API_KEY占位并分域保存敏感信息在进入模型前完成脱敏Token 消耗在本地留下可审计记录。做完这几步再谈用 Claude 提升医疗问答效率才算有工程底线。