flyto-agent

module
v0.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2026 License: None detected not legal advice

README

Flyto Agent Core

可嵌入的 Go Agent 核心库 -- 领域无关的智能体运行时.Go SDK 直接消费,零外部依赖.

项目统计

指标 数值
Go 源文件 247 个
测试文件 178 个
测试函数 2585 个
源代码行数 ~134,500 行(含测试)
内置工具 14 个
模块路径 flyto-agent

目录结构

core/
├── internal/                 内部实现(消费者不可 import)
│   ├── transport/            通用 SSE 流式 HTTP 客户端(ClientOption 注入)
│   │   └── retry/            重试策略框架
│   ├── wire/                 协议序列化(Anthropic/OpenAI/Gemini 三种格式)
│   ├── apierror/             共享错误类型
│   ├── mcp/                  MCP 协议客户端
│   ├── cache/                TTL 缓存 + prompt hash
│   ├── tokenizer/            Token 估算
│   ├── logger/               结构化日志(脱敏)
│   └── syslib/               系统级库
│       ├── bash/             Bash AST 解析
│       ├── diff/             Myers diff 算法
│       └── git/              Git 操作封装
├── pkg/                      公共包(消费者可 import)
│   ├── flyto/                公共契约(ModelProvider / Event / Request / ModelInfo)
│   ├── engine/               核心引擎(Run loop / 工具分发 / Dream / SubAgent)
│   ├── config/               配置(ModelRegistry / ModelRole)
│   ├── query/                内部消息类型(Message / Content / Usage)
│   ├── context/              Prompt Bundle + 压缩策略
│   ├── hooks/                Hook 系统
│   ├── plugin/               插件系统
│   ├── memory/               记忆系统
│   ├── permission/           权限系统
│   ├── security/             审计 + Secret 扫描
│   ├── evolve/               自进化 -- v0.2+ 9 接口矩阵 (ParameterStore / LogSource /
│   │                          FeedbackChannel / LogReplayer / Generator / Evaluator /
│   │                          Reflector / ParameterEvolver / ShadowRunner), 每接口含
│   │                          文件引用实现 + 单元测试, 零外部依赖
│   ├── websocket/            WebSocket 传输
│   ├── inbox/                进程间通信(UDS)
│   ├── tools/                工具框架 + 内置工具
│   │   └── builtin/
│   └── providers/            Provider 实现
│       ├── anthropic/
│       ├── openai/
│       ├── gemini/
│       ├── minimax/
│       ├── ollama/
│       ├── lmstudio/
│       ├── openrouter/
│       └── shared/
├── examples/                 使用示例
├── docs/                     文档
├── FLYTO.md                  AI Agent 系统指令
└── TODO.md                   待办事项

快速开始

Go SDK 模式(10 行代码)

Provider + Model 必填,引擎不预设供应商和模型.

package main

import (
    "context"
    "fmt"
    "os"

    "git.flytoex.net/yuanwei/git.flytoex.net/yuanwei/flyto-agent/pkg/engine"
    "git.flytoex.net/yuanwei/git.flytoex.net/yuanwei/flyto-agent/pkg/providers/anthropic"
)

func main() {
    agent, err := engine.New(&engine.Config{
        Provider: anthropic.New(anthropic.Config{APIKey: os.Getenv("ANTHROPIC_API_KEY")}),
        Model:    "claude-sonnet-4-6",
        Cwd:      ".",
    })
    if err != nil {
        fmt.Fprintf(os.Stderr, "error: %v\n", err)
        os.Exit(1)
    }
    defer agent.Close()

    for event := range agent.Run(context.Background(), "查看当前目录结构") {
        switch e := event.(type) {
        case *engine.TextDeltaEvent:
            fmt.Print(e.Text)
        case *engine.ToolUseEvent:
            fmt.Printf("\n[tool] %s\n", e.ToolName)
        case *engine.DoneEvent:
            fmt.Printf("\n--- %d turns, $%.4f ---\n", e.TurnCount, e.TotalCostUSD)
        case *engine.ErrorEvent:
            fmt.Fprintf(os.Stderr, "error: %v\n", e.Err)
        }
    }
}

