代理人书籍
    
生产线束 克劳德代码.将Claude Code转变为一个托管舰队——在每个活动会话中都有配置文件链、护栏、上下文智能和实时广播消息。
完整文档: 百叶窗钟表。ithub.io/gentihocks
______________________________________________________________________
四大支柱
graph LR
A["Identity
Who your agents are"] --> E["AgentiHooks"]
B["Guardrails
What keeps them safe"] --> E
C["Context Intelligence
What keeps them sharp"] --> E
D["Fleet Command
Talk to your entire fleet"] --> E支柱1:身份-- *你的代理人是谁*
一个命令可以转换代理的整个个性、权限和工具集。
agentihooks init --profile coding,anton # chain profiles
agentihooks settings-profile admin # swap permissions without touching persona- 配置文件链接 --逗号分隔的配置文件从左向右合并(规则累积,设置深度合并,CLAUDE.md连接)
- 双轴模型 --角色(rules/CLAUDE.md)和设置(权限/MCP)是独立的层
- 捆绑系统 --配置文件的外部存储库,通过自动发现
agentihooks bundle link - 内置配置文件:
default(自动模式),coding(接受编辑),admin(通过权限) - 实时规则刷新 —
agentihooks refresh-rules将规则更新推送到每个正在运行的Claude会话中,而无需重新启动。每次会话拍摄一次,会话快照,这样新会话就不会重复使用。
支柱2:护栏-- *是什么让他们安全*
默认情况下,9+护栏处于活动状态。你的舰队在你设定的范围内运作。
| 护栏 | 它的作用 |
|---|---|
| 秘密——两层 | 硬块写/编辑/Bash到包含秘密的文件;内联Bash args扫描+日志+注释(操作员管理的转录) |
| 分行+PR警卫 | 默认拒绝创建分支 gh pr create;通过操作员信号短语解锁每圈(分支)或每节(PR) |
| Prod锁定 | 默认拒绝 gh pr merge main, release.yml, :latest/:prod/:stable 图像标签;通过发布/修补程序信号进行会话范围的解锁 |
| 控制切换(旁路模式) | 操作员短语 disable controls 翻转会话范围的旁路,立即解除分支/PR/发布合并/修补程序/非主力推送门;次级继承人继承;硬地板(推送到主界面、提交到主界面、文件中的秘密)保持强制执行;恢复由 enable controls 或 SessionEnd 。 |
| 重试断路器 | N=5时的软指令(发射错误研究人员代理)→ 重复相同故障时N=10的硬块 |
| 依赖性横幅 | 在每个pip/npm/cargo/uv/poetry/apt/brew安装上可见横幅——供应链审计界面 |
| 版本保护 | 阻止AI编辑清单中的版本字段 |
| CLAUDE.md理智 | 防止膨胀超过可配置的行限制 |
| MCP表面积 | 加载过多工具时发出警告 |
| Bash输出过滤器 | 截断详细输出以节省令牌 |
| 文件读取数据已删除 | 阻止重复读取未更改的文件 |
支柱3:情境智能-- *是什么让它们保持锋利*
随着对话的增加,LLM会失去对早期指示的关注。AgentiHooks战胜了注意力衰退。
- 上下文刷新 --每20圈重新注入规则,每40圈重新注入CLAUDE.md
- 优先事项 --关键规则在8000个字符的预算内首先加载
- 令牌压缩 --4个级别(关闭/轻度/标准/攻击性),带安全防护口罩
- 刀具记忆 --注入过去的错误,这样代理就不会重复错误
- 大脑适配器 --通过广播通道将知识(热弧、操作内存)泵入代理的可插拔源
- 上下文审计 --跟踪注入的资金和使用的预算
# In ~/.agentihooks/.env
CONTEXT_REFRESH_COMPRESSION=standard # default
CONTEXT_COMPRESSION_SCOPE=all # compress all injections支柱4:舰队司令部-- *与您的整个舰队交谈*
没有其他工具能做到这一点。 同时向每个活动的Claude Code会话发送消息,就像为您的AI员工提供PA系统一样。现在与 频道 对于有针对性的传递——向代理订阅主题,只有正确的会话才能听到正确的消息。
# Manual — full control
agentihooks broadcast "Deploy freeze until 3am" -s alert -t 8h
agentihooks broadcast "STOP ALL WRITES" -s critical -t 15m
# AI-assisted — describe intent in plain English
agentihooks broadcast emit "production incident, all agents stop deploying"
agentihooks broadcast emit "clear all broadcasts"| 严重性 | 交付 | 默认TTL | 用例 |
|---|---|---|---|
info | 每节课一次 | 4小时 | 提醒,仅供参考 |
alert | 每转一次用户 | 1小时 | 部署冻结、降级的服务 |
critical | 每次转弯+每次工具调用 | 30分钟 | 事故,立即停止 |
emit 沙盒:克劳德·海库可以 仅 跑 agentihooks broadcast 命令——禁止使用所有其他工具。
______________________________________________________________________
快速开始
要求: 紫外线 必须安装。
git clone https://github.com/The-Cloud-Clockwork/agentihooks
cd agentihooks
# 1. Create the dedicated venv and install everything
uv venv ~/.agentihooks/.venv
uv pip install --python ~/.agentihooks/.venv/bin/python -e ".[all]"
# 2. Install hooks + settings + MCP into ~/.claude
agentihooks initagentihooks init 电线钩住 ~/.claude/settings.json,符号链接技能/代理/命令/规则,将MCP服务器合并到 ~/.claude.json,并全局安装CLI。随时重新运行——它是幂等的。
与您的车队保持同步的CLI
agentihooks sessions 一目了然地显示每个正在运行的Claude Code会话--会话名称来自 /rename,精确的生命周期,并按索引重新打开以进行崩溃恢复。
建筑
Claude Code
|
|-- Hook Events (stdin JSON) --> python -m hooks --> hook_manager.py
| SessionStart, PreToolUse, |
| PostToolUse, Stop, ... |-- context refresh + compression
| (10 events total) |-- guardrails pipeline
| |-- broadcast delivery
| |-- transcript logging
|
|-- statusLine (native setting) --> python -m hooks.statusline
| pipes JSON on every turn --> 2-3 line status bar
|
+-- MCP Tools --> python -m hooks.mcp --> category modules
aws, email, messaging, --> hooks/integrations/*
database, compute, ...CLI参考
# Install / configure
agentihooks init # global install with default profile
agentihooks init --profile coding,anton # chain profiles
agentihooks settings-profile admin # quick-switch settings layer
# Fleet messaging
agentihooks broadcast "msg" # send info broadcast
agentihooks broadcast "msg" -s critical # critical severity
agentihooks broadcast emit "natural lang" # AI-assisted
agentihooks broadcast --list # active broadcasts
agentihooks broadcast --clear # clear all
# Launch claude with --dangerously-skip-permissions
agentihooks claude # bypassPermissions + your extra args
agenti # alias (after source ~/.bashrc)
# Bundle management
agentihooks bundle link ~/dev/my-tools # link a bundle
agentihooks bundle pull # update linked bundle
# Link an external profile dir into the chain
agentihooks link-profile link ~/dev/brain-profile # auto-appends to chain + re-installs
agentihooks link-profile link ~/dev/brain --name br # disambiguate name on collision
agentihooks link-profile list # show all linked external profiles
agentihooks link-profile unlink brain-profile # remove from chain + sweep symlinks
# Broadcast channels (targeted messaging — subscribe/unsubscribe being reworked)
agentihooks channel publish brain "msg" # publish to a channel
agentihooks channel list # active channels + message counts
# Brain adapter (knowledge injection)
agentihooks brain status # source type, entries, refresh state
agentihooks brain refresh # force re-read + republish
# Live rule refresh (push rule updates into running sessions)
agentihooks refresh-rules --dry-run # preview payload + target session IDs
agentihooks refresh-rules # one-shot push to all alive sessions
agentihooks refresh-rules --clear # cancel a pending marker
# Session registry (crash recovery + session picker)
agentihooks sessions # list recent sessions with NAME + AGE columns
agentihooks sessions reopen # reopen by index from the list
agentihooks sessions backfill # seed registry from JSONL transcripts
# Diagnostics
agentihooks status # full system health
agentihooks lint-claude [path] # CLAUDE.md token cost analysis
agentihooks mcp report # MCP surface area
# Memory mirror (cross-machine auto-memory sync — opt-in, role-based, by-project layout)
# Roles (v4): off / consumer / offline / contributor / authority.
# Set MEMORY_MIRROR_ROLE in ~/.agentihooks/.env. One authority per fleet.
agentihooks memory-sync install # build gitfoam + seed main + init mirror + start daemon (skips gitfoam for consumer)
agentihooks memory-sync status # role, mode, config, binary path, PID
agentihooks memory-sync sync-now # one manual tick (snapshot + fetch main + merge)
agentihooks memory-sync propose [--auto-merge] # PR from gitfoam//main → main
agentihooks memory-sync sweep-branches # prune merged + idle branches (default 15d)
agentihooks memory-sync migrate-layout [--confirm] # one-off: rewrite main to v3 by-project/ layout
agentihooks memory-sync start|stop # gitfoam daemon lifecycle
agentihooks memory-sync uninstall [--purge] # stop daemon (+ optional mirror rm)
# Utilities
agentihooks ignore [path] # create .claudeignore
agentihooks --list-profiles # available profiles
agentihooks --query # active profile name
agentihooks uninstall [--yes] # remove everything什么 init 是否
- 链接捆绑包(如果
--bundle提供) - 合并设置:
settings.base.json->配置文件覆盖->设置配置文件覆盖->OTEL配置 - Symlinks技能、代理、命令和规则(3层合并、跨链添加)
- 写
CLAUDE.md到~/.claude/CLAUDE.md - 安装MCP服务器(挂钩实用程序+捆绑包+配置文件)
- 将层次结构感知的MCP黑名单应用于所有注册项目
- 修剪孤立的MCP服务器
- 通过以下方式全局安装CLI
uv tool - 写入bashrc块(
agentienv外壳功能+agenti别名)
每次回购初始化(--repo/--local)以及.agentihooks.json已删除 2026-05-07.agentihooks init只是全球性的。
档案
配置文件反映了Claude Code项目结构:
profiles//
|-- CLAUDE.md # system prompt (-> ~/.claude/CLAUDE.md)
+-- .claude/
|-- settings.overrides.json # merged into ~/.claude/settings.json
|-- .mcp.json # profile MCP servers
|-- skills/ # -> ~/.claude/skills/
|-- agents/ # -> ~/.claude/agents/
|-- commands/ # -> ~/.claude/commands/
+-- rules/ # -> ~/.claude/rules/内置配置文件: default (自动), coding (接受编辑), admin (bypassPermissions)。捆绑配置文件会自动发现。
三层合并: 内置agentihooks->捆绑全局 .claude/ ->特定配置文件 .claude/。适用于技能、代理、命令、规则和MCP服务器。
配置文件链接: agentihooks init --profile coding,anton 按顺序应用每个配置文件——钩子追加,CLAUDE.md连接,规则/技能累加。
设置配置文件(双轴模型): 独立于角色控制设置:
agentihooks init --profile anton --settings-profile admin
agentihooks settings-profile admin # quick-switch
agentihooks settings-profile --clear # revertHook活动
10个生命周期事件,全部由 python -m hooks:
| 事件 | 关键行为 |
|---|---|
SessionStart | 注册会话、注入上下文、大脑注入、发送广播、MCP警告 |
PreToolUse | 秘密扫描、分支/版本保护、重试中断、关键广播 |
PostToolUse | Bash输出过滤、文件去重、工具错误记录 |
UserPromptSubmit | 秘密扫描、大脑刷新、上下文刷新、频道过滤广播传输 |
Stop | 成绩单扫描、自动存储、成本指标 |
SessionEnd | 注销会话、清除缓存、日志摘要 |
SubagentStop | 子代理转录记录 |
Notification | 日志通知 |
PreCompact | 压实前记录 |
PermissionRequest | 记录权限请求 |
配置
中的所有配置 .env 文件在 ~/.agentihooks/.关键变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
CONTEXT_REFRESH_COMPRESSION | standard | 令牌压缩级别 |
CONTEXT_COMPRESSION_SCOPE | refresh | 范围: refresh 或 all |
CONTEXT_REFRESH_INTERVAL | 20 | 每N圈重新注入规则 |
BROADCAST_ENABLED | true | 车队信息主开关 |
BROADCAST_CRITICAL_ON_PRETOOL | false | 在每个PreToolUse上重新注入关键广播(默认关闭——警报仍在UserPromptSubmit上) |
BROADCAST_PRETOOL_MIN_SEVERITY | critical | PreToolUse重新注射的最低严重程度。 alert 扩大它 |
BROADCAST_MAX_BYTES_PRETOOL | 0 | PreTool使用横幅字节上限。 0 =无上限。设置>0以在Claude Code的10K挂钩输出限制下选择截断。 |
BROADCAST_MAX_BYTES_PROMPT | 0 | UserPromptSubmit横幅字节上限。语义相同。 |
CI_MANIFESTO_MAX_BYTES | 0 | CI声明注入字节上限。 0 =全舰通过。设置>0(例如。 7500)使用“在\ |
| 处读取完整文件”页脚截断。 | ||
TOKEN_CONTROL_ENABLED | true | 令牌控制层主交换机 |
BASH_FILTER_ENABLED | true | 截断冗长的bash输出 |
FILE_READ_CACHE_ENABLED | true | 阻止冗余文件重新读取 |
BRAIN_ENABLED | false | 脑适配器主开关 |
BRAIN_URL | "" | 远程大脑HTTP端点(kb路由器)。设置后,钩子会抓取 /feed, /signal,post /marker 而不是读取文件系统。 |
BRAIN_HTTP_TOKEN | "" | 持有者代币 BRAIN_URL.回落到 KB_ROUTER_TOKEN. |
BRAIN_SOURCE_PATH | ~/.agentihooks/brain | 文件系统回退 BRAIN_URL 未设置。 |
BRAIN_CHANNEL | brain | 大脑内容广播频道 |
BRAIN_REFRESH_INTERVAL | 30 | 每N圈重新阅读一次大脑源代码 |
AMYGDALA_ENABLED | false | 主动信号注入(使用 BRAIN_URL /signal). |
BRAIN_WRITER_ENABLED | false | 职位 /marker 停止/子代理停止。 |
完整表格: 配置参考
吊钩输出和10K盖
Claude Code注入钩子stdout(以及任何 hookSpecificOutput.additionalContext) 进入模型的上下文,直至形成文档 10000字符硬上限. 在盖子之外,安全带会默默地将身体写入一个临时文件 模型接收的是文件路径而不是内容。如果您的会话开始或 UserPromptSubmit注射累计10K以上 默默地迷失了.
AgentiHooks不强制执行默认上限——完整内容通过默认上限发送 代理拥有尽可能多的上下文。审核每个事件的实际内容 发射,是否有任何东西超过限制,运行:
agentihooks doctor --debug-hook如果你堆叠了许多注射(CI宣言+大脑喂养+杏仁核+定制 叠加+工具记忆),使用 *_MAX_BYTES 上方的旋钮可盖住 最大的贡献者,并为其他人留出空间。
远程大脑快速启动
将Claude Code会话连接到您已经部署的大脑堆栈中 (例如通过 agentibrain-kernel的docker撰写或掌舵图表),放下 以下四行 ~/.agentihooks/.env:
BRAIN_URL=http://:
BRAIN_HTTP_TOKEN=
BRAIN_ENABLED=true
AMYGDALA_ENABLED=true
# optional — write back markers from this session
BRAIN_WRITER_ENABLED=true重新启动Claude Code会话。钩子堆栈将获取热弧+ 在每个提示上显示活动信号,并将其作为广播横幅注入。不 配置文件安装是必需的——可以与任何配置文件(或无配置文件)一起使用。
内存镜像--跨机自动内存同步(PR门控)
Claude Code的自动记忆 ~/.claude/projects/ /memory/ 是机器本地的。 此功能镜像 只有 memory/ 子树 在你的每一台机器上 fleet通过私有GitHub仓库。成绩单、会话JSONL和 ctx_refresh 快照被经过单元测试的rsync过滤器排除在外。
运作原理
machine A machine B
───────── ─────────
~/.claude/projects/*/memory/ ~/.claude/projects/*/memory/
│ rsync (memory-only) ▲ merge (.conflict sibling on divergence)
▼ │
~/.agentihooks/memory-mirror/ ~/.agentihooks/memory-mirror/
│ gitfoam force-push 500ms │ git fetch origin main every 60s
▼ │
origin/gitfoam/A/main origin/main ← merged by operator via PR
│ ▲
└── gh pr create --base main ───────┘
(agentihooks memory-sync propose)每台机器仍在向其 拥有 gitfoam//main 分支通过 gitfoam (Rust守护进程,500ms 强制推送、内置秘密扫描)。 消费者阅读 origin/main 只有。 从机器部门晋升到 main 是PR-- agentihooks memory-sync propose 通过打开它 gh pr create 并且可选地在清理时自动合并。 这为您提供了一个针对不良或恶意记忆的审查门,而无需采取 剥夺了每个代理积累自己学习的能力。
标识键控布局(v3)。 镜像在以下位置存储内存 by-project//memory/ 哪里 ` 是仓库或代理名称,而不是绝对路径。一个身份 解析器反向行走 ~/.claude/projects// dir查找 包或代理边界(agent.yml > pyproject.toml/Cargo.toml/package.json/go.mod`
.git)并使用其基名作为密钥。所以:- 笔记本电脑
/home/iamroot/dev/tcc-ecosystem/agenticore→ keyagenticore - 舰队吊舱
/app/agenticore→ keyagenticore(相同的密钥,内存池!) - 代理
.../agentihub/agents/finops/package→ keyfinops(跳过package/) - 连字符转发类似
tcc-toolbelt保持不变(解析器读取真实的FS,而不是编码名称) - 无法解决的路径又回到了
_unmapped//所以没有什么损失。
启用(三个命令)
cat >> ~/.agentihooks/.env .conflict--` 旁边
目标——本地文件永远不会被覆盖。通过解决 `/memory`,
完成后删除冲突文件。
**模式**
- `off` (默认)--休眠
- `write` --完全参与者(推+拉主)
- `write-local-only` --气隙贡献器(仅推,从不拉)
**家政**
`agentihooks memory-sync sweep-branches` 删除已合并的远程分支
进入 `main` 闲置时间超过 `MEMORY_MIRROR_SWEEP_IDLE_DAYS` (默认值为15)。
未合并的分支永远不会被触碰。克朗安全。
**选择加入、选择退出、清除**
什么都不会发生,除非 `MEMORY_MIRROR_MODE != off` 和 `MEMORY_MIRROR_REMOTE`
已设置。回滚与 `agentihooks memory-sync uninstall --purge`.
完整指南: [docs/开始/memory-mirror.md](docs/getting-started/memory-mirror.md)
## 可移植性
用户特定的一切 `~/.agentihooks/`.要移动到新机器:
uv venv ~/.agentihooks/.venv uv pip install --python ~/.agentihooks/.venv/bin/python -e ".[all]" agentihooks init
## 相关项目
|项目|描述|
|---------|-------------|
| [代理](https://github.com/The-Cloud-Clockwork/agenticore) |Claude代码运行者和编排者|
| [代理权](https://github.com/The-Cloud-Clockwork/agentibridge) |用于会话持久化和远程控制的MCP服务器|
## 许可证
看 [许可证](LICENSE) 了解详情。