1. 项目概述:一个为多项目AI编程代理设计的注意力管理系统
如果你和我一样,日常需要在多个代码项目之间切换,同时管理着好几个Claude Code代理在并行工作,那你一定体会过那种“注意力涣散”的痛苦。哪个代理卡住了?哪个任务有新的进展需要我审核?昨天那个修复了某个诡异bug的会话记录藏在哪里了?传统的claude命令行工具在单次会话中表现出色,但一旦进入多代理、多项目、长周期的真实工作流,它就像一堆散落的乐高积木,缺乏一个统一的“操作台”来帮你统筹全局。
Xylocopa(以蓝木蜂命名)就是为了解决这个问题而生的。它不是一个全新的AI代理运行器,而是一个构建在现有Claude Code CLI之上的任务、注意力与记忆层。你可以把它想象成一个专为AI编程代理设计的“超级看板”或“任务指挥中心”。它的核心哲学源自GTD(Getting Things Done),但进行了一次关键的重构:你负责捕捉想法和做出决策,代理负责执行,而系统负责记住一切。这个循环确保了你的注意力始终聚焦在最高价值的事情上,而不是迷失在琐碎的状态检查和历史追溯中。
简单来说,Xylocopa帮你做了三件事:
- 统一入口:将所有来自不同项目、不同设备的任务想法(语音、快速输入)捕获到一个统一的收件箱。
- 集中监控:在一个界面(支持Web、PWA、甚至CLI同步)实时查看所有运行中代理的状态、输出和系统资源,并通过一个显眼的“注意力按钮”智能提示你最需要关注的任务。
- 持久化记忆:自动将每次会话的尝试、失败教训和成功经验总结到每个项目专属的
PROGRESS.md文件中,并通过RAG(检索增强生成)在启动新代理时自动提供相关上下文,让知识在项目和会话间真正沉淀、复用。
它适合任何已经使用Claude Code进行日常开发,并希望将AI协作从“一次性对话”升级为“可管理、可积累、可扩展”的系统化工作流的开发者。
2. 核心架构与设计哲学拆解
2.1 为什么是“环绕式”架构,而非替代品?
Xylocopa最巧妙的设计在于它的定位:它不替代claudeCLI,而是增强它。这种“环绕式”(Wrapper)架构带来了几个决定性优势:
零迁移成本与生态兼容:你的所有现有工作流——本地的CLAUDE.md项目配置、熟悉的claude命令、已有的项目结构——完全保持不变。Xylocopa只是在一旁启动claude会话(在独立的tmux会话和git工作树中),并通过钩子(Hooks)和MCP(模型上下文协议)服务器与其通信。这意味着你没有学习新工具的成本,也没有被锁定的风险。如果Xylocopa服务停了,你的代理仍在tmux里运行,你的项目文件原封不动。
利用成熟可靠性:Claude Code CLI本身已经处理了与Anthropic API的通信、会话管理、工具调用等复杂且稳定的逻辑。Xylocopa无需重复造轮子,只需专注于自己擅长的部分:任务队列、状态聚合、UI呈现和记忆系统。这大大降低了核心复杂度,也继承了Claude CLI的稳定性。
职责分离清晰:claude负责“思考与执行”,Xylocopa负责“管理与记忆”。这种分离使得两者都可以独立演化。例如,Claude Code未来更新了新的模型或工具,Xylocopa可以无缝受益;而Xylocopa可以专注于优化用户体验和系统可靠性,无需担心底层的AI推理逻辑。
2.2 “持久化默认”的设计理念
大多数AI工具将对话视为“短暂的状态”,关闭即消失。Xylocopa则反其道而行之,将“持久化”作为第一原则。这体现在每一层:
- 会话缓存与修复:
session_cache.py实现了类似Git包文件的增量追加缓存机制,每30秒将活跃的JSONL会话日志快照一次。即使进程崩溃,也能从缓存中恢复绝大部分内容。更绝的是,它还能自动检测并修复因崩溃导致的JSONL文件截断问题,确保日志的完整性。 - 输出抢救:
agent_dispatcher.py中的_recover_agents()函数会在服务重启时,扫描/tmp/claude-output-*.log这类临时文件,尝试提取代理崩溃前尚未被会话日志捕获的标准输出,并将其持久化。这意味着即使代理进程意外被杀,你也不会丢失崩溃前最后一刻的输出。 - 无限保留:Xylocopa会自动将Claude Code设置中的
cleanupPeriodDays修改为36500(约100年),从根本上阻止Claude自动清理历史会话。你的所有工作记录都被永久保存。 - Tmux锚定恢复:每个代理都在独立的tmux会话中运行。当Xylocopa后端重启后,它会重新扫描并“链接”回那些仍然存活的tmux会话。你的代理进程本身并未中断,只是管理界面重新建立了连接。
- 草稿持久化:前端任何文本输入框(超过13处)的每一次击键都会自动缓存到浏览器的
localStorage中。即使你关闭了标签页、浏览器崩溃甚至网络中断,重新打开后,未发送的草稿依然在那里。
实操心得:这种“持久化默认”的设计,极大地降低了心理负担。你再也不用在执行重要操作前反复确认“这个会不会丢?”。它可以让你更大胆地尝试一些有风险的操作,因为你知道系统有强大的回滚和恢复能力。这其实是提升开发者与AI协作效率的一个隐性但非常重要的因素。
2.3 安全护栏:在“自动模式”下依然坚固的防线
Claude Code的--dangerously-skip-permissions模式(在Xylocopa中称为“自动模式”)赋予了代理极大的自主权,但也带来了风险。Xylocopa通过一个确定性的PreToolUse安全钩子,建立了一道即使在该模式下也无法逾越的防线。
这个钩子会在每个工具调用执行前进行同步检查,硬性拦截以下类型的危险操作:
- 文件系统核弹:
rm -rf /或针对项目根目录之外的删除操作。 - Git灾难:
git push --force(强制推送)、git reset --hard(在非工作树内硬重置)、git clean -f(强制清理未跟踪文件)、git checkout -- ./git restore .(丢弃所有本地修改)。 - 数据库清除:
DROP TABLE,TRUNCATE等SQL命令。 - 越界写操作:任何试图向项目目录之外路径进行的
Write或Edit操作。
其实现原理是解析工具调用的参数,并与预定义的危险模式列表及当前项目路径进行匹配。因为检查是同步且确定性的,所以没有漏网之鱼。这相当于给你的“自动模式”代理配了一个永不疲倦的副驾驶,专门负责踩刹车。
注意事项:安全钩子主要防范的是“广谱性”的破坏命令。它无法理解业务逻辑层面的“错误”,比如“删错了业务模块的文件”或“提交了错误的代码”。因此,在关键操作上,即使启用了自动模式,保持人工审核的习惯仍然是必要的。安全钩子是最后的安全网,不是替代你判断的AI。
3. 核心工作流与功能实操详解
3.1 捕获:让灵感无处可逃
“捕获”是GTD循环的第一步,也是Xylocopa体验的起点。它的目标是消除想法记录过程中的任何摩擦。
收件箱(Inbox):这是一个跨所有项目的全局任务队列。无论你在哪个项目视图下,点击“+”号快速添加的任务,都会先进入这里。你可以通过拖拽重新排序,决定处理的优先级。
语音输入:集成了OpenAI Whisper(需要提供API Key)。当你在通勤、散步时突然有了一个调试思路,直接点击麦克风按钮说出来即可。语音转文本后,会自动填入任务标题并暂存到草稿。
闪电输入(Lightning Input):在Web UI的任意页面,短按右下角的“+”按钮,会立即弹出一个最小化的输入框,你只需要输入任务标题、选择关联项目,然后点击“保存”。整个过程可以在两秒内完成,最大限度地减少了上下文切换。
草稿持久化:这是我最欣赏的细节之一。上述所有输入表面,包括任务详情、聊天输入框等,都接入了useDraft.js这个Hook。你输入的内容会实时保存到localStorage。这意味着:
- 写了一半的长篇任务描述,浏览器崩溃了?重新打开,内容还在。
- 在手机PWA上输入时接到电话,应用被切换到后台?回来接着写。
- 网络突然断开?没关系,先离线编辑,等网络恢复后再发送。
实操技巧:将Xylocopa PWA添加到手机主屏幕,并将其作为你的“数字便签本”。任何与代码项目相关的零星想法,无论是语音还是文字,都第一时间丢进去。这样当你回到电脑前,你的“收件箱”已经整理好了待办事项,可以直接进入“调度”阶段。
3.2 调度:从任务到自治代理
捕获的任务需要被执行。在Xylocopa中,“调度”就是一键将任务转化为一个活的、正在工作的Claude Code代理。
任务 → 代理:在收件箱或项目任务列表中,点击一个任务,选择“转换为代理”。此时你需要做出几个关键决策:
- 选择模型:根据任务复杂度,在Claude Opus、Sonnet或Haiku之间选择。简单查询用Haiku节省成本,复杂重构用Opus保证质量。
- 启用自动模式:勾选“Auto Mode”(对应
--dangerously-skip-permissions)。这将允许代理在安全钩子允许的范围内自主运行工具,无需你逐个批准。这是提升效率的关键,但请确保你理解前述的安全边界。 - RAG上下文注入:系统会自动检索当前项目
PROGRESS.md中与当前任务最相关的历史经验(基于嵌入向量相似度,top-k),并将这些“历史教训”作为初始上下文提供给新代理。这相当于每个新代理都继承了项目组的集体智慧。
并行执行与隔离:每个代理都在一个独立的git工作树中启动。这是实现并行和隔离的核心机制。工作树是Git的一个功能,它允许你在同一个仓库的同一个分支上,签出多份独立的工作目录。这意味着:
- 代理A和代理B可以同时修改
main分支上的不同文件,而不会相互冲突。 - 每个代理的工作空间都是干净的,不受其他代理临时文件的影响。
- 所有修改都发生在工作树内,原项目目录保持不变,直到你审查后合并。
AI批量调度:收件箱里堆了十几个小任务?你可以全选,然后点击“AI Triage & Dispatch”。Xylocopa会调用Claude快速分析这些任务,根据内容自动推荐合适的模型和配置,并一键全部启动。这非常适合处理积压的琐碎任务,如代码格式化、文档补全、简单的依赖更新等。
3.3 监控:全局态势感知
当多个代理并行运行时,如何有效监控成为挑战。Xylocopa的监控界面设计堪称“指挥中心”级别。
注意力按钮(FAB):这是UI的灵魂。一个始终悬浮的圆形按钮,带有一个青色的未读计数徽章。它的逻辑是FIFO(先进先出):
- 短按:直接跳转到最旧的那个有待处理消息(需要你审核工具调用或给出反馈)的代理会话。这强制你按照任务进入的先后顺序处理,避免重要的旧任务被无限期搁置。
- 长按:弹出菜单,允许你打开2、3或4分屏视图,同时监控多个代理。
分屏视图:支持同时打开多个会话窗格,每个窗格都可以独立导航到不同的项目、代理或任务。你可以一边让代理A重构某个模块,一边在另一个窗格中审核代理B生成的代码,同时在第三个窗格中查看系统资源监控。
系统监控仪表盘:实时显示服务器的磁盘使用率、内存占用、GPU负载(如果可用)以及近期的Token消耗趋势。这能帮助你及时发现资源瓶颈,例如某个代理陷入死循环导致内存激增。
智能通知:集成了Web Push和Telegram通知。但它的智能之处在于“在场检测”:
- 如果你正在Web UI中查看某个代理的会话,或者通过
tmux attach连接到了该代理的终端,那么该代理的通知会被自动抑制。 - 但是,权限请求(如安全钩子拦截了危险操作,需要你决策)的通知会始终穿透。这确保了安全相关的事项绝不会被错过。
CLI双向同步:这是连接Web世界和终端世界的桥梁。
- CLI → Web:你在终端通过
claude命令启动的任何会话,只要在tmux中运行,Xylocopa后端都能通过SessionStart钩子捕获到,并将其显示在Web UI的“未链接会话”列表中,你可以选择“收养”它,从而纳入统一管理。 - Web → CLI:所有通过Web UI启动的代理,都在后台的tmux会话中运行。你可以在终端通过
tmux attach -t xy-<session_id>命令直接连接到这个会话,看到最原始的输出流,甚至进行交互。这为高级调试和直接控制提供了逃生通道。
3.4 审查与迭代:从失败中学习
代理不会总是做对。Xylocopa的核心创新之一就是将“失败”转化为学习机会。
“尝试 → 总结 → 重试”工作流:
- 你发现代理走错了方向,点击“Stop”。
- Xylocopa不会简单地丢弃这个会话。相反,它会自动调用Claude,让它总结这个代理到目前为止尝试了哪些步骤、遇到了什么问题、当前状态如何。这个总结会被生成一份清晰的文本。
- 你点击“Retry with Summary”。系统会创建一个新的代理,并将上一步生成的总结作为初始上下文的一部分。
- 新代理不是从头开始,而是从“前辈”失败的地方继续探索,避免了重复劳动。
Git操作集成:在每个项目的视图里,你可以直接查看当前工作树与主分支的差异(diff)、提交历史,以及分支状态。审查完一个代理的工作后,你可以:
- 一键清理:丢弃该工作树的所有更改。
- 一键提交并推送:将工作树中的更改提交、推送到远程仓库。
- 合并更改:手动将工作树中有价值的更改合并回主项目目录。
项目记忆(PROGRESS.md):这是知识沉淀的最终载体。PROGRESS.md文件保存在每个项目的根目录,完全由你通过UI管理。你可以将任何会话中的关键信息(成功方案、失败原因、最佳实践)编辑并保存到这里。这个文件是纯Markdown,既是给人看的文档,也是给AI检索的“知识库”。未来启动新代理时,RAG系统就会从这里提取相关上下文。
3.5 记忆:让知识随时间复利
“记忆”是超越单次会话的长期价值积累。
会话存档与搜索:每一次对话,无论成功失败,都被完整保存。你可以通过全文搜索功能,跨越所有项目和所有时间,查找曾经讨论过的任何技术点、错误信息或解决方案。
随时恢复:任何状态为STOPPED或ERROR的代理,都可以通过一键“Resume”恢复。系统会尝试重新连接到现有的tmux会话;如果会话已终止,则会通过claude --resume命令基于保存的JSONL历史重新创建一个会话,让你可以从上次中断的地方继续。
跨会话引用:当代理A需要参考代理B的工作时,它不需要读取庞大的原始JSONL日志(非常耗费Token)。Xylocopa内置了一个MCP服务器,代理可以通过类似“check xy session<id>”的指令,请求读取另一个代理的“精选显示文件”。这个文件是会话关键信息的精简摘要,相比原始日志,能减少约54倍的Token消耗,使得跨代理协作变得高效且经济。
每周进度统计:系统会生成可视化的图表,展示你每周通过代理完成的任务数量、耗时趋势等。这有助于你从宏观上评估AI协作的效率,并进行调整。
4. 部署、配置与运维实战
4.1 环境准备与一键安装
Xylocopa的安装流程已经高度自动化。最推荐的方式是使用官方的一行命令安装脚本:
curl -fsSL https://raw.githubusercontent.com/jyao97/xylocopa/master/setup.sh | bash这个脚本会完成以下工作:
- 将仓库克隆到
~/xylocopa-main。 - 交互式地询问你几个关键配置:
- 项目目录:你的所有Git项目存放的根路径(默认
~/xylocopa-projects)。 - 默认Claude模型:启动新代理时默认使用的模型(如
claude-3-5-sonnet-20241022)。 - OpenAI API密钥:(可选)用于语音输入功能。
- 服务端口:后端(默认
7443)和前端(默认3000)的端口。
- 项目目录:你的所有Git项目存放的根路径(默认
- 根据你的回答生成
.env配置文件。 - 为HTTPS生成自签名SSL证书(前端必须通过HTTPS访问才能使用PWA和通知等功能)。
- 创建Python虚拟环境(
.venv)并安装所有后端依赖。 - 安装Node.js前端依赖。
- 使用PM2启动后端和前端服务。
安装完成后,在主机上打开https://localhost:3000即可访问。首次访问需要设置一个管理密码。
注意事项:安装脚本假设你的系统已具备基本前提:Linux/macOS、Node.js 18+、Python 3.11+、tmux以及已全局安装并登录的
claudeCLI。如果claude命令在全新的无头服务器上运行,你需要先通过claude setup-token命令来设置认证令牌,因为无法打开浏览器进行OAuth。
4.2 配置详解与数据管理
安装后,最重要的配置文件是项目根目录下的.env文件。你需要关注以下几个关键变量:
# 项目目录:Xylocopa将在这里寻找或创建你的代码项目 HOST_PROJECTS_DIR=/home/yourname/xylocopa-projects # Claude CLI路径和默认模型 CLAUDE_PATH=/usr/local/bin/claude DEFAULT_CLAUDE_MODEL=claude-3-5-sonnet-20241022 # 后端服务配置 BACKEND_HOST=0.0.0.0 # 监听所有网络接口,方便远程访问 BACKEND_PORT=7443 FRONTEND_PORT=3000 # 数据库和上传路径 DATABASE_URL=sqlite:///data/orchestrator.db UPLOAD_DIR=/home/yourname/.xylocopa/uploads # 备份设置 BACKUP_INTERVAL_HOURS=24 # 每24小时自动备份一次 BACKUP_RETENTION_DAYS=7 # 保留最近7天的备份数据存储位置:
- SQLite数据库:
<install_dir>/data/orchestrator.db,存储任务、项目、代理元数据和配置。 - Claude会话日志:
~/.claude/projects/<encoded-project-path>/*.jsonl,由Claude Code原生生成,Xylocopa不复制,直接读取。 - 项目记忆文件:
<your-project>/PROGRESS.md,位于每个Git项目仓库内。 - 上传文件:
~/.xylocopa/uploads/,用户通过Web UI上传的图片、文档等。 - 备份:
<install_dir>/backups/,按配置周期自动生成的数据库、配置和会话历史快照。
完整的备份策略:要完整备份Xylocopa的状态,你需要打包两个地方:1) Xylocopa安装目录(包含数据库和配置),2)~/.claude/projects/目录(包含所有会话历史)。恢复时,将备份解压到相同路径,重启服务即可。
4.3 实现系统服务与高可用
为了让Xylocopa在服务器重启后能自动运行,并且不受终端会话生命周期的影响,必须将其设置为系统服务。安装脚本提供了便捷命令:
cd ~/xylocopa-main ./run.sh startup这个命令会执行pm2 save(保存当前进程列表)和pm2 startup(生成系统启动脚本)。在Linux(使用systemd)上,它会输出一行类似下面的命令,你需要原样复制并执行:
sudo env PATH=/usr/bin:/bin:/usr/local/bin PM2_HOME=/home/yourname/.pm2 pm2 startup systemd -u yourname --hp /home/yourname执行后,PM2管理的Xylocopa进程就会被注册为系统服务。这样即使你关闭SSH连接,或者服务器重启,服务都会自动拉起。
深度解析:为什么PM2至关重要?在Linux上,特别是使用systemd的现代发行版,有一个名为
systemd-oomd的内存不足杀手。当系统内存压力大时,它可能会终止整个控制组(cgroup),例如你启动Xylocopa的那个GNOME Terminal进程所属的vte-spawn-*.scope。如果Xylocopa直接运行在这个终端里,它会被连带杀死。PM2作为守护进程运行在独立的上下文中,避免了这个问题。在macOS上,效果类似:关闭Terminal.app不会杀死PM2守护的进程。
4.4 远程访问与移动端PWA配置
远程访问(以Tailscale为例):
- 在主机和你的手机/电脑上安装Tailscale并登录同一账户。
- 在主机上运行
tailscale up。 - 在手机/电脑上同样运行
tailscale up。 - 获取主机的Tailscale IP(
tailscale ip)。 - 在外部设备浏览器访问
https://<tailscale-ip>:3000。
Tailscale建立了点对点的加密隧道,无需配置路由器端口转发,也无需将服务暴露在公网,安全又方便。ZeroTier、WireGuard等任何VPN/组网工具同理。
iPhone PWA安装(关键步骤): 由于使用了自签名证书,在iOS上安装PWA需要额外步骤来信任证书。
- 在iPhone Safari中访问
https://<your-server-ip>:3000。 - 会显示“不安全连接”警告。点击“高级”或直接输入“thisisunsafe”(如果直接访问),然后刷新页面。
- 登录Xylocopa后,在登录页面或设置页面,通常会有一个“Install CA Certificate”或类似的链接。点击并下载描述文件(
.mobileconfig)。 - 进入iPhone的“设置” > “已下载描述文件”,安装该CA证书。
- 回到“设置” > “通用” > “关于本机” > “证书信任设置”,找到你安装的根证书,并启用完全信任。
- 再次用Safari打开Xylocopa,现在应该没有警告了。点击分享按钮,选择“添加到主屏幕”。这样你就拥有了一个全屏、支持推送通知的本地应用。
Android/其他桌面设备:也需要手动安装CA证书,具体步骤参考项目文档中的docs/install-cert.md。本质就是将服务器生成的自签名证书(位于<install_dir>/certs/)导入到相应设备的受信任根证书颁发机构存储中。
5. 故障排查与进阶技巧
5.1 常见问题速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 网页无法访问,连接被拒绝 | 后端或前端服务未运行 | 在主机运行./run.sh status检查PM2进程状态。用./run.sh restart重启。检查防火墙是否放行了3000和7443端口。 |
| 页面能打开,但一直加载或空白 | 前端无法连接到后端API | 检查浏览器控制台(F12)的Network标签,看对https://<ip>:7443的请求是否失败。确认.env中的BACKEND_HOST和BACKEND_PORT配置正确,且前端构建时使用了正确的API地址。 |
代理状态显示为IDLE,但tmux里还在跑 | 后端重启后,WebSocket连接暂时断开,状态未及时同步 | 这是正常现象。状态会在代理下一次触发工具调用(发送心跳)时自动更新为EXECUTING。如果代理正处于长时间“思考”阶段,你可以在聊天框发条消息(如“ping”)来触发活动。 |
| PWA卡在永久加载界面 | Service Worker缓存过期或损坏 | 在主机上运行:.venv/bin/python tools/push_reset.py。这是一个交互式工具,会列出所有注册的设备。按a重置所有设备的Service Worker缓存,然后按q退出。最后,在移动设备上完全关闭PWA(从多任务界面划掉),再重新打开。 |
CLI启动的claude会话未出现在Web UI | 后端服务在claude会话启动时恰好离线 | SessionStart钩子发送HTTP请求到后端,如果后端宕机,请求会失败。变通方案:确保后端运行后,在对应的tmux pane中退出claude(Ctrl+C),然后重新运行claude命令,钩子会再次触发。 |
| 语音输入不可用 | 未配置OpenAI API密钥,或密钥无效 | 在Xylocopa的Web设置页面,检查并填入有效的OpenAI API密钥。该功能依赖Whisper API。 |
| 通知不工作 | 浏览器未授予通知权限,或PWA未正确安装 | 在浏览器设置中为Xylocopa网站启用通知。对于PWA,确保已“添加到主屏幕”安装,且系统通知权限已开启。Telegram通知需要在设置中配置Bot Token和Chat ID。 |
5.2 运维与监控命令
Xylocopa通过PM2管理,提供了一组简单的./run.sh脚本命令:
# 查看服务状态 ./run.sh status # 启动服务 ./run.sh start # 停止服务 ./run.sh stop # 重启服务 ./run.sh restart # 查看后端日志(实时) ./run.sh logs backend # 查看前端日志(实时) ./run.sh logs frontend # 停止并清除所有日志 ./run.sh clean # 设置为系统启动项(重要!) ./run.sh startup # 取消系统启动项 ./run.sh unstartup手动检查与维护:
- 检查孤儿进程:偶尔可能会有僵尸进程或残留的工作树。可以手动运行
python orchestrator/orphan_cleanup.py进行清理。 - 手动触发备份:运行
python orchestrator/backup.py会立即创建一次备份。 - 数据库操作:SQLite数据库文件是
data/orchestrator.db。你可以使用sqlite3命令行工具进行高级查询或修复,但操作前请务必停止服务 (./run.sh stop)。
5.3 性能调优与资源管理
- Token消耗监控:密切关注系统监控面板中的Token使用趋势。如果发现某个代理长时间运行且Token消耗异常高,可能是陷入了循环或无关的冗长输出。及时使用“Stop & Summarize”中断它。
- 磁盘空间管理:Xylocopa默认设置会话永久保留,
~/.claude/projects/目录可能会随时间增长。定期检查该目录大小。你可以通过修改~/.claude/settings.json中的cleanupPeriodDays为一个较小的值(如30)来让Claude自动清理旧会话,但这会牺牲一些可恢复性。 - 并发数限制:虽然可以并行启动很多代理,但受限于你的机器资源(CPU、内存、网络)和Claude API的速率限制。建议根据机器性能合理控制同时运行的代理数量,避免整体性能下降。
- 网络优化:如果服务器在海外,Web UI加载或消息传递延迟较高,可以考虑使用Cloudflare Tunnel等工具进行加速,或者将服务部署在离你更近的区域。
5.4 从AgentHive迁移
Xylocopa是AgentHive的重命名版本。升级是无缝的:
- 原有
agenthive命令行工具仍然作为xylocopa的符号链接存在。 - 环境变量
AGENTHIVE_DIR和AGENTHIVE_MANAGED依然被识别,与新的XYLOCOPA_*变量并存。 - 数据目录
~/.agenthive/uploads会在后端首次启动时自动重命名为~/.xylocopa/uploads。 - 现有的tmux会话(前缀为
ah-的)会被继续识别,确保正在运行的代理不受影响。
如果你希望重命名安装目录,只需:
mv ~/agenthive-main ~/xylocopa-main cd ~/xylocopa-main ./run.sh restart系统在设计上充分考虑了向后兼容,确保用户平滑过渡。