feat: 打通 Dispatcher→MCP 工具调用链路 (core NATS request-reply)
第 4 层 Dispatcher 经 NATS request-reply + 队列组同步调用第 5 层 MCP 工具, 工具不可用/超时即降级,不阻断主流程。 - shared/contract: ToolCall/ToolResult + sundynix.tools.go.* subject 约定 + ToolSubjectGo/Py - shared/bus: CallTool(发起) / ServeTool(队列组订阅+应答) - mcp-go: 接共享 bus,gateway 通配订阅按工具名分发(wiki_search/echo),main 优雅退出 - dispatcher: ToolCaller 接口 + Orchestrator.retrieveContext(调 wiki_search,超时3s降级) - e2e: TestToolCallRoundTrip(PASS);demo.sh 加 mcp-go(就绪门避免启动竞态),live 跑通 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
|
||||
1. `Gateway` 解析 DSL → **Publish** `sundynix.tasks.*` (NATS Queue)
|
||||
2. `Dispatcher` 订阅任务 → `Eino` 图编排 → 调用 `LLM Pool`
|
||||
3. 经 NATS 调用第 5 层 `MCP Tools`
|
||||
3. 经 NATS **request-reply** 同步调用第 5 层 `MCP Tools`(`sundynix.tools.go.*` 队列组负载均衡,工具不可用即降级)
|
||||
4. 结果以零拷贝 Token Stream 经 `sundynix.streams.task_id` 回流 → SSE/WS 推给 `Client`
|
||||
|
||||
## 快速开始
|
||||
@@ -27,8 +27,8 @@
|
||||
### 无 Docker — 一键验证任务流(推荐先跑这个)
|
||||
|
||||
```bash
|
||||
make demo # 内嵌NATS + Gateway + Dispatcher,提交一个 DSL 任务,看 Dispatcher 消费到
|
||||
make e2e # 仅跑共享 bus 的端到端测试(go test,内嵌 NATS)
|
||||
make demo # 内嵌NATS + Gateway + Dispatcher + MCP-Go,提交 DSL 任务,看任务流+工具调用+Token流闭环
|
||||
make e2e # 仅跑共享 bus 的端到端测试(go test,内嵌 NATS):任务流 / 工具调用 / Token 流
|
||||
```
|
||||
|
||||
`make demo` 实测输出:
|
||||
|
||||
Reference in New Issue
Block a user