mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-16 01:40:15 +08:00
feat: 移除多个模块中的 TODO 注释,优化代码可读性
This commit is contained in:
@@ -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 (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -58,13 +58,6 @@
|
||||
- PlainTextResult: 调用 event.reply()
|
||||
- str: 调用 event.reply()
|
||||
- dict with "text": 调用 event.reply(str(item["text"]))
|
||||
|
||||
TODO:
|
||||
- 添加处理器超时控制
|
||||
- 添加处理器重试机制
|
||||
- 添加处理器依赖注入容器
|
||||
- 添加处理器中间件支持
|
||||
- 添加处理器调用链追踪
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -72,15 +72,6 @@ plugin.yaml 格式:
|
||||
python: "3.11"
|
||||
components:
|
||||
- class: my_plugin.main:MyComponent
|
||||
|
||||
TODO:
|
||||
- 添加插件热重载支持
|
||||
- 添加插件依赖解析
|
||||
- 添加插件沙箱隔离
|
||||
- 添加插件签名验证
|
||||
- 添加插件版本约束
|
||||
- 添加插件仓库支持
|
||||
- 添加插件配置 Schema 验证
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user