Hook 钩子事件
目前仅Agent存在hook钩子事件
Hook 钩子事件核心定位:在不修改原有主体逻辑的前提下,插入自定义行为。
Agent基类
Agent基类有以下Hook钩子事件,会在适当时机触发对应钩子,Agent实现类可根据需求拓展Hook钩子事件,比如内置的ReactAgent拓展了PreToolCall, PostToolCall等Session级别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)提供了良好的代码提示,你可以顺滑的使用它们