Skip to main content Início Criadores 54laowang hermes-agent global-constraints
global-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 执行合规性检查
Ir para a instalação Skills Marketplace Descubra e explore skills de IA criadas pela comunidade.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Copiar promptMostrar detalhes do prompt Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
npx skills add https://github.com/54laowang/hermes-agent --skill global-constraintsO comando permanece em uma só linha. Role horizontalmente para revisá-lo antes de copiar.
Prefere uma cópia local? Baixe os arquivos disponíveis atualmente no SkillsMP.
Baixar Zip Baixando... Ocupações relacionadas SOC
Baseado na classificação ocupacional 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