Skip to content
预计 1 分钟右侧目录可快速定位

Routing / Provider Adaptation ​

Coordinator 的职责 ​

Symbol作用
createCoordinatorInferenceRouter()routing owner + local transcript owner
execute()建 user entry → provider request → stream assistant → persist assistant
dispatch()拦截 sendPrompt / transcript / reaction operations
queuesper-agent Promise queue,防止同一 agent 的 Turn 乱序
runRoutedProviderText()provider-specific inference execution
createRoutedMcpBridge() call siteClaude Code 走 MCP bridge
direct tools + executeTool其他 provider 可直接接 internal tools

Provider tool adaptation ​

text
provider == claude-code
  → createRoutedMcpBridge()
  → provider gets mcpServerUrl

other routed provider
  → listRoutedMcpTools()
  → provider gets direct tool definitions
  → executeTool() dispatches internal tool

关键点:同一内部 capability 可以通过不同 provider adapter 暴露;Harness core 不应该把“工具只能通过 MCP”写死。

Per-agent serialization ​

dispatch("sendPrompt") 从 queues 取该 agent 上一次 Promise,新 Turn 链在 previous 后面执行。它解决的是同一 agent transcript / turn order,而不是全局只能串行。

Stream normalization ​

conversation-state.ts 中 sanitizeFullStream()、sanitizeUsage()、createSandResolvedModelTracker() 处理 provider event / usage / resolved model 的归一化。Routing 不只是挑 provider,还需要把 provider-specific output 收敛成 Runtime 可依赖的语义。

本地定位 ​

bash
rg -n "createCoordinatorInferenceRouter|const execute|dispatch\(|queues|runRoutedProviderText|createRoutedMcpBridge" source/node-agent-coordinator/inference-router.ts
rg -n "sanitizeFullStream|sanitizeUsage|createSandResolvedModelTracker|sanitizePromptSessionUsage" source/host/runner/conversation-state.ts

固定源码 ​

关联知识文章 ​

AI Engineering · Agent · Harness · Backend Systems