- 新增 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>
39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
PreSave Hook - 消息保存前处理示例
|
|
|
|
在消息保存到数据库前执行,可用于内容过滤、敏感信息脱敏等。
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
|
|
def main():
|
|
"""从环境变量读取参数并处理"""
|
|
content = os.environ.get('CONTENT', '')
|
|
role = os.environ.get('ROLE', '')
|
|
|
|
# 示例:可以在这里添加敏感信息脱敏逻辑
|
|
# 例如:移除电话号码、邮箱等敏感信息
|
|
|
|
# 输出处理后的内容(如果不需要修改则输出原始内容)
|
|
print(content)
|
|
|
|
# 这里只是记录日志,不修改内容
|
|
if content:
|
|
# 示例:脱敏处理(注释掉,实际使用时根据需求启用)
|
|
# import re
|
|
# processed = content
|
|
# # 简单的手机号脱敏
|
|
# processed = re.sub(r'1[3-9]\d{9}', '[PHONE]', processed)
|
|
# # 邮箱脱敏
|
|
# processed = re.sub(r'\b[\w.-]+@[\w.-]+\.\w+\b', '[EMAIL]', processed)
|
|
# print(processed)
|
|
pass
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|