后端: 1.阶段 6 memory 服务化 CP1-CP3 落地 - 新增 cmd/memory 独立进程入口,落地 services/memory dao/rpc/sv 与 memory zrpc pb - 将 memory.extract.requested outbox 消费与 memory worker 迁入 cmd/memory,单体 worker 不再消费 memory outbox - 新增 gateway/client/memory、shared/contracts/memory 和 shared/ports memory port - 将 /api/v1/memory/items* HTTP 管理面切到 memory zrpc,gateway 只保留鉴权、限流、幂等、参数绑定和响应透传 - 新增 memory Retrieve RPC,并将 agent 主链路 memory reader 切到 memory zrpc 读取 - 补充 agent memory RPC reader 适配器,保留注入侧 observer / metrics 观测能力 - 保留旧 backend/memory 核心实现作为迁移期复用与回退面,cmd/memory 内部继续复用既有 Module / ReadService 逻辑 - 补充 memory.rpc 示例配置,更新单体 outbox 发布边界与 memory handler 注释口径
34 lines
1.5 KiB
Go
34 lines
1.5 KiB
Go
package ports
|
||
|
||
import (
|
||
"context"
|
||
"encoding/json"
|
||
|
||
memorycontracts "github.com/LoveLosita/smartflow/backend/shared/contracts/memory"
|
||
)
|
||
|
||
// MemoryCommandClient 是 gateway 调用 memory 管理服务的最小能力集合。
|
||
//
|
||
// 职责边界:
|
||
// 1. 只覆盖当前 `/api/v1/memory/items` HTTP 门面需要的管理能力;
|
||
// 2. 不暴露 memory repo、worker、orchestrator、向量同步或 outbox consumer;
|
||
// 3. 复杂响应以 JSON 透传,避免 gateway 复制 memory 内部 DTO。
|
||
type MemoryCommandClient interface {
|
||
ListItems(ctx context.Context, req memorycontracts.ListItemsRequest) (json.RawMessage, error)
|
||
GetItem(ctx context.Context, req memorycontracts.GetItemRequest) (json.RawMessage, error)
|
||
CreateItem(ctx context.Context, req memorycontracts.CreateItemRequest) (json.RawMessage, error)
|
||
UpdateItem(ctx context.Context, req memorycontracts.UpdateItemRequest) (json.RawMessage, error)
|
||
DeleteItem(ctx context.Context, req memorycontracts.DeleteItemRequest) (json.RawMessage, error)
|
||
RestoreItem(ctx context.Context, req memorycontracts.RestoreItemRequest) (json.RawMessage, error)
|
||
}
|
||
|
||
// MemoryReaderClient 是 agent 主链路读取 memory zrpc 的最小端口。
|
||
//
|
||
// 职责边界:
|
||
// 1. 只覆盖 prompt 注入前的候选记忆召回;
|
||
// 2. 不暴露管理写接口,避免 agent 侧误拿管理能力做读取以外的事;
|
||
// 3. 调用失败由 agent 预取链路软降级,不在端口层吞错。
|
||
type MemoryReaderClient interface {
|
||
Retrieve(ctx context.Context, req memorycontracts.RetrieveRequest) ([]memorycontracts.ItemDTO, error)
|
||
}
|