跳转至

桥接装配点(Bridge)

以下方法不是给插件业务代码调的——它们由 hmapdev 生成的运行时在启动时调用,用来把内核能力注入到 SDK 实例。列在这里是为了让「公开 API 面」完整,并说明每个注入点对应什么能力。

APIRegistrar

type APIRegistrar func(name string) error

APIRegistrar registers a plugin API for external access.

plugin.go:311

InputChannelRegistrar

type InputChannelRegistrar func(name string, def ChannelDef) error

InputChannelRegistrar registers an input channel with its memory behavior.

plugin.go:314

OutputChannelRegistrar

type OutputChannelRegistrar func(name string, caps int, desc string, def ChannelDef, handler ToolHandler) error

OutputChannelRegistrar registers an output channel that the output_send tool can use.

plugin.go:317

OutputChannelUnregistrar

type OutputChannelUnregistrar func(name string) error

OutputChannelUnregistrar 注销一个输出通道。

为什么需要它:输出通道不止有"启动时注册一次"的静态通道,还有随外部资源生灭的 动态通道 —— 典型是远程设备:device/<id> 只在设备在线期间存在,设备掉线后 必须注销,否则 output_list_channels 会一直列着它、模型会往一个死通道发消息。

plugin.go:324

PluginSDK.SetDocMemoryAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetDocMemoryAPI(dm DocMemoryAPI)

plugin.go:614

PluginSDK.SetEventSubscriber

仅内核内置插件可用

同上:无调用点。标 builtin 而非 bridge,因为连桥接运行时都不注入它——外部插件无法用它获得事件订阅能力。

func (s *PluginSDK) SetEventSubscriber(es EventSubscriber)

plugin.go:638

PluginSDK.SetIOInjector

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetIOInjector(io IOInjector)

SetIOInjector sets the IO injector (called by the core at startup).

plugin.go:595

PluginSDK.SetInputChannelRegistrar

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetInputChannelRegistrar(r InputChannelRegistrar)

SetInputChannelRegistrar sets the input channel registrar (called by the core at startup).

plugin.go:588

PluginSDK.SetKnowledgeAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetKnowledgeAPI(kn KnowledgeAPI)

plugin.go:620

PluginSDK.SetLLMAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetLLMAPI(llm LLMAPI)

plugin.go:626

PluginSDK.SetMemoryAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetMemoryAPI(mem MemoryAPI)

SetMemoryAPI sets the memory API (called by the core at startup).

plugin.go:602

PluginSDK.SetOutputChannelRegistrar

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetOutputChannelRegistrar(r OutputChannelRegistrar)

SetOutputChannelRegistrar sets the output channel registrar (called by the core at startup).

plugin.go:574

PluginSDK.SetOutputChannelUnregistrar

仅内核内置插件可用

同上,桥接模板不注入。

func (s *PluginSDK) SetOutputChannelUnregistrar(r OutputChannelUnregistrar)

SetOutputChannelUnregistrar sets the output channel unregistrar (called by the core at startup).

plugin.go:581

PluginSDK.SetPluginMgrAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetPluginMgrAPI(pm PluginMgrAPI)

SetPluginMgrAPI sets the plugin manager API (called by the bridge at startup).

plugin.go:645

PluginSDK.SetSocialAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetSocialAPI(social SocialAPI)

plugin.go:632

PluginSDK.SetTextMemoryAPI

桥接装配点

桥接运行时注入点(由 hmapdev 生成的 proc_main 调用,插件业务代码不调用)

func (s *PluginSDK) SetTextMemoryAPI(tm TextMemoryAPI)

plugin.go:608

ToolRegistrar

type ToolRegistrar func(name string, def ToolDef, handler ToolHandler) error

ToolRegistrar registers a tool dynamically.

plugin.go:305