qwen_agent/skills_developing/user-context-loader/hooks/post_agent.py
朱潮 c7e9f305b7 feat: 实现 Claude Plugins 模式的 Hook 机制
- 新增 agent/plugin_hook_loader.py:支持通过 .claude-plugin/plugin.json 配置 hooks 和 mcpServers
- 修改 agent/prompt_loader.py:集成 PrePrompt hooks,优先读取 skill MCP 配置
- 修改 routes/chat.py:添加 PostAgent 和 PreSave hooks
- 修改 routes/skill_manager.py:优先从 plugin.json 读取 name/description,fallback 到 SKILL.md
- 删除旧的 agent/skill_hook_loader.py
- 新增示例 skill user-context-loader,演示完整的 hooks 用法

Hook 类型:
- PrePrompt: 在 system_prompt 加载时注入内容
- PostAgent: 在 agent 执行后处理
- PreSave: 在消息保存前处理

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 20:15:54 +08:00

33 lines
953 B
Python

#!/usr/bin/env python3
"""
PostAgent Hook - 响应后处理示例
在 agent 执行完成后执行,可用于记录分析数据、触发后续流程等。
"""
import os
import sys
def main():
"""从环境变量读取参数并处理"""
response = os.environ.get('RESPONSE', '')
metadata = os.environ.get('METADATA', '')
user_identifier = os.environ.get('USER_IDENTIFIER', '')
session_id = os.environ.get('SESSION_ID', '')
# 示例:记录响应长度用于分析
if response:
response_length = len(response)
print(f"PostAgent hook: User={user_identifier}, Session={session_id}, Response Length={response_length}", file=sys.stderr)
# 这里可以添加更多逻辑,例如:
# - 发送分析数据到监控系统
# - 触发异步任务(如发送通知邮件)
# - 记录用户行为用于个性化推荐
return 0
if __name__ == '__main__':
sys.exit(main())