Claude Code 如何判断工具调用该并发还是串行?

Claude Code 如何判断工具调用该并发还是串行? 在 Claude Code 里,模型经常会调用工具,比如读文件、搜索代码、执行 Bash 命令、编辑文件等。 一个很自然的问题是: Claude Code 是怎么知道多个工具应该并发执行,还是一个一个串行执行的? 答案可以概括为一句话: 模型负责决定“这一轮要不要发多个工具调用”,客户端负责判断“这些工具能不能安全并发执行”。 一、整体流程 Claude Code 并不是靠模型返回一个明确的 parallel: true 或 serial: true 字段来判断。 它的逻辑分成两层: 提示词层:告诉模型什么时候应该一次性发多个工具调用 执行层:客户端根据工具的安全属性决定是否真的并发执行 流程大概如下: flowchart TD A[用户提出任务] --> B[系统提示词指导模型] B --> C{任务之间是否独立?} C -->|独立| D[模型在同一轮返回多个 tool_use] C -->|依赖| E[模型先返回一个 tool_use] D --> F[客户端收到多个工具调用] E --> F F --> G{工具是否并发安全?} G -->|是| H[并发执行] G -->|否| I[串行执行] H --> J[返回 tool_result] I --> J J --> K[模型继续下一轮推理] 二、模型侧:通过提示词引导并发 Claude Code 的系统提示词里有类似这样的规则: ...

2026-04-07 · 2 分钟 · horan

pgvector 向量索引

向量相似度、召回率与向量索引:从 HNSW 到 IVFFlat 向量检索的核心问题是: 给定一个查询向量,如何从大量向量中快速找出最相似的 topK 个结果。 在小数据量下,可以直接暴力计算所有向量距离。但当数据达到百万、千万甚至更大规模时,就需要向量索引,例如 HNSW、IVFFlat、DiskANN 等。 本文整理向量相似度、召回率、pgvector、Milvus、HNSW、IVFFlat 的基本原理和工程选择。 1. 常见向量相似度计算方法 1.1 余弦相似度 Cosine Similarity 余弦相似度衡量两个向量方向是否接近: 1 cos(a, b) = (a · b) / (||a|| ||b||) 越接近 1 越相似。 适合: 文本 embedding 语义搜索 RAG 检索 向量长度不重要,只关心方向的场景 在大模型 embedding 检索里,余弦相似度非常常见。 1.2 点积 Dot Product / Inner Product 1 sim(a, b) = a · b 如果向量已经归一化,点积和余弦相似度等价。 适合: 已归一化 embedding 推荐系统 最大内积搜索 MIPS 注意:未归一化时,点积会受向量模长影响。 1.3 欧氏距离 L2 Distance 1 dist(a, b) = sqrt(sum((ai - bi)^2)) 距离越小越相似。 ...

2026-02-02 · 6 分钟 · horan