这个项目能做什么

affe-agent 是一个 TypeScript 库,充当 Effect 原生的代理执行内核,位于 Effect AI 的 LanguageModel、Prompt、Tool 和 Toolkit 原语与应用层之间。它提供了代理应用通常需要重新实现的会话(session)、运行(run)、轮次(turn)、引导(steering)、后续操作(follow-up)、中断(interruption)和生命周期事件(lifecycle event)层。 核心模型是 会话(sessions)→ 提交(submissions)→ 运行(runs)→ 轮次(turns),具有仅追加的规范历史和类型化生命周期事件。内核小巧且可通过少量接缝(seam)进行扩展:toolkit/tools、contextTransform、loop、permission、toolExecution、elicitation、InputChannel、eventSink/events、AgentSessionHost、LanguageModel 和 Sandbox。扩展组件(Batteries)可插入这些接缝以添加能力,而无需修改核心。 关键能力包括: - 多种传输方式:HTTP、RPC、AG-UI、A2A、MCP(v1 和 v2)、兼容 OpenAI 的 completions 接口,以及连接器(Slack) - 用于编码(基于沙箱的文件/Shell 工具)、Web(搜索、受保护的抓取、渲染页面捕获)、子代理、记忆、技能、压缩、预算(令牌和费用上限)、模型元数据、可观测性、脱敏、数据、钩子、调度、树(可分支会话)、会话(分页目录)、导出(快照和 JSONL)、Blob 存储、插件和预设的扩展组件 - 通过 Effect Workflow 实现持久化执行,支持集群和 Durable Streams - 沙箱抽象,提供可移植和本地(Node)实现 - 测试工具,包括脚本化的 TestLanguageModel、AgentProbe、Web 测试替身(doubles)和一致性测试套件 - 跨 Node、Bun、Deno 和边缘运行时(Cloudflare Workers)的运行时可移植性 该库目前为 0.0.1 版本(预发布)。设计已稳定,但底层 Effect v4 基础仍处于发布候选阶段,因此在正式发布(GA)之前,Effect 的 API 频繁变动是可以预期的。项目建议将 affe-agent、effect 和 @effect/ai-* 提供商的精确版本固定在一起使用。 该仓库还包含参考应用:一个全屏本地编码 TUI、一个常规 CLI 客户端,以及一个每个会话使用一个 Durable Object 的 Cloudflare Worker 部署。