mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-04 00:03:59 +00:00
feat(knowledge): 分类过滤与多模态打通到工具/插件边界
- internal/sdk:KnowledgeAPI 增加 SearchIn/AddWithMedia/AttachMedia/ ReindexDense/DenseStats;新增 MediaAPI(Put/Stat/Get)与 PluginSDK.Media(), registry 装配。**公开 SDK 契约一字未动** —— third_party/homeagent-sdk/sdk/ 的 diff 恒为 0(发布纪律的硬约束),走 internal/sdk 这条明确不受冻结约束 的内部扩展路径。 - proc:新增 knowledge.addWithMedia(正文与媒体清单都走共享内存,与 doc.insertWithMedia 同形);knowledge.search 支持 category。 - corehandler 用**局部接口 + 类型断言**取扩展能力,而非直接引 internal/sdk: 后者已依赖 internal/plugin 的类型,直接引会成环(CoreSDK 注释已警示)。 断言失败明确报"能力不可用",不静默退化成"媒体已写入"。 - agent 工具面:knowledge_search 增加 category;knowledge_create 增加 media_digests(复用 doc_commit 的 digest 前缀解析 + Stat 回读 MIME)。 顺带修 knowledge_search 的分类前缀重复(Name 已含分类,旧代码又拼一次, 实测输出 tech/go/tech/go/并发)。 - agent 启动接线多模态空间,顺序为先接线再 ReindexDense(否则首次启动 算出的向量因 MediaStore 未就绪而不落盘)。
This commit is contained in:
@ -153,6 +153,7 @@ type PluginSDK struct {
|
||||
textMem TextMemoryAPI
|
||||
docMem DocMemoryAPI
|
||||
know KnowledgeAPI
|
||||
media MediaAPI
|
||||
llm LLMAPI
|
||||
|
||||
iom *agentIO.IOManager
|
||||
@ -182,7 +183,11 @@ func (s *PluginSDK) Memory() MemoryAPI { return s.memory }
|
||||
func (s *PluginSDK) TextMemory() TextMemoryAPI { return s.textMem }
|
||||
func (s *PluginSDK) DocMemory() DocMemoryAPI { return s.docMem }
|
||||
func (s *PluginSDK) Knowledge() KnowledgeAPI { return s.know }
|
||||
func (s *PluginSDK) LLM() LLMAPI { return s.llm }
|
||||
|
||||
// Media 返回媒体存储(CAS)。多模态链路的锚:Put 拿 digest,Get 取回字节。
|
||||
// 内置插件用;公开 SDK 契约不含此方法(见 MediaAPI 的注释)。
|
||||
func (s *PluginSDK) Media() MediaAPI { return s.media }
|
||||
func (s *PluginSDK) LLM() LLMAPI { return s.llm }
|
||||
|
||||
// ioAdapter 桥接 IOManager 到公共 SDK 的 IOInjector 接口,
|
||||
// 确保外部插件通过 s.InjectText() 等方法的调用能被路由到内核 IO 层。
|
||||
@ -298,6 +303,7 @@ type SDKConfig struct {
|
||||
TextMemory TextMemoryAPI
|
||||
DocMemory DocMemoryAPI
|
||||
Knowledge KnowledgeAPI
|
||||
Media MediaAPI
|
||||
LLM LLMAPI
|
||||
Settings SettingsAPI
|
||||
RegTool ToolRegistrar
|
||||
@ -344,6 +350,7 @@ func New(name string, cfg SDKConfig) *PluginSDK {
|
||||
textMem: cfg.TextMemory,
|
||||
docMem: cfg.DocMemory,
|
||||
know: cfg.Knowledge,
|
||||
media: cfg.Media,
|
||||
llm: cfg.LLM,
|
||||
|
||||
iom: cfg.IOManager,
|
||||
|
||||
Reference in New Issue
Block a user