Skip to content

Recipes

常用集成的可复制起点。完整可运行示例位于 examples/。

OpenAI 兼容模型

适用于 Ollama、vLLM 和托管的 OpenAI 兼容 API。适配器只使用标准库。

adapter := openaicompat.Adapter{
    BaseURL: "http://localhost:11434/v1",
    Model:   "llama3.2",
}

ag, err := agent.New(agent.Options{
    Model:    adapter,
    MaxSteps: 4,
})

该适配器也实现 model.StreamingModel。设置 agent.Options.OnDelta 可接收流式 文本;工具调用增量会聚合到最终响应中。

参见 快速开始 和 OpenAI 兼容适配器。

MCP 工具

使用可选的 MCP 模块,通过 tool.Gateway 暴露 MCP 工具。

client := mcpsdk.NewClient(&mcpsdk.Implementation{Name: "agent", Version: "v0.1.0"}, nil)
session, err := client.Connect(ctx, &mcpsdk.CommandTransport{
    Command: exec.Command("my-mcp-server"),
}, nil)
if err != nil {
    return err
}
defer session.Close()

gateway, err := mcpadapter.NewGateway(ctx, session)
if err != nil {
    return err
}
for _, item := range tool.NewGatewayTools(gateway) {
    registry.Register(item)
}

MCP 认证绑定在客户端会话上。服务器工具变化后调用 gateway.Refresh。

同一模块也暴露 resources 和 prompts:

resources, err := mcpadapter.ListResources(ctx, session)
contents, err := mcpadapter.ReadResource(ctx, session, "embedded:info")
prompts, err := mcpadapter.ListPrompts(ctx, session)
messages, err := mcpadapter.GetPrompt(ctx, session, "greet", map[string]string{
    "name": "Ada",
})

参见 MCP 适配器。

Anthropic Messages

使用原生适配器连接 Anthropic 模型,支持工具调用、usage 和 SSE 流式输出。

adapter := anthropic.Adapter{
    APIKey:    os.Getenv("ANTHROPIC_API_KEY"),
    Model:     "claude-sonnet-4-5",
    MaxTokens: 1024,
}

ag, err := agent.New(agent.Options{
    Model:    adapter,
    MaxSteps: 4,
})

参见 Anthropic 适配器。

OpenTelemetry 事件

使用可选的 OpenTelemetry 模块将生命周期事件转换为 span。

provider := sdktrace.NewTracerProvider(
    sdktrace.WithBatcher(exporter),
)
defer provider.Shutdown(ctx)

ag, err := agent.New(agent.Options{
    Model:  modelAdapter,
    Events: otelsink.New(provider),
})

每个事件会成为 praxo.<event.type> span,并带有会话、运行、时间戳和事件数据 属性。参见 OpenTelemetry Sink。

NOETIVELA

NOETIVELA 是 AxisVela 的推理基础设施。将其受治理 Chat API 包装为 model.Model 适配器。

adapter := noetivelaadapter.Adapter{
    Client: sdk.New("http://localhost:1826"),
    Policy: "legal-confidential-v2",
    ContractFunc: func(model.Request) *sdk.Contract {
        return &sdk.Contract{
            Task:     "status_lookup",
            Modality: []string{"text"},
        }
    },
}

该 SDK 暴露文本内容,不暴露工具调用。需要工具调用时,应使用保留 tool-call 字段的自定义 HTTP 适配器。参见 NOETIVELA SDK 示例。

Mnemovela

Mnemovela 是 Agent Cognition Runtime。其 JSON-RPC 传输可支撑 memory.Store。

transport := jsonrpc.New("http://localhost:8080")
store := mnemovelaadapter.Store{
    Client: mnemovela.New(transport),
    Branch: "main",
}

ag, err := agent.New(agent.Options{
    Model:  modelAdapter,
    Memory: store,
    Recall: true,
})

参见 Mnemovela SDK 示例。

GNOSIVELA

GNOSIVELA grounding 映射到 retriever.Retriever。

adapter := gnosivelaadapter.Retriever{
    Client:    gnosivela.New("http://localhost:8080"),
    Principal: "user:demo",
    Purpose:   "status_lookup",
    Budget:    1200,
}

documents, err := adapter.Retrieve(ctx, "current status", 8)

GNOSIVELA 尚未为该模块路径发布 v3 semver 标签;示例模块固定 master 的 pseudo-version。参见 GNOSIVELA SDK 示例。

Reference Workspace Agent

reference app 组合了 OpenAI 兼容适配器、受限 VFS 工具、策略、记忆、事件和 上下文预算。

GOWORK=off go run ./examples/reference -workspace ./workspace

参见 reference app。