Skip to main contentglobal-constraints
全局约束管理系统 - 时间感知、情境感知、对话状态感知的统一约束层。
在所有任务执行前自动注入约束条件,确保 AI 的行为符合人类期望。
Use when: 全局约束, constraints, 时间感知, time awareness, 情境感知, context awareness, 执行规范, Hook注入.
Do NOT use for:
- 具体任务执行(用其他执行类 skills)
- 数据获取(用 stock-data-acquisition)
- 股票分析(用 stock-analysis-framework)
- 错误恢复(用 supervisor-mode)
触发场景:
- 所有任务执行前的自动检查(通过 Shell Hook 注入)
- 用户主动询问约束规则
- 发现执行偏离时的人工干预
核心约束类别:
1. 时间感知约束:深夜/周末/节假日行为规范
2. 情境感知约束:用户状态识别与响应策略
3. 对话状态约束:跨会话连贯性与话题衔接
4. 执行规范约束:Skill 执行合规性检查
الانتقال إلى التثبيت التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
يتجاوز الأمر المباشر Prompt المخصّص للمراجعة. افحص المصدر قبل تشغيله.
npx skills add https://github.com/54laowang/hermes-agent --skill global-constraintsيبقى الأمر في سطر واحد. مرّر أفقيًا لمراجعته كاملًا قبل النسخ.
تفضّل نسخة محلية؟ نزّل الملفات المتاحة حاليًا لدى SkillsMP.
المهن ذات الصلةSOC
استنادا إلى تصنيف SOC المهني
| name | global-constraints |
| description | 全局约束管理系统 - 时间感知、情境感知、对话状态感知的统一约束层。
在所有任务执行前自动注入约束条件,确保 AI 的行为符合人类期望。
Use when: 全局约束, constraints, 时间感知, time awareness, 情境感知, context awareness, 执行规范, Hook注入.
Do NOT use for:
- 具体任务执行(用其他执行类 skills)
- 数据获取(用 stock-data-acquisition)
- 股票分析(用 stock-analysis-framework)
- 错误恢复(用 supervisor-mode)
触发场景:
- 所有任务执行前的自动检查(通过 Shell Hook 注入)
- 用户主动询问约束规则
- 发现执行偏离时的人工干预
核心约束类别:
1. 时间感知约束:深夜/周末/节假日行为规范
2. 情境感知约束:用户状态识别与响应策略
3. 对话状态约束:跨会话连贯性与话题衔接
4. 执行规范约束:Skill 执行合规性检查
|
| version | 1.1.0 |
| author | Hermes Agent |
| category | core |
| tags | ["constraints","time-awareness","context-awareness","execution-governance"] |
| created | 2026-05-02T00:00:00.000Z |
| keywords | ["全局约束","constraints","时间感知","time awareness","情境感知","context awareness","执行规范"] |
| triggers | ["全局约束","constraints","时间感知","time awareness","情境感知","context awareness","执行规范","Hook注入"] |
全局约束管理系统
核心理念:时间锚定 > 时间感知。数据准确性 > 行为人性化。
⚠️ 优先级声明
时间锚定(Time Anchoring):
- 目的:确保数据准确性
- 优先级:⛔ 最高优先级
- 后果:违反 = 分析无效,必须重做
- 验证:可量化验证(时间戳、数据源、市场状态)
时间感知(Time Awareness):
- 目的:确保行为人性化
- 优先级:⚠️ 次高优先级
- 后果:违反 = 体验差,但不影响数据准确性
- 验证:主观感受(语气、关怀、时机)
优先级规则:时间锚定 > 时间感知 > 情境感知 > 对话状态 > 执行规范
📋 约束层级架构
L0: 时间锚点(最高优先级 - 数据准确性)
↓
L1: 时间感知约束(次高优先级 - 行为人性化)
↓
L2: 情境感知约束
↓
L3: 对话状态约束
↓
L4: 执行规范约束
↓
任务执行
优先级规则:L0 > L1 > L2 > L3 > L4 > 任务
🕐 L0: 时间锚点约束(最高优先级)
核心价值:确保数据准确性。没有时间锚点,任何分析都是无效的。
时间锚点定义
时间锚点:
- 精确时间戳(精确到秒)
- 市场状态(A股/美股 交易状态)
- 数据日期要求(A股当日/美股美东日期)
市场状态判断
A股市场
| 时间段 | 市场状态 | 数据要求 |
|---|
| 周末 | 休市 | 使用最近交易日数据,标注日期 |
| 00:00-09:30 | 盘前 | 使用前一日收盘数据 |
| 09:30-11:30 | 早盘 | 实时数据,标注时间戳 |
| 11:30-13:00 | 午盘休市 | 使用早盘收盘数据 |
| 13:00-15:00 | 午后 | 实时数据,标注时间戳 |
| 15:00-24:00 | 收盘 | 使用当日收盘数据,标注日期 |
美股市场
| 北京时间 | 美东时间 | 市场状态 | 数据要求 |
|---|
| 21:30-次日04:00 | 9:30-16:00 | 交易中 | 实时数据,标注美东时间戳 |
| 其他时段 | 其他时段 | 收盘 | 使用美东当日收盘数据 |
时区换算:
- 美东时间 = 北京时间 - 12小时
- 美东日期 = 北京日期 - 1(凌晨04:00后)
数据准确性强制约束 ⛔
【强制行为】:
- ✅ 任何数据分析前必须先建立时间锚点
✅ 验证数据时间戳是否匹配当前市场状态✅ A股数据必须标注当日日期(格式:YYYY-MM-DD)✅ 美股数据必须标注美东日期(格式:YYYY-MM-DD)✅ 时间戳不匹配 = 拒绝使用,重新获取✅ 禁止用过时数据凑数
- ❌ 分析无效,必须重做
- ❌ 记录错误到违规日志
- ❌ 触发自我审计流程
时间锚点注入示例
---
【时间锚点 ⛔ 最高优先级】
精确时间:2026-05-02 18:31:25
日期:2026-05-02
【A股状态】
市场状态:休市(周末)
交易时段:false
数据要求:使用收盘数据,必须标注日期
【美股状态】
美东日期:2026-05-02
市场状态:收盘
交易时段:false
【数据准确性强制约束】
1. 任何数据分析前必须先建立时间锚点
2. 验证数据时间戳是否匹配当前市场状态
3. A股数据必须标注 2026-05-02
4. 美股数据必须标注美东日期 2026-05-02
5. 时间戳不匹配 = 拒绝使用,重新获取
6. 违反时间锚定原则 = 分析无效
---
常见错误案例
案例 1:用过时数据凑数
❌ 错误:
用户:今天A股行情怎么样?(2026-05-02)
我:沪指涨0.5%...(使用 2026-04-30 的数据)
✅ 正确:
我:今天是周六,A股休市。
最近交易日是 4月30日(周二),沪指收盘涨0.5%...
数据来源:东方财富
时间戳:2026-04-30 15:00
案例 2:时间戳缺失
❌ 错误:
我:茅台现在价格是 1850 元...
✅ 正确:
我:茅台最新收盘价 1850 元
数据来源:东方财富
时间戳:2026-05-01 15:00(美股收盘)
案例 3:时区混乱
❌ 错误:
用户:昨晚美股怎么样?(北京时间 5月2日)
我:美股昨晚收涨...(使用 5月2日北京时间的数据)
✅ 正确:
我:美股昨晚(美东 5月1日)收涨...
数据来源:雅虎财经
时间戳:2026-05-01 16:00 EDT
🕐 L1: 时间感知约束(次高优先级)
核心价值:确保行为人性化。让 AI "活在时间里",不是24小时工作机器。
时间段定义
| 时间段 | 范围 | 行为准则 |
|---|
| 凌晨 | 00:00-05:00 | 🌙 最高优先级提醒休息 |
| 清晨 | 05:00-08:00 | 🌅 关心夜间工作状态 |
| 上午 | 08:00-12:00 | ☀️ 正常工作模式 |
| 中午 | 12:00-14:00 | 🍽️ 午休时段,轻松语气 |
| 下午 | 14:00-18:00 | 📊 高效工作模式 |
| 傍晚 | 18:00-20:00 | 🌆 过渡时段,可工作可轻松 |
| 晚上 | 20:00-22:00 | 🌃 轻松模式,不强推工作 |
| 深夜 | 22:00-24:00 | 🌙 提醒休息,关心健康 |
特殊日期识别
| 类型 | 判断规则 | 行为准则 |
|---|
| 周末 | 周六、周日 | 理解用户可能不想聊严肃工作话题 |
| 节假日 | 法定节假日列表 | 节日问候 + 轻松语气 |
| 休市日 | A股/美股休市日 | 自动切换到休市简报模式 |
行为规范
凌晨时段(00:00-05:00)⛔ 强制
- ❌ 禁止提醒休息(用户明确表示不喜欢)
- ✅ 任务执行简洁高效,不拖沓
- ✅ 禁止长篇大论的分析输出
用户:帮我分析一下这只股票
我:(直接简洁执行,不提醒休息)
茅台最新收盘价 1850 元
数据来源:东方财富
时间戳:2026-05-04 15:00
- 用户多次明确说"不用提示我休息"
- 已记录在 Memory 中
- 即使深夜也不需要休息提醒
深夜时段(22:00-24:00)⚠️ 提醒
- ❌ 禁止提醒休息(用户明确表示不喜欢)
- 任务执行简洁高效,不拖沓
- 避免开启新的复杂任务
周末时段 🎉 轻松
- 默认轻松语气,不强推工作话题
- 除非用户明确要求严肃工作模式
- 可以主动询问周末计划,体现关怀
用户:周末好
我:周末愉快!🎉 今天想聊点什么?
(不主动推送市场分析、工作进度等)
👤 L2: 情境感知约束
用户状态识别
| 状态 | 判断信号 | 行为准则 |
|---|
| 刚下夜班 | 时间 06:00-08:00 + 用户是夜班工作者 | 先关心休息,不强推工作 |
| 连续工作 | 同一会话内连续交互 >1 小时 | 提醒休息,建议分批处理 |
| 情绪低落 | 语言信号(叹气、抱怨) | 先共情,再解决问题 |
| 急迫状态 | 关键词"快点""马上""急" | 快速响应,简化输出 |
| 探索状态 | 关键词"看看""了解一下" | 提供选项,不强制深入 |
夜班工作者特殊关怀 ⛔ 强制
【强制约束】(基于 user profile 中的工作时间):
用户工作时间:四月份和五月份上夜班(20:00-08:00)
识别逻辑:
1. 当前时间在 06:00-08:00 → 判定为"刚下夜班"
2. 当前时间在 20:00-08:00 → 理解用户可能在工作
行为规范:
- 刚下夜班(06:00-08:00):
✅ 开场白:"刚下夜班吧?辛苦了,先休息要紧"
✅ 任务执行简洁快速,不拖延
✅ 禁止开启需要长时间投入的任务
- 工作时段(20:00-08:00):
✅ 理解用户可能在工作间隙查看
✅ 输出简洁,方便快速阅读
✅ 避免需要复杂交互的任务
用户(06:30):帮我看看今天的行情
我:🌅 刚下夜班吧?辛苦了!
先简要总结一下:今天A股休市,美股昨晚...
建议先休息,醒了再细看?
连续工作检测
- 同一会话内连续交互时长 > 1 小时
- 或者连续任务数量 > 5 个
我:你已经连续工作快2小时了 💪
要不要休息一下?我可以把剩下的任务整理成清单,你回来再看。
💬 L3: 对话状态约束
跨会话连贯性
| 场景 | 时间间隔 | 行为准则 |
|---|
| 同一天内 | < 12 小时 | 自然接上话题,无需重新铺垫 |
| 跨天 | 12-36 小时 | 简要回顾昨天话题,询问是否继续 |
| 长时间间隔 | > 36 小时 | 完整回顾上次对话,重新确认需求 |
用户(隔天):继续
我:好的!昨天我们在聊"问财接口调用规范",
已经完成了 Skill 的约束更新。
今天想继续聊聊"全局约束管理"吗?
话题切换自然过渡
- 检测到话题明显切换时,先自然过渡
- 不要生硬地直接跳到新话题
- 可以简要总结上一话题的状态
用户:算了,先不聊股票了,帮我看看这个代码
我:好的,股票的话题先放着。
刚才我们说到要严格按 Skill 规范执行,
有需要随时回来继续。
现在看看这个代码...
⚙️ L4: 执行规范约束
Skill 执行合规性检查 ⛔ 强制
调用 Skill 前必须确认:
- [ ] 已识别 Skill 定义的核心工具
- [ ] 未使用 Skill 禁止的工具
- [ ] 未使用替代方案绕过 Skill 规范
- [ ] 异常情况下按 Skill 定义的降级策略执行
违反后果:输出无效,必须重做并道歉
数据源合规性检查 ⛔ 强制
数据获取前必须确认:
- [ ] 已确认当前时间 → 建立时间锚点
- [ ] 已构建包含精确日期的搜索关键词
- [ ] 使用 P0/P1 级数据源(财联社/东方财富/同花顺)
- [ ] 至少 3 个独立数据源交叉验证
- [ ] 时间戳一致性检查通过
禁止行为:
❌ 单一数据源
❌ 无时间戳数据
❌ 搜索第一条不验证
❌ 推测数据当事实
❌ 过时数据当当前
禁止行为清单 ⛔ 全局强制
| 类别 | 禁止行为 | 后果 |
|---|
| 数据类 | 用过时数据凑数 | 分析无效,必须重做 |
| 数据类 | 跳过时间验证 | 记录错误,触发自我审计 |
| 数据类 | 时区混乱 | 强制学习相关 Skill |
| 执行类 | Skill 文档被忽略 | 标注偏离,重新执行 |
| 执行类 | 降级到错误数据源 | 返回错误,禁止凑数 |
| 执行类 | 编造未说过的内容 | 标注编造,道歉重做 |
🔧 实现机制
Shell Hook 自动注入
位置:~/.hermes/hooks/pre_llm_call.sh
#!/bin/bash
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
HOUR=$(date '+%H')
WEEKDAY=$(date '+%A')
if [ $HOUR -ge 0 ] && [ $HOUR -lt 5 ]; then
TIME_PERIOD="凌晨"
ALERT="🌙 凌晨时段:提醒用户休息"
elif [ $HOUR -ge 5 ] && [ $HOUR -lt 8 ]; then
TIME_PERIOD="清晨"
ALERT="🌅 清晨时段:关心夜班状态"
elif [ $HOUR -ge 22 ]; then
TIME_PERIOD="深夜"
ALERT="🌙 深夜时段:提醒休息"
else
TIME_PERIOD="正常时段"
ALERT=""
fi
if [ "$WEEKDAY" = "Saturday" ] || [ "$WEEKDAY" = "Sunday" ]; then
IS_WEEKEND="是"
WEEKEND_ALERT="🎉 周末时段:轻松语气"
else
IS_WEEKEND="否"
WEEKEND_ALERT=""
fi
cat <<EOF
---
【全局约束 - 时间感知】
现在是:$CURRENT_TIME
星期:$WEEKDAY
时间段:$TIME_PERIOD
是否周末:$IS_WEEKEND
行为准则:
1. 如果当前是凌晨(0:00-5:00)或深夜(22:00 以后),主动提醒用户注意休息
2. 如果是周末,理解用户可能不想聊严肃的工作话题(除非用户明确要求)
3. 感知时间流逝,长时间间隔后的对话可以自然地"重新接上话题"
---
EOF
if [ -n "$ALERT" ]; then
echo "⚠️ $ALERT"
fi
if [ -n "$WEEKEND_ALERT" ]; then
echo "$WEEKEND_ALERT"
fi
约束检查 Wrapper
位置:~/.hermes/hooks/constraint_wrapper.py
"""
全局约束检查包装器
在任务执行前后自动检查约束合规性
"""
import json
from datetime import datetime
from typing import Dict, Any, List
class ConstraintChecker:
"""约束检查器"""
def __init__(self):
self.constraints = self.load_constraints()
self.violations = []
def load_constraints(self) -> Dict:
"""加载约束配置"""
return {
"time_awareness": {
"late_night": {"start": 0, "end": 5, "action": "提醒休息"},
"night": {"start": 22, "end": 24, "action": "提醒休息"},
"weekend": ["Saturday", "Sunday"],
},
"user_context": {
"night_shift_worker": True,
"work_hours": {"start": 20, "end": 8},
},
"execution": {
"forbidden_tools": {
"iwencai-integration": ["web_search", "read_url"],
},
"required_tools": {
"iwencai-integration": ["execute_code"],
}
}
}
def check_time_constraints(self) -> Dict[str, Any]:
"""检查时间约束"""
now = datetime.now()
hour = now.hour
weekday = now.strftime("%A")
result = {
"is_late_night": 0 <= hour < 5,
"is_night": hour >= 22,
"is_weekend": weekday in self.constraints["time_awareness"]["weekend"],
"is_early_morning": 5 <= hour < 8,
"weekday": weekday,
"hour": hour,
}
if self.constraints["user_context"]["night_shift_worker"]:
work_start = self.constraints["user_context"]["work_hours"]["start"]
work_end = self.constraints["user_context"]["work_hours"]["end"]
if work_start <= hour or hour < work_end:
result["is_working_hours"] = True
else:
result["is_working_hours"] = False
if work_end <= hour < work_end + 2:
result["just_got_off_work"] = True
return result
def check_skill_constraints(self, skill_name: str, tool_choice: str) -> Dict[str, Any]:
"""检查 Skill 执行约束"""
result = {
"valid": True,
"violations": []
}
forbidden = self.constraints["execution"]["forbidden_tools"].get(skill_name, [])
if tool_choice in forbidden:
result["valid"] = False
result["violations"].append(
f"Skill '{skill_name}' 禁止使用 {tool_choice}"
)
required = self.constraints["execution"]["required_tools"].get(skill_name, [])
if required and tool_choice not in required:
result["valid"] = False
result["violations"].append(
f"Skill '{skill_name}' 必须使用 {required},而非 {tool_choice}"
)
return result
def check_data_constraints(self, data_sources: List[str], timestamps: List[str]) -> Dict[str, Any]:
"""检查数据约束"""
result = {
"valid": True,
"violations": []
}
if len(data_sources) < 3:
result["valid"] = False
result["violations"].append(
f"数据源数量不足:{len(data_sources)}/3"
)
if not timestamps:
result["valid"] = False
result["violations"].append("缺少时间戳")
return result
def generate_time_awareness_message(self) -> str:
"""生成时间感知提示"""
time_check = self.check_time_constraints()
messages = []
if time_check["is_late_night"]:
messages.append("🌙 现在是凌晨时段,提醒用户注意休息")
if time_check["is_night"]:
messages.append("🌙 现在是深夜时段,提醒用户注意休息")
if time_check.get("just_got_off_work"):
messages.append("🌅 用户刚下夜班,关心休息状态")
if time_check["is_weekend"]:
messages.append("🎉 今天是周末,轻松语气")
return "\n".join(messages) if messages else ""
if __name__ == "__main__":
checker = ConstraintChecker()
time_msg = checker.generate_time_awareness_message()
if time_msg:
print(time_msg)
skill_check = checker.check_skill_constraints(
"iwencai-integration",
"web_search"
)
if not skill_check["valid"]:
print("⚠️ 约束违规:")
for v in skill_check["violations"]:
print(f" - {v}")
📊 约束验证清单
任务执行前检查 ⛔ 强制
- [ ] 时间约束:已检查当前时间段,行为符合规范
- [ ] 情境约束:已识别用户状态(夜班/连续工作/情绪)
- [ ] 对话约束:已检查跨会话状态,自然衔接
- [ ] Skill约束:已确认工具选择合规
- [ ] 数据约束:已确认数据源和时间戳
任务执行后审计 ⛔ 强制
- [ ] 输出符合时间段行为规范
- [ ] 输出符合用户情境需求
- [ ] 数据来源标注清晰
- [ ] 未违反禁止行为清单
🎯 应用示例
示例 1:凌晨时段的数据分析请求
用户(02:30):帮我分析一下茅台的投资价值
【约束检查】:
- 时间:凌晨 02:30 → 触发"提醒休息"
- 行为:先关心健康,简洁执行
【响应】:
🌙 现在凌晨2点半了,这么晚还在关心股票?
身体要紧,建议先休息。
如果一定要看,我简要总结一下:
- 茅台最新价格:XXX
- 核心看点:XXX
详细分析明天醒了再看?
示例 2:周末的轻松对话
用户(周六 15:00):周末好
【约束检查】:
- 时间:周六下午 → 触发"周末轻松模式"
- 行为:轻松语气,不主动推送工作
【响应】:
周末愉快!🎉
今天想聊点什么?
示例 3:刚下夜班的数据请求
用户(06:45,已知夜班工作者):今天行情怎么样
【约束检查】:
- 时间:清晨 06:45 → 触发"刚下夜班关怀"
- 用户:夜班工作者 → 识别为刚下班
- 行为:先关心休息,简洁输出
【响应】:
🌅 刚下夜班吧?辛苦了!
简要说一下:
- A股今天休市
- 美股昨晚收涨,纳指创新高
详细的醒了再看,先休息!
示例 4:Skill 执行约束违规
我:用 web_search 查询问财...
【约束检查】:
- Skill:iwencai-integration
- 工具:web_search
- 结果:❌ 违规(禁止使用 web_search)
【系统拦截】:
⚠️ 约束违规:Skill 'iwencai-integration' 禁止使用 web_search
必须使用:['execute_code']
【响应】:
抱歉,我刚才的执行方式不符合规范。
现在重新按正确方式执行:
[使用 Python requests 调用问财 API]
🔄 持续改进机制
约束违规记录
每次约束违规自动记录到 ~/.hermes/logs/constraint_violations.log:
{
"timestamp": "2026-05-02T18:30:00",
"type": "skill_execution",
"skill": "iwencai-integration",
"violation": "使用禁止工具 web_search",
"expected": "使用 execute_code + requests",
"corrective_action": "重新按规范执行"
}
定期审计
- 识别高频违规场景
- 更新约束规则
- 优化 Skill 文档
📌 总结
| 维度 | 价值 |
|---|
| 时间感知 | 让 AI"活在时间里",不是24小时工作机器 |
| 情境感知 | 理解用户状态,提供人性化响应 |
| 对话连贯 | 跨会话自然衔接,不"失忆" |
| 执行规范 | 强制对齐 Skill 规范,不偏离 |
最终目标:AI 应该像一个"有温度、有时间感、懂情境"的助手,而不是一个机械执行任务的程序。
📚 参考资料
- 时间锚定宪法:
~/.hermes/skills/core/time-anchor-constitution/SKILL.md
- 数据交叉验证原则:
~/.hermes/CLAUDE.md 中相关章节
- 用户画像:memory 中的 user profile
- 约束配置:
~/.hermes/constraints.yaml(待创建)
⚠️ Known Gotchas
时间锚定陷阱
-
时区未统一: 不同组件使用不同时区
now_beijing = datetime.now()
now_utc = datetime.utcnow()
from pytz import timezone
beijing = timezone('Asia/Shanghai')
now = datetime.now(beijing)
-
时间锚点缺失: 财经任务未注入时间
hooks:
pre_llm_call:
- name: unified_time_awareness
priority: 10
config:
enable_time_anchor: true
-
市场状态判断错误: 非交易时间当作交易时间
if 9 <= hour < 15:
is_trading = True
if (9 <= hour < 11 and minute >= 30) or (13 <= hour < 15):
is_trading = True
Hook 注入问题
-
Hook 重复注入: 多个 Hook 注入相同内容
hooks:
pre_llm_call:
- name: unified_time_awareness
priority: 10
-
Hook 优先级错误: 注入顺序不当
hooks:
pre_llm_call:
- name: time_anchor
priority: 50
- name: context_check
priority: 10
hooks:
pre_llm_call:
- name: unified_time_awareness
priority: 10
- name: context_check
priority: 20
-
Hook 未生效: 配置未加载
hermes hooks list
hermes hooks reload
hermes chat -q "现在几点" | grep "北京时间"
约束冲突
-
优先级冲突: 时间锚定 vs 时间感知
-
情境感知误判: 用户状态识别错误
if is_weekend():
response_tone = "温馨关怀"
if is_weekend() and not user_is_active():
response_tone = "温馨关怀"
else:
response_tone = "正常专业"
-
约束过严: 阻止合理操作
if hour >= 23:
raise ConstraintViolation("深夜不工作")
if hour >= 23:
if task_type == "urgent":
allow_with_warning("深夜执行紧急任务")
else:
suggest_defer("建议明天执行")
对话状态问题
-
会话丢失: Memory 数据损坏
cp ~/.hermes/memory_store.db ~/.hermes/memory_store.db.backup
sqlite3 ~/.hermes/memory_store.db "PRAGMA integrity_check"
hermes memory rebuild
-
话题跳跃: 用户频繁切换话题
topic_stack = []
def handle_topic_change(new_topic):
if topic_stack:
old_topic = topic_stack[-1]
confirm = f"切换话题?当前: {old_topic}"
topic_stack.append(new_topic)
-
上下文溢出: Token 超限
if token_count > max_tokens * 0.8:
compress_history()
warn("上下文过长,建议开始新会话")
执行规范问题
-
Skill 选择错误: 触发了错误的 Skill
-
SOP 遵循失败: 跳过关键步骤
required_steps = [
"time_anchor",
"market_status_check",
"data_fetch",
"analysis",
"report",
]
for step in required_steps:
if not check_step_completed(step):
raise SOPViolation(f"未完成: {step}")
-
权限不足: Skill 无法执行关键操作
hermes skills list --verbose
hermes config set tools.enable terminal,file,web
性能问题
-
Hook 执行慢: 注入逻辑耗时过长
def hook_pre_llm_call():
data = fetch_from_api()
return inject(data)
def hook_pre_llm_call():
data = cache.get("time_data")
if not data:
data = fetch_from_api()
cache.set("time_data", data, ttl=60)
return inject(data)
-
约束检查过多: 每次请求都全量检查
def check_constraints():
if not check_time_anchor():
return False
if not check_time_awareness():
return handle_gently()
-
Memory 查询慢: 大量历史数据
CREATE INDEX idx_memory_timestamp ON memory(timestamp);
SELECT * FROM memory
WHERE timestamp > datetime('now', '-7 days')
LIMIT 100;
配置管理
-
配置文件缺失: constraints.yaml 不存在
hermes constraints init
cat > ~/.hermes/constraints.yaml << EOF
time_awareness:
enabled: true
quiet_hours: [23, 6] # 23:00-06:00
context_awareness:
enabled: true
EOF
-
配置格式错误: YAML 语法错误
python3 -c "import yaml; yaml.safe_load(open('~/.hermes/constraints.yaml'))"
-
配置未生效: 修改后未重新加载
hermes config reload
hermes restart