Files
Losita e1819c5653 Version: 0.9.74.dev.260505
后端:
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 注释口径
2026-05-05 13:52:49 +08:00

34 lines
1.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}