返回首页
最新
我开始使用Claude Code(claude --dangerously-skip-permissions)和Codex(codex --yolo),但意识到我没有可靠的方法来了解它们实际做了什么。代理自身的输出讲述了一个故事,但那是代理的故事。
logira通过eBPF在操作系统级别记录执行、文件和网络事件,按运行范围进行限定。事件以JSONL和SQLite格式保存在本地。它附带默认的检测规则,用于凭证访问、持久性更改、可疑的执行模式等。它是观察模式——从不阻止任何操作。
<a href="https://github.com/melonattacker/logira" rel="nofollow">https://github.com/melonattacker/logira</a>
我一直在运行Claude代理来处理各种自动化任务——监控加密新闻、同步Todoist、进行健康检查——但我一直遇到同样的问题:没有一种干净的方式来部署一个只在预定时间运行而不需要人工监控的代理。
我查看的每个代理框架都是围绕聊天界面或一次性工作流构建的。我想要的是一种更接近于cron的AI代理——定义一个任务,设定一个时间表,让它永远运行。因此,我构建了Ductwork。
你可以将任务定义为简单的JSON文件——一个提示、一个时间表、可选的记忆和技能——Ductwork负责调度、执行、重试和历史记录。代理具有bash、文件读写,仅此而已。没有复杂的抽象。
使其真正适合无人值守操作的特点:
持久记忆——代理在运行之间会写入一个记忆目录。我的比特币新闻监控器会记住它已经报道过的文章。下一次运行时,它只会标记新的文章。
安全边界——如果你让代理在无人监督的情况下运行,你需要设置保护措施。每个任务的工具白名单、路径限制、bash命令过滤器。监控任务无法意外地执行rm -rf命令。
运行历史和可观测性——每次运行都会记录状态、持续时间、令牌使用情况和错误。提供REST API,以便你可以与已有的警报系统集成。
它可以从单个进程(ductwork start)扩展到分布式——同一个二进制文件,使用--mode=control运行任务队列,--mode=worker在其他机器上轮询工作。没有新的依赖项,仅需HTTP。
单个Go二进制文件,执行go install后即可运行。大约3,500行代码,唯一的依赖是Anthropic SDK和Cobra。
这绝对不是一个完成的产品——它还处于早期阶段,我还有很多想要添加的功能。但它是功能性的,我希望大家下载它,试用一下,并告诉我他们的想法。反馈、想法、问题——都欢迎。
<a href="https://github.com/dneil5648/ductwork" rel="nofollow">https://github.com/dneil5648/ductwork</a>
我之所以构建这个工具,是因为使用多个代理命令行界面(CLI)意味着在终端之间需要大量的复制和粘贴。如果我想让Claude和Gemini协作,我就必须手动移动上下文。
agentchattr运行一个本地的FastAPI MCP服务器,并提供一个浏览器聊天界面。每个代理在其正常的终端会话中运行,背后有一个小的包装器。当你@提到某个代理时,包装器会注入一个命令,告诉它读取聊天内容并进行回应。
“不同寻常”的地方在于,我并没有为这些代理构建一个自定义的主机,而是直接驱动真实的命令行界面。在Windows上,包装器通过Win32控制台API注入输入;在macOS/Linux上,它使用tmux的send-keys。这让我可以在官方CLI更新时继续使用它们,但这绝对是最奇怪的部分。
这让我可以做到一些事情,比如:我让Claude审查一个PR,而Gemini为其编写测试。他们可以在聊天中看到彼此的消息,并进行协调,而我无需移动文本。
它还通过对终端屏幕缓冲区进行哈希来跟踪代理是否处于活动状态,因此用户界面可以显示他们是否真的在忙。我是一名设计师,这是我的第一个开源项目,我尽量保持它轻量且精致。
我对技术部分和设计方面的批评意见非常感兴趣。