Skip to main content

概述

Shannon 的内部架构使用 gRPC(HTTP/2 + Protocol Buffers)实现高性能服务间通信。本文档提供了所有 5 个服务和 39 个 RPC 方法的完整 Protocol Buffer 定义。
公共 vs 内部 API:gRPC 服务为内部接口,不通过公共 SDK 暴露。应用集成请使用网关 REST API(http://localhost:8080/api/v1/*)或 Python SDK(ShannonClient(base_url=...))。
服务
  • OrchestratorService(20 个 RPC)- 任务编排、工作流管理和调度
  • StreamingService(1 个 RPC)- 实时事件流
  • AgentService(6 个 RPC)- Agent 执行和工具管理
  • LLMService(5 个 RPC)- LLM 提供商网关
  • SessionService(7 个 RPC)- 多轮对话管理
总计:39 个 RPC 方法

通用类型

所有服务共享的类型。

ExecutionMode

用途:确定任务执行策略
  • SIMPLE:直接工具调用或缓存查找(最快)
  • STANDARD:单 Agent LLM 驱动执行(平衡)
  • COMPLEX:多 Agent DAG 并行执行(功能最强)

ModelTier

成本优化:Shannon 在层级内自动选择模型以优化成本
  • Small:每 1K token $0.001-0.002
  • Medium:每 1K token $0.01-0.03
  • Large:每 1K token $0.03-0.075

StatusCode


TaskMetadata

示例

TokenUsage


ExecutionMetrics


OrchestratorService

任务编排和工作流管理服务。

服务定义


SubmitTask

提交新任务执行。 请求
响应
示例(gRPC CLI):
响应

GetTaskStatus

检索任务的当前状态和结果。 请求
响应
示例
响应

CancelTask

取消正在运行的任务。 请求
响应

ListTasks

列出任务,支持可选过滤。 请求
响应

GetSessionContext

检索会话上下文和历史记录。 请求
响应

ListTemplates

列出可用的任务模板。 请求
响应

ApproveTask

批准或拒绝需要人工审批的任务。 请求
响应

GetPendingApprovals

列出待审批请求。 请求
响应

StreamingService

实时事件流服务。

服务定义


StreamTaskExecution

流式传输任务的实时事件(服务器流式 RPC)。 请求
响应(流):
示例(gRPC CLI):
响应流
事件类型过滤
流恢复
参见事件类型目录了解所有事件类型。

AgentService

Agent 执行和工具管理服务。

服务定义


ExecuteTask

使用单个 Agent 执行任务(一元 RPC)。 请求
响应

StreamExecuteTask

执行任务并流式返回更新(服务器流式 RPC)。 请求:与 ExecuteTask 相同 响应(流):

GetCapabilities

获取 Agent 能力。 请求
响应

HealthCheck

检查 Agent 服务健康状态。 请求
响应

DiscoverTools

通过查询或类别发现可用工具。 请求
响应
示例

GetToolCapability

获取特定工具的详细能力。 请求
响应

LLMService

LLM 提供商网关服务。

服务定义


GenerateCompletion

生成 LLM 补全(一元 RPC)。 请求
响应

StreamCompletion

生成流式 LLM 补全(服务器流式 RPC)。 请求:与 GenerateCompletion 相同 响应(流):

EmbedText

生成文本嵌入向量。 请求
响应

AnalyzeComplexity

分析查询复杂度并推荐执行模式。 请求
响应
示例
响应

ListModels

列出可用的 LLM 模型。 请求
响应

SessionService

多轮对话管理服务。

服务定义


CreateSession

创建新的对话会话。 请求
响应

GetSession

检索会话详细信息。 请求
响应

UpdateSession

更新会话上下文或延长 TTL。 请求
响应

DeleteSession

删除会话。 请求
响应

ListSessions

列出用户会话。 请求
响应

AddMessage

向会话历史记录添加消息。 请求
响应

ClearHistory

清除会话消息历史记录。 请求
响应

错误处理

状态码

所有响应都包含 StatusCode
  • STATUS_CODE_OK (1) - 成功
  • STATUS_CODE_ERROR (2) - 通用错误
  • STATUS_CODE_TIMEOUT (3) - 操作超时
  • STATUS_CODE_RATE_LIMITED (4) - 超出速率限制
  • STATUS_CODE_BUDGET_EXCEEDED (5) - 超出 token/成本预算

gRPC 状态码

使用的标准 gRPC 状态码:
  • OK (0) - 成功
  • CANCELLED (1) - 请求已取消
  • INVALID_ARGUMENT (3) - 无效的请求参数
  • DEADLINE_EXCEEDED (4) - 超时
  • NOT_FOUND (5) - 资源未找到
  • ALREADY_EXISTS (6) - 资源已存在
  • PERMISSION_DENIED (7) - 权限不足
  • RESOURCE_EXHAUSTED (8) - 超出速率限制/配额
  • UNAUTHENTICATED (16) - 缺少/无效凭据
  • UNAVAILABLE (14) - 服务不可用
  • INTERNAL (13) - 内部服务器错误

错误处理示例(Python)


服务端点

Gateway REST API 也可在端口 8080 上使用(gRPC 的 HTTP/REST 包装器)。 参见 REST API 参考了解 HTTP 端点。

代码生成

从 .proto 文件生成客户端代码:

Python

Go

TypeScript


相关主题

REST API

HTTP REST 端点

事件类型

流事件目录

Python SDK

Python 客户端库

数据库架构

数据持久化