特性

  • 可嵌入的 Agent 引擎 -- Go SDK 直接消费,引擎不知道自己跑在哪里
  • 19 个内置工具 -- Bash, Read, Edit, Write, Glob, Grep, WebFetch, WebSearch, Agent, TaskCreate, TaskList, TaskUpdate, ToolSearch, Gitignore, SendMessage (Agent Teams), AddSharedTask / ListSharedTasks / ClaimSharedTask / CompleteSharedTask (Agent Teams 共享清单)
  • Bash AST 解析器 -- 完整的 Bash 命令 AST 解析(heredoc,引号,命令替换,进程替换,算术展开),替代字符串分割的安全分析
  • 模型角色系统 -- ModelRegistry 管理 Main/Fast/Thinking/Embed 四种角色,业务逻辑不硬编码模型 ID,支持注册第三方模型
  • 7 个 Provider -- Anthropic/OpenAI/Gemini/MiniMax/OpenRouter/Ollama/LMStudio,通过 Provider 接口统一
  • Prompt Caching -- 系统提示和工具描述自动缓存,多轮对话节省 ~78% 输入成本
  • 完整的权限系统 -- 规则匹配 + 风险评估 + 自动学习,4 种权限模式,CompositeHandler 多处理器叠加
  • 防御性编程 -- 三层防御模式(指令 + 参数 + 兜底),每个模型交互点都有降级策略
  • EngineObserver 可观测性 -- 结构化事件/指标/调用链接口,Noop/Stderr/Composite/Buffered 多种实现
  • NormalizePipeline -- 10 步可组合消息规范化管道
  • 自进化能力 -- CreateTool / LearnSkill / Reflect,Agent 运行时自己创建工具和学习技能
  • MCP 协议支持 -- Transport 接口抽象(Stdio/SSE/HTTP),工具名统一 mcp__server__tool 格式
  • 插件系统 -- 发现 + 加载 + 技能注入 + Hook 扩展
  • 记忆系统 -- 跨会话持久化 + RelevanceScorer 接口化
  • Hook 系统 -- 12 种 Hook 类型,覆盖工具调用,会话生命周期,权限等关键节点
  • 三层压缩降级 -- 单次压缩 -> 砍头重试 -> 分块压缩,CompactCircuitBreaker 断路器
  • 流式优先 -- 所有输出通过 Go channel 推送,消费层 for range 即可
  • Agent Teams (L1330) -- peer-to-peer 通讯 + 共享任务清单, send_message 内置工具 / tasklist.Store 接口分层存储 / Anthropic Claude Code tasks.md 双向互操作 / 跨行业中立 (编程/金融/医疗/仓储/法律示例见 examples/agent_teams/)
  • 零外部依赖 -- go.mod 只有标准库,编译产物是单个二进制

文档索引

文档 说明
docs/architecture.md 内部架构,模块依赖,数据流
docs/api-reference.md HTTP API 完整参考 + API 消费形态 (push / pull / callback 三形态速查)
docs/tools.md 14 个内置工具详细文档
docs/configuration.md 多级配置,权限规则,Hook,MCP
docs/evolution.md 自进化系统(CreateTool/LearnSkill/Reflect)
docs/model-roles.md 模型角色系统,定价,Prompt Caching
docs/defensive-programming.md 防御性编程指南(内部文档)
docs/agent_teams.md Agent Teams MVP 设计 (L1330),Anthropic 对照表,跨行业场景
docs/agent_teams_tasklist.md TaskList 业务+存储分层,自定义 Store 接入模板

构建

# 运行测试
cd core && go test ./...

# 运行示例
cd core && go run ./examples/basic.go

许可证

Proprietary

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL