Skip to content

Brain 基础模块文档

Brain Base Module Documentation

本模块定义了 TFRobot Brain 组件的基础类,Brain 组件负责管理思维链和记忆。 This module defines the base classes for the Brain component of TFRobot, which is responsible for managing thought chains and memory.

BaseBrain 类

BaseBrain Class

BaseBrain 是一个抽象基类,概述了所有 Brain 实现的核心功能。它主要处理思维链的编排和记忆交互。 BaseBrain is an abstract base class that outlines the core functionalities for all brain implementations. It primarily deals with the orchestration of thought chains and memory interaction.

Bases: TFNeuralModel, ABC

BaseBrain 主要是对思维链与记忆交织的管理

run

run(
    current_input: UserAndAssMsg,
    tools: Optional[list[BaseTool]] = None,
) -> AssistantTextMessage

Template Method:commit input → _run() 推理 → _finalize_response() → commit output → _sync_msg()。

子类只需实现 _run(),消息生命周期由 BaseBrain 统一管理。

Source code in tfrobot/brain/base.py
126
127
128
129
130
131
132
133
134
135
136
137
138
139
def run(self, current_input: UserAndAssMsg, tools: Optional[list[BaseTool]] = None) -> AssistantTextMessage:
    """
    Template Method:commit input → _run() 推理 → _finalize_response() → commit output → _sync_msg()。

    子类只需实现 _run(),消息生命周期由 BaseBrain 统一管理。
    """
    try:
        self.commit_message(current_input)
        res_msg = self._run(current_input, tools)
        self._finalize_response(current_input, res_msg)
        self.commit_message(res_msg)
        return res_msg
    finally:
        self._sync_msg(current_input)

async_run async

async_run(
    current_input: UserAndAssMsg,
    tools: Optional[list[BaseTool]] = None,
) -> AssistantTextMessage

Template Method(异步版本)。

Source code in tfrobot/brain/base.py
141
142
143
144
145
146
147
148
149
150
151
152
async def async_run(
    self, current_input: UserAndAssMsg, tools: Optional[list[BaseTool]] = None
) -> AssistantTextMessage:
    """Template Method(异步版本)。"""
    try:
        await self.async_commit_message(current_input)
        res_msg = await self._async_run(current_input, tools)
        await self._async_finalize_response(current_input, res_msg)
        await self.async_commit_message(res_msg)
        return res_msg
    finally:
        await self._async_sync_msg(current_input)

commit_message abstractmethod

commit_message(msg: UserAndAssMsg) -> None

Commit message | 提交消息

Parameters:

Name Type Description Default
msg UserAndAssMsg

The message to commit | 要提交的消息

required
Source code in tfrobot/brain/base.py
196
197
198
199
200
201
202
203
204
@abstractmethod
def commit_message(self, msg: UserAndAssMsg) -> None:
    """
    Commit message | 提交消息

    Args:
        msg (UserAndAssMsg): The message to commit | 要提交的消息
    """
    raise NotImplementedError("Brain commit_message method is not implemented")

async_commit_message abstractmethod async

async_commit_message(msg: UserAndAssMsg) -> None

Commit message | 提交消息

Parameters:

Name Type Description Default
msg UserAndAssMsg

The message to commit | 要提交的消息

required
Source code in tfrobot/brain/base.py
206
207
208
209
210
211
212
213
214
@abstractmethod
async def async_commit_message(self, msg: UserAndAssMsg) -> None:
    """
    Commit message | 提交消息

    Args:
        msg (UserAndAssMsg): The message to commit | 要提交的消息
    """
    raise NotImplementedError("Brain async_commit_message method is not implemented")

connect_to_neural abstractmethod

connect_to_neural(neural: Neural) -> None

实现NeuralProtocol协议,向Neural注册自己

Parameters:

Name Type Description Default
neural Neural

Neural实例

required

Returns:

Type Description
None

None

Source code in tfrobot/brain/base.py
216
217
218
219
220
221
222
223
224
225
226
227
@abstractmethod
def connect_to_neural(self, neural: Neural) -> None:
    """
    实现NeuralProtocol协议,向Neural注册自己

    Args:
        neural(Neural): Neural实例

    Returns:
        None
    """
    raise NotImplementedError("Brain connect_to_neural method is not implemented")

disconnect_from_neural abstractmethod

disconnect_from_neural(neural: Neural) -> None

实现NeuralProtocol协议,从Neural注销自己

Parameters:

Name Type Description Default
neural Neural

Neural实例

required

Returns:

Type Description
None

None

Source code in tfrobot/brain/base.py
229
230
231
232
233
234
235
236
237
238
239
240
@abstractmethod
def disconnect_from_neural(self, neural: Neural) -> None:
    """
    实现NeuralProtocol协议,从Neural注销自己

    Args:
        neural(Neural): Neural实例

    Returns:
        None
    """
    raise NotImplementedError("Brain disconnect_from_neural method is not implemented")

dispose

dispose() -> None

释放大脑持有的资源,委托给 memory,并断开 Neural 信号连接。

Source code in tfrobot/brain/base.py
242
243
244
245
246
247
248
249
250
251
252
def dispose(self) -> None:
    """释放大脑持有的资源,委托给 memory,并断开 Neural 信号连接。"""
    try:
        self.memory.dispose()
    except Exception:
        pass
    if self._neural is not None:
        try:
            self.disconnect_from_neural(self._neural)
        except Exception:
            pass

adispose async

adispose() -> None

异步释放大脑持有的资源,委托给 memory,并断开 Neural 信号连接。

Source code in tfrobot/brain/base.py
254
255
256
257
258
259
260
261
262
263
264
async def adispose(self) -> None:
    """异步释放大脑持有的资源,委托给 memory,并断开 Neural 信号连接。"""
    try:
        await self.memory.adispose()
    except Exception:
        pass
    if self._neural is not None:
        try:
            self.disconnect_from_neural(self._neural)
        except Exception:
            pass

Brain 类

Brain Class

Brain 类是 BaseBrain 的一个具体实现。它管理思维链(Chain)和记忆(BaseMemory)之间的交互,以处理输入并生成响应。 The Brain class is a concrete implementation of BaseBrain. It manages the interplay between thought chains (Chain) and memory (BaseMemory) to process inputs and generate responses.

Bases: BaseBrain

Brain 主要是对思维链与记忆交织的管理

Attributes:

Name Type Description
chain(Chain | Chains

链列表,会串行调用

commit_message

commit_message(msg: UserAndAssMsg) -> None

Commit message | 提交消息

Parameters:

Name Type Description Default
msg UserAndAssMsg

The message to commit | 要提交的消息

required
Source code in tfrobot/brain/base.py
305
306
307
308
309
310
311
312
def commit_message(self, msg: UserAndAssMsg) -> None:
    """
    Commit message | 提交消息

    Args:
        msg (UserAndAssMsg): The message to commit | 要提交的消息
    """
    self.memory.commit(msg)

async_commit_message async

async_commit_message(msg: UserAndAssMsg) -> None

Commit message | 提交消息

Parameters:

Name Type Description Default
msg UserAndAssMsg

The message to commit | 要提交的消息

required
Source code in tfrobot/brain/base.py
314
315
316
317
318
319
320
321
async def async_commit_message(self, msg: UserAndAssMsg) -> None:
    """
    Commit message | 提交消息

    Args:
        msg (UserAndAssMsg): The message to commit | 要提交的消息
    """
    self.memory.commit(msg)

connect_to_neural

connect_to_neural(neural: Neural) -> None

实现NeuralProtocol协议,向Neural注册自己

Parameters:

Name Type Description Default
neural Neural

Neural实例

required

Returns:

Type Description
None

None

Source code in tfrobot/brain/base.py
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
def connect_to_neural(self, neural: Neural) -> None:
    """
    实现NeuralProtocol协议,向Neural注册自己

    Args:
        neural(Neural): Neural实例

    Returns:
        None
    """
    if self._neural and self._neural is not neural:
        raise ValueError("The neural is already registered by another neural.")
    self._neural = neural
    self._neural.register(self.chain)
    self._neural.register(self.memory)

disconnect_from_neural

disconnect_from_neural(neural: Neural) -> None

实现NeuralProtocol协议,从Neural注销自己

Parameters:

Name Type Description Default
neural Neural

Neural实例

required

Returns:

Type Description
None

None

Source code in tfrobot/brain/base.py
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
def disconnect_from_neural(self, neural: Neural) -> None:
    """
    实现NeuralProtocol协议,从Neural注销自己

    Args:
        neural(Neural): Neural实例

    Returns:
        None
    """
    if self._neural is None:
        return
    if self._neural is not neural:
        raise ValueError("The neural is not the same as the registered neural.")
    neural.unregister(self.chain)
    neural.unregister(self.memory)
    self._neural = None