Skip to content

Hook 钩子事件

目前仅Agent存在hook钩子事件

Hook 钩子事件核心定位:在不修改原有主体逻辑的前提下,插入自定义行为。

Agent基类

Agent基类有以下Hook钩子事件,会在适当时机触发对应钩子,Agent实现类可根据需求拓展Hook钩子事件,比如内置的ReactAgent拓展了PreToolCall, PostToolCallSession级别Hook钩子事件

  • Agent级别(作用对象为整个Agent实例)
    • SessionInit:Session初始化时触发
    • PreSessionSwitch:Session切换前触发
    • PostSessionSwitch:Session切换后触发
  • Session级别(作用对象为Agent实例的具体对话轮次)
    • TurnStart:对话轮次开始前(即执行do_run()前)
    • TurnEnd:对话轮次结束后(即执行完do_run()后)

如何使用Hook钩子

如果想要使用Agent提供的Hook钩子,推荐以下使用方式

python
from violet_agents import SimpleAgent
from violet_agents import VioletAgentsLLM

agent = SimpleAgent(
    name="helloAgent",
    llm=VioletAgentsLLM(provider="deepseek", model="deepseek-v4-flash"),
    system_prompt="你是一个简单的助手,直接回答用户的问题,不进行复杂的思考和计划。"
)

agent.registry_agent_hook("SessionInit", lambda session: print(f"Session {session.session_id} has been initialized."))
agent.register_session_hook("TurnStart", lambda text: print(f"Turn started with input: {text}"))
agent.register_session_hook("TurnEnd", lambda response: print(f"Turn ended with response: {response.content}"))
agent.run("你好,我叫Violet")

register_agent_hook()register_session_hook()方法为主流编辑器(如VS CODE)提供了良好的代码提示,你可以顺滑的使用它们