| 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)
- ✅ 时间戳不匹配 = 拒绝使用,重新获取
- ✅ 禁止用过时数据凑数
违反后果:
- ❌ 分析无效,必须重做
- ❌ 记录错误到违规日志
- ❌ 触发自我审计流程
时间锚点注入示例
Shell Hook 自动注入:
---
【时间锚点 ⛔ 最高优先级】
精确时间: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 定义的降级策略执行
违反后果:输出无效,必须重做并道歉
数据源合规性检查 ⛔ 强制
【基于 CLAUDE.md 数据交叉验证原则】:
数据获取前必须确认:
- [ ] 已确认当前时间 → 建立时间锚点
- [ ] 已构建包含精确日期的搜索关键词
- [ ] 使用 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