feat: export core Hermes skills
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# auto_notify_new_file.sh 架构:入队模式 vs 直接执行模式
|
||||
|
||||
## 根因(2026-06-30)
|
||||
|
||||
`auto_notify_new_file.sh` 原本自己启动 `uwf thread exec -c 5`(前台模式)来执行合同审查 workflow。
|
||||
但 hermes ACP 适配器在前台模式下有 asyncio stdin 注册 bug(`KeyError: '0 is not registered'`),
|
||||
导致每次 spawn `hermes acp` 子进程都立即失败,日志中全是 `agent command failed (uwf-hermes)`。
|
||||
|
||||
**对比**:`contract-queue-runner.sh` 使用 `uwf thread exec --background` 模式,正常工作。
|
||||
|
||||
## 当前架构(2026-06-30 修复后)
|
||||
|
||||
```
|
||||
企微收到文件
|
||||
→ auto_notify_new_file.sh (inotifywait 监控)
|
||||
→ 识别 sender (邱律师=QiuTing)
|
||||
→ 上传 Nextcloud 待审查/
|
||||
→ 入队 /tmp/contract-queue/manifest.txt
|
||||
→ 检查 contract-queue-runner.sh 是否在运行,不在则启动
|
||||
→ contract-queue-runner.sh 串行执行(--background 模式)
|
||||
→ uwf thread start + thread exec --background
|
||||
→ uwf-hermes → hermes acp(正常)
|
||||
```
|
||||
|
||||
## 关键文件
|
||||
|
||||
| 文件 | 路径 | 职责 |
|
||||
|------|------|------|
|
||||
| auto_notify | `~/.hermes/scripts/auto_notify_new_file.sh` | 监控文件到达、上传、入队 |
|
||||
| queue runner | `~/.hermes/skills/devops/uwf/scripts/contract-queue-runner.sh` | 串行执行 workflow |
|
||||
| watchdog | `~/.hermes/scripts/contract-queue-watchdog.sh` | 每20分钟检查卡住的 thread |
|
||||
| auto_notify watchdog | `~/.hermes/scripts/auto_notify_watchdog.sh` | 每5分钟检查 auto_notify 进程 |
|
||||
|
||||
## 禁止回退
|
||||
|
||||
**绝不可把 auto_notify 改回自己启动 `uwf thread exec` 的模式**。前台模式有 ACP stdin bug,
|
||||
只有 `--background` 模式能正常工作。如果未来需要修改 auto_notify 的 workflow 启动逻辑,
|
||||
必须通过 contract-queue-runner 间接执行。
|
||||
|
||||
## 入队逻辑
|
||||
|
||||
```bash
|
||||
# 入队到 contract-queue
|
||||
cp "$filepath" "$QUEUE_DIR/${orig_name}"
|
||||
|
||||
# 追加到 manifest(去重)
|
||||
if ! grep -qFx "$orig_name" "$QUEUE_DIR/manifest.txt" 2>/dev/null; then
|
||||
echo "$orig_name" >> "$QUEUE_DIR/manifest.txt"
|
||||
fi
|
||||
|
||||
# 检查 queue runner 是否在运行,不在则启动
|
||||
if ! ps aux | grep -q "[c]ontract-queue-runner"; then
|
||||
nohup bash "$HOME/.hermes/skills/devops/uwf/scripts/contract-queue-runner.sh" >> "$QUEUE_DIR/queue.log" 2>&1 &
|
||||
fi
|
||||
```
|
||||
Reference in New Issue
Block a user