20 Matching Annotations
  1. Mar 2026
    1. auth/validate 是最高频调用(每个 HTTP 请求 + 每个 WS 连接),调用方在调用前没有 user_id。处理方式:JWT 签名校验无需 DB(密钥跨 region 共享),任何 region 均可本地完成JWT claims 中已包含 user status,无需 DB 回查调用方始终调用本地 user 服务,不经过 common/userclient

      这里我可能有点疑问。是不是把 home_region 放到 JWT 里即可?如此就不需要改下面的这三点流程了。

      相当于我们就从 JWT 中取出 home_region ,判断一下这个用户的 user 回查是不是应该在本地 region 完成。如果不是则调度到对应的 region,或者是直接让客户端自行调度。

    2. SDDL 分片倾斜调研:conversation_id / file_id 从 UUID 切为 snowflake 纯数字字符串,需模拟验证 CRC32 hash 分片的均匀性(P3 前置)

      这个不需要了吧...

    3. httpclient.GetRegionHTTPClient(ctx, "chat", convID)

      这里是不是可以 GetRegionHTTPClient(ctx, "chat", FromStringID(convID))

      如此还可以兼容一些没有 id 但有 home region 的情况。

    1. GetRegionHTTPClient(ctx, "chat", convID)

      GetRegionHTTPClient(ctx, "chat", region.GetHomeRegion(convID)) --- 这样是不是好些?因为可能有些场景没有一个 ID,但是知道 home_region

    1. internal/auth/middleware.go AuthMiddleware 新增 Priority 1:检查网关签名 → 合法则信任 X-User-Id 跳过 token 校验;签名非法时拒绝并记录日志(不降级到其他优先级) internal/config/gas.go 新增 SignatureSecret 配置字段 + WatchKey 热更新

      user 还需要 auth middleware 吗?

    2. internal/middleware/auth.go 认证通过后:① 写入 X-Gateway-Metadata JSON Header(包含 UserID、TwinID、Email、Status);② 调用 auth.InjectSignature() 对该 Header 做 HMAC 签名 internal/config/config.go 新增 signature_secret 配置字段,支持 GAS 配置中心 WatchKey 热更新密钥至 atomic.Value internal/starter/starter.go 注册 httpclient.SetRequestSigner(),使 handler 路由中通过 httpclient 发出的请求也自动携带签名

      同上

    3. HMAC-SHA256 签名核心:Sign()、Verify() 函数,基于 X-Gateway-Metadata JSON 全量签名,支持 5 分钟反重放窗口

      我们本次不需要做这个签名

    1. internal/middleware/auth.go 认证通过后:① 写入 X-Gateway-Metadata JSON Header(包含 UserID、TwinID、Email、Status);② 调用 auth.InjectSignature() 对该 Header 做 HMAC 签名

      本次先不用做这个签名吧。。。

    2. auth/signature.go HMAC-SHA256 签名核心:Sign()、Verify() 函数,基于 X-Gateway-Metadata JSON 全量签名,支持 5 分钟反重放窗口

      认证逻辑其实两方面把: 1. 是在 apigateway/notification 的 c 端接口 2. 是其他的内部接口

      本次不用改这个认证的逻辑。

    1. 发现某个 skill 需要执行用户脚本后,不直接调用远端命令,而是把该任务转发给远端 Pi Agent,由它在沙箱内部继续规划、执行和产出结果。

      注册一个 Tool,让 Tool 去执行 Skill,Tool 就是调用远程沙箱里的 Agent

  2. Feb 2026
    1. 3b. MCP Server URLs 从 BaseURL 拼接agent-chat/mod/agent-chat/module.go 或新建辅助函数当前:从配置读取 adk.mcp_server_urls 和 compass.mcp_server_urls改为:从 httpclient.GetBeeAIExternalBaseURL() + 固定路径拼接

      这里不改成 httpclient.GetInnerHTTPClient 吗?

    1. agent-chat/mod/agent-chat/module.go 或新建辅助函数当前:从配置读取 adk.mcp_server_urls 和 compass.mcp_server_urls改为:从 httpclient.GetBeeAIExternalBaseURL() + 固定路径拼接

      这两个是不是也可以用 GetInnerHTTPClient ?