FlowCraft
用 Go 构建可持久运行、支持记忆与多模型后端的 AI 应用。
按维度查看评分与理由
CI 工作流将默认权限限制为 contents:read,文档还描述了工作区能力、沙箱策略、审批以及可插拔资源边界;依赖在矩阵中执行固定版本 govulncheck,SECURITY.md 提供私密报告和修复流程,因此依赖安全证据充分。扣分在于审批机制仅由指南索引和功能声明支持,未提供其实现;凭据说明位于未提供的示例文档中,当前材料没有展示密钥存储、脱敏或保留策略。外部模型、工具、文件系统和网络交互的架构可辨识,但逐操作影响与同意点不完整。检查点支持暂停/恢复,但存储由宿主提供,不能证明所有副作用可回滚。MIT 版权和仓库归属清楚,但发布者身份未获企业注册验证。
README 中的模块边界、构建命令、发布流程与 CI 矩阵、竞态测试、跨平台及沙箱集成作业相互一致,因而自洽性得满分。提供多个模型适配器及模块化后端,但第三方服务可用性、降级或重试策略未见证据,且 Go 1.26+ 与多个外部工具形成部署前提。工作流会输出明确失败原因,不过没有提供运行时错误类型、用户可操作诊断或失败消息实例,因此相应扣分。
材料明确覆盖库嵌入、本地 TUI、脚本测试、模拟、部署运行时、记忆和多家推理提供商,并提供中英文示例入口。能力边界写得具体,包括 Realtime 仅预留、检查点持久化由宿主提供、内存实现由应用注册以及安全策略与状态分离,因此边界项得满分。场景测试展示了 /start、自启动、拒绝范围漂移和非致死收束等触发意图,但未提供实际断言或通用触发路由实现,触发精度只评为充分而非彻底。Linux bwrap、macOS seatbelt 声明以及 Windows 专门构建和集成测试体现了较强环境适配。
README 具有清楚的模块图、架构图、指南索引、快速开始和源码构建说明;MIT 正文完整。项目明确披露 pre-1.0 状态、Realtime 预留、宿主持久化责任和旧小版本不回补等限制,并以 SemVer、不可变 changeset、CHANGELOG 聚合和原子标签流程管理版本,因此这些项目证据充分。扣分在于 pre-1.0 允许小版本破坏性变更,命名稳定性尚非成熟保证;示例丰富但没有实际 FAQ 内容;维护渠道、响应时限和自动化流程清楚,但仅有组织名及安全邮箱,未明确具体维护者或治理结构。
可嵌入 API、部署 YAML、流式会话、可恢复执行、可插拔记忆和多提供商适配形成可直接采用的产出,且相较自行组合这些基础设施具有明显增量价值。扣分在于所给材料没有真实输出样例、基准、资源消耗、延迟、费用控制或规模数据;因此可用性与成本收益只能评为普通使用层面的充分,而不能依据“production-grade”描述给满分。
多数主张指向具体包、指南、示例、CI 作业和发布工具,且 README、SECURITY、许可证、工作流与场景文件能交叉印证模块、测试、安全和发布结构,交叉佐证较强。扣分在于未提供被引用的指南、实现代码、go.mod、CHANGELOG 或测试断言,无法在当前材料中逐项追踪所有运行时与安全声明;“production-grade”等概括也未与 pre-1.0 状态和量化证据严格分开。
- 该评估仅基于所给静态片段;未执行构建、测试、漏洞扫描或示例,也未检查被引用的实现和指南。
- 项目明确处于 pre-1.0,允许小版本包含破坏性变更;采用前应固定每个 Go 模块版本并审查协调升级要求。
- 在接入真实凭据、长期记忆或工具执行前,应核验密钥存储与脱敏、数据保留、网络默认策略、审批覆盖范围以及外部副作用的幂等或补偿机制。
- 检查点只证明可恢复执行的合同,且持久化由宿主提供;不要将其视为模型调用、工具操作或文件变更的完整事务回滚。
- 发布工作流拥有 actions、contents 和 pull-requests 写权限;虽然限定于发布作业,仍应核验分支保护、环境审批及令牌约束。
这个 Agent 能做什么,适合哪些场景?
FlowCraft 是一个模块化 Go 工作区,可用于构建和评估不绑定单一模型供应商或执行架构的 AI 应用。其 core 模块提供代理执行、声明式图、工具、消息、推理、记忆契约、事件总线、遥测、沙箱、部署、运行时、会话和委派接口。OpenAI、Anthropic、ByteDance 与 MiniMax 驱动位于独立的 driver 模块中,SQLite 检查点实现则位于 backends/checkpoint。应用既可以直接嵌入这些 Go 包,也可以通过部署文档组装运行时,并以可中断、流式会话处理请求。仓库还包含可运行的 examples/forge 本地工作区,提供交互式 TUI、脚本化测试以及 raid × persona 模拟。
应用先由 core/deploy 解析部署文档,再由运行时构建器组装共享资源、命名代理、执行引擎和生命周期钩子。调用方通过 core/runtime/session 打开带有 AgentID 与 ContextID 的会话,使用 agent.Request 提交 message.Message,并通过 SinkSpec 接收流式事件和最终结果。core/graph 可把声明式 DAG 编译成 agent.Engine;core/agent 提供 Engine、Host、Board、Run、Interrupt 和 Checkpoint 等执行原语。core/memory 在每轮执行中通过 memory.context 与 memory.turn 钩子调取上下文、记录轮次或文档,并把具体实现分派给按 impl 名称注册的应用组件。core/inference 统一处理 Generate、Embed 和 Transcription,并将请求路由到 OpenAI、Anthropic、ByteDance、MiniMax 或兼容相应协议的端点;工具系统还提供 Registry、Catalog、Executor、中间件链和 MCP 桥接。
- Go 服务团队需要把带流式响应、会话管理和可中断执行的 AI 助手嵌入现有后端。
- 需要在 OpenAI、Anthropic、ByteDance、MiniMax 或兼容端点之间配置推理后端,同时避免业务代码直接依赖某一家供应商的团队。
- 需要通过 CheckpointStore 保存执行状态,并在进程重启后暂停或恢复代理任务的平台开发者。
- 需要把上下文读取、对话轮次写入和文档写入接入自有长期记忆实现的应用团队。
- 希望用声明式 DAG、并行分支和自定义节点构建代理工作流的 Go 开发者。
- 需要在本地工作区通过 TUI、脚本化测试和 raid × persona 模拟评估场景与角色行为的开发或测试团队。
这个 Agent 有哪些优点和局限?
- 核心执行契约与供应商驱动分层,OpenAI、Anthropic、ByteDance 和 MiniMax 适配器不会反向成为 core 的依赖。
- 同时覆盖流式事件、检查点、中断与恢复,并使用 context.Context 统一取消和等待语义。
- 记忆采用 ContextProvider、TurnSink、DocumentSink 等显式契约,便于应用注册自己的实现。
- 同一推理运行时覆盖生成、嵌入和转录,并支持指向兼容 OpenAI 或 Anthropic 协议的不同端点。
- 既能作为 Go 库嵌入,也提供 forge 本地工作区和真实部署组装层的离线配置校验器。
- core 仍处于 1.0 之前;按照文档约定,模块在达到 v1.0.0 前可能通过次版本发布破坏性变更。
- 长期记忆的具体实现需要由应用注册;core 只提供契约、渲染器和生命周期粘合层。
- 检查点持久化依赖宿主提供 CheckpointStore,不能仅靠核心模块获得完整的持久存储。
- Realtime 推理能力目前仅为预留;已明确支持的运行模式是 Generate、Embed 和 Transcription。
- 仓库采用多个独立版本化的 Go 模块,跨 core、driver 与 backend 的升级需要遵守协调依赖规则。
如何安装或部署这个 Agent?
需要 Go 1.26 或更高版本。获取源码并检查可用构建目标:
git clone https://github.com/GizClaw/flowcraft
cd flowcraft
make help运行仓库的完整检查:
make ciFlowCraft 由多个独立版本化的 Go 模块组成;嵌入式应用只需采用 core,并按所需供应商或平台加入 driver/*、backends/*。调用远程推理端点时,还需为所选供应商配置凭据;具体凭据名称未在所给材料中列出。
如何使用这个 Agent?
最快的首次运行路径是 forge 示例:
cd examples/forge
go run . help
go run . workspace create --config werewolf --workspace ./workspace
go run . test -test werewolf/opening_setup嵌入 Go 服务时,用 deploy.Parse 解析部署 YAML,由 runtimeBuilder.Build 构建应用,然后通过 app.Sessions().Open 打开会话。调用 lease.Session().Start,传入包含 message.NewTextMessage(message.RoleUser, "hello") 的 agent.Request 和流式 SinkSpec,最后调用 turn.Wait(ctx) 等待结果。部署文档文件名可以自定,惯例名称是 deploy.yaml。仓库提供的配置校验器可执行:
skills/flowcraft-config/scripts/validate-config.sh deploy.yaml
skills/flowcraft-config/scripts/validate-config.sh --type graph graphs/assistant.json这个 Agent 与同类方案有什么区别?
相较于直接围绕单一供应商 API 编写应用,FlowCraft 把 OpenAI、Anthropic、ByteDance 与 MiniMax 接入放在独立驱动中,并以统一推理运行时和 ModelRef 寻址。相较于强制使用图架构的框架,它允许直接使用 core 包;core/graph 只是可选的声明式 DAG 引擎。