diff --git a/src-new/astrbot_sdk/runtime/__init__.py b/src-new/astrbot_sdk/runtime/__init__.py index 0a8b2b6b6..99aab7601 100644 --- a/src-new/astrbot_sdk/runtime/__init__.py +++ b/src-new/astrbot_sdk/runtime/__init__.py @@ -110,33 +110,6 @@ - 支持流式能力 (stream_handler) - 内置能力:llm.chat, memory.*, db.*, platform.* - 支持自定义能力注册 - -TODO: (架构完善): - - Transport 缺少 TCP Socket 传输实现 - - Transport 缺少 Unix Domain Socket 传输实现 - - Transport 缺少共享内存传输实现(高性能场景) - - Peer 缺少消息压缩支持(大数据传输) - - Peer 缺少消息签名验证(安全通信) - - CapabilityRouter 缺少能力版本控制 - - CapabilityRouter 缺少能力权限控制 - - CapabilityRouter 缺少能力调用计数/限流 - - HandlerDispatcher 缺少处理器超时控制 - - HandlerDispatcher 缺少处理器重试机制 - - HandlerDispatcher 缺少处理器依赖注入容器 - - loader.py 缺少插件热重载支持 - - loader.py 缺少插件依赖解析 - - loader.py 缺少插件沙箱隔离 - - bootstrap.py 缺少优雅关闭的超时机制 - - bootstrap.py 缺少健康检查端点 - - 缺少分布式部署支持(多节点 Supervisor) - - 缺少插件状态持久化和恢复 - -TODO: (功能迁移): - - 旧版 api/context.py 的功能需要迁移到新版 Context - - 旧版 api/conversation_mgr.py 的会话管理需要迁移 - - 旧版 stars/filter/ 的过滤器需要评估迁移必要性 - - 旧版 stars/registry/ 的注册表功能已被 loader.py 替代 - - 旧版 galaxy.py 的虚拟星层管理已被 bootstrap.py 替代 """ from .bootstrap import ( diff --git a/src-new/astrbot_sdk/runtime/bootstrap.py b/src-new/astrbot_sdk/runtime/bootstrap.py index b8292f771..d018bdf6a 100644 --- a/src-new/astrbot_sdk/runtime/bootstrap.py +++ b/src-new/astrbot_sdk/runtime/bootstrap.py @@ -22,12 +22,14 @@ Supervisor 管理多个 Worker 进程,Worker 运行单个插件。 - 聚合所有 handler 并向 Core 注册 - 路由 Core 的调用请求到对应 Worker - 处理 Worker 进程崩溃和重连 + - handler ID 冲突检测和警告 WorkerSession: Worker 会话 - 管理单个插件 Worker 进程 - 通过 Peer 与 Worker 通信 - 提供 invoke_handler 和 cancel 方法 - 处理连接关闭回调 + - 自动清理已注册的 handlers PluginWorkerRuntime: 插件 Worker 运行时 - 加载单个插件 @@ -56,7 +58,7 @@ Supervisor 管理多个 Worker 进程,Worker 运行单个插件。 1. discover_plugins() 发现所有插件 2. 为每个插件创建 WorkerSession 3. 调用 session.start() 启动 Worker 进程 - 4. 等待 Worker 初始化完成 + 4. 等待 Worker 初始化完成或连接关闭 5. 聚合所有 handler 并向 Core 发送 initialize 6. 等待 Core 的 initialize_result @@ -71,15 +73,6 @@ Supervisor 管理多个 Worker 进程,Worker 运行单个插件。 信号处理: - SIGTERM: 设置 stop_event,触发优雅关闭 - SIGINT: 设置 stop_event,触发优雅关闭 - -TODO: - - 添加 Worker 进程健康检查 - - 添加 Worker 进程自动重启 - - 添加优雅关闭的超时机制 - - 添加插件启动超时配置 - - 添加分布式部署支持(多节点 Supervisor) - - 添加插件状态持久化和恢复 - - 添加 WebSocket 传输的 Supervisor 模式 """ from __future__ import annotations diff --git a/src-new/astrbot_sdk/runtime/capability_router.py b/src-new/astrbot_sdk/runtime/capability_router.py index a06adf5be..2dee9a5ee 100644 --- a/src-new/astrbot_sdk/runtime/capability_router.py +++ b/src-new/astrbot_sdk/runtime/capability_router.py @@ -5,12 +5,12 @@ 核心概念: CapabilityDescriptor: 能力描述符,声明能力名称、输入输出 Schema 等 - CallHandler: 同步调用处理器,返回单次结果 - StreamHandler: 流式调用处理器,返回异步迭代器 - FinalizeHandler: 流式结果聚合器 + CallHandler: 同步调用处理器,签名 (request_id, payload, cancel_token) -> dict + StreamHandler: 流式调用处理器,签名 (request_id, payload, cancel_token) -> AsyncIterator + FinalizeHandler: 流式结果聚合器,签名 (chunks) -> dict 内置能力: - llm.chat: 同步 LLM 聊天 + llm.chat: 同步 LLM 聊天(内置 echo 实现) llm.chat_raw: 同步 LLM 聊天(完整响应) llm.stream_chat: 流式 LLM 聊天 memory.search: 搜索记忆 @@ -78,15 +78,6 @@ # 执行能力 result = await router.execute("my_plugin.calculate", {"x": 42}, stream=False, ...) stream_result = await router.execute("my_plugin.stream", {}, stream=True, ...) - -TODO: - - 添加能力版本控制 - - 添加能力权限控制 - - 添加能力调用计数/限流 - - 添加能力调用超时配置 - - 添加能力健康检查 - - 添加能力缓存支持 - - 添加能力熔断机制 """ from __future__ import annotations diff --git a/src-new/astrbot_sdk/runtime/handler_dispatcher.py b/src-new/astrbot_sdk/runtime/handler_dispatcher.py index fb9126221..c0151a6dc 100644 --- a/src-new/astrbot_sdk/runtime/handler_dispatcher.py +++ b/src-new/astrbot_sdk/runtime/handler_dispatcher.py @@ -58,13 +58,6 @@ - PlainTextResult: 调用 event.reply() - str: 调用 event.reply() - dict with "text": 调用 event.reply(str(item["text"])) - -TODO: - - 添加处理器超时控制 - - 添加处理器重试机制 - - 添加处理器依赖注入容器 - - 添加处理器中间件支持 - - 添加处理器调用链追踪 """ from __future__ import annotations diff --git a/src-new/astrbot_sdk/runtime/loader.py b/src-new/astrbot_sdk/runtime/loader.py index 55d0f842e..88be33461 100644 --- a/src-new/astrbot_sdk/runtime/loader.py +++ b/src-new/astrbot_sdk/runtime/loader.py @@ -72,15 +72,6 @@ plugin.yaml 格式: python: "3.11" components: - class: my_plugin.main:MyComponent - -TODO: - - 添加插件热重载支持 - - 添加插件依赖解析 - - 添加插件沙箱隔离 - - 添加插件签名验证 - - 添加插件版本约束 - - 添加插件仓库支持 - - 添加插件配置 Schema 验证 """ from __future__ import annotations diff --git a/src-new/astrbot_sdk/runtime/peer.py b/src-new/astrbot_sdk/runtime/peer.py index b8f4e6ff0..ecf61d30a 100644 --- a/src-new/astrbot_sdk/runtime/peer.py +++ b/src-new/astrbot_sdk/runtime/peer.py @@ -10,7 +10,20 @@ - 能力调用(同步/流式) - 取消处理 - 连接生命周期管理 +消息处理: + 入站: + ResultMessage -> 唤醒等待的 Future + EventMessage -> 投递到流式队列 + InitializeMessage -> 调用 initialize_handler + InvokeMessage -> 创建任务调用 invoke_handler + CancelMessage -> 取消对应的任务 + 出站: + initialize() -> InitializeMessage + invoke() -> InvokeMessage(stream=False) + invoke_stream() -> InvokeMessage(stream=True) + cancel() -> CancelMessage + 与旧版对比: 旧版 JSON-RPC: - 分离的 JSONRPCClient 和 JSONRPCServer @@ -51,13 +64,10 @@ invoke_stream() -> InvokeMessage(stream=True) cancel() -> CancelMessage -TODO: - - 添加消息优先级支持 - - 添加消息过期时间支持 - - 添加消息重试计数支持 - - 添加消息追踪 ID (trace_id) 支持 - - 添加连接状态变更回调 - - 添加心跳检测机制 +取消机制: + - CancelToken 用于检查取消状态 + - 入站任务在收到 CancelMessage 时被取消 + - 早到取消:在任务执行前检查 cancel_token,避免竞态条件 """ from __future__ import annotations diff --git a/src-new/astrbot_sdk/runtime/transport.py b/src-new/astrbot_sdk/runtime/transport.py index 697531815..c9d5863a4 100644 --- a/src-new/astrbot_sdk/runtime/transport.py +++ b/src-new/astrbot_sdk/runtime/transport.py @@ -2,12 +2,19 @@ 定义 Transport 抽象基类及其实现,负责底层的消息传输。 传输层只关心"发送字符串"和"接收字符串",不处理协议细节。 +传输实现: + Transport: 抽象基类,定义 start/stop/send/wait_closed 接口 + StdioTransport: 标准输入输出传输 + - 进程模式: 通过 command 参数启动子进程 + - 文件模式: 通过 stdin/stdout 参数指定文件描述符 传输类型: Transport: 抽象基类,定义 start/stop/send 接口 StdioTransport: 标准输入输出传输,支持进程模式和文件模式 WebSocketServerTransport: WebSocket 服务端传输 - WebSocketClientTransport: WebSocket 客户端传输 + - 单连接限制,支持心跳配置 + - 通过 port 属性获取实际监听端口 + - 自动重连需要外部实现 与旧版对比: 旧版传输层: @@ -53,15 +60,6 @@ await transport.start() await transport.send(json_string) await transport.stop() - -TODO: - - 添加 TCP Socket 传输实现 - - 添加 Unix Domain Socket 传输实现 - - 添加共享内存传输实现(高性能场景) - - 添加消息压缩支持 - - 添加断线重连机制(WebSocketClientTransport) - - 添加连接状态变更回调 - - 添加带宽限制支持 """ from __future__ import annotations