Repository navigation
v0.2.0
Pre-releaseMicrosoft Agent Framework for Go v0.2.0
Embeddings, vector search, and memory for Go agents.
v0.2.0 introduces provider-independent embedding generation and vector storage, making it easier to build retrieval-augmented generation (RAG) and agents that recall relevant conversations across sessions. Start with an in-memory store, or connect to Azure AI Search or Azure Cosmos DB using the same core vector-data contracts.
Embeddings with consistent Go APIs
The new embedding package provides:
- Typed generation contracts with ordered batch results, numeric and binary vector representations, JSON serialization, model metadata, and token usage.
- Convenience helpers for generating a single embedding, retrieving its vector, and pairing batch inputs with their generated embeddings.
- Request-level configuration for model selection, vector dimensions, and provider-specific options.
- Built-in OpenAI and Microsoft Foundry generators that produce float32 embeddings.
- Opt-in OpenTelemetry instrumentation for embedding spans, operation duration, and input-token metrics. Raw inputs and vectors are never captured by the wrapper.
See OpenAI embeddings, Foundry embeddings, and embedding telemetry. Added in #1292.
Vector stores: local and Azure-backed
The new vectordata package introduces shared contracts for typed and dynamic collections, record schemas, CRUD operations, batch helpers, portable filters, and vector search. Hybrid keyword/vector search is available through an optional connector capability.
| Connector | Highlights |
|---|---|
| In-memory | In-process storage for testing and prototyping; exact vector search using cosine, dot-product, or Euclidean metrics; batch embedding generation; JSON snapshot export and import. |
| Azure AI Search | Vector and full-text/vector hybrid search, HNSW or flat indexes, and Microsoft Entra ID or API-key authentication. |
| Azure Cosmos DB for NoSQL | Vector and full-text/vector hybrid search, DiskANN/Flat/QuantizedFlat indexes, and custom or hierarchical partition keys. |
Added in #1293, #1297, and #1304.
Retrieval and vector-backed conversation memory
- Text-search context provider: Retrieve knowledge before each agent run, or expose an on-demand search tool. Supports source names and links, citation instructions, custom result formatting, and optional recent-message context for automatic queries.
- Chat-history memory provider: Store conversations in a vector store and retrieve related messages automatically or through an on-demand tool. Scope storage and retrieval by application, agent, user, and session. Persistence depends on the configured store.
- Memory examples: Recall user preferences across independent sessions, or keep a bounded recent history while retrieving older messages from vector-store overflow.
Examples to get started
- RAG walkthroughs: in-memory vector search, Qdrant-backed retrieval, a custom text-search source, Foundry service-side file search, and Neo4j graph retrieval.
- Azure AI Search and Azure Cosmos DB: runnable examples of the new Azure connectors.
Qdrant and Neo4j are demonstrated as sample integrations, not built-in vectordata connectors.
Reusable agent harness
The new agent harness assembles common agent capabilities through harness.AgentConfig. Pass the resulting configuration to an existing provider constructor; the harness reuses the normal agent lifecycle and tool-execution loop.
- Composed defaults: Session-backed Todo tools, plan/execute modes, file memory, skill discovery, tool approvals, history, message injection, and hosted web search where supported.
- Persistent, session-isolated file memory: Each session receives its own working folder. Memory survives provider cleanup and is excluded from default skill discovery and resource access.
- Configuration and overrides: Disable individual components or customize their settings while retaining caller-supplied tools, middleware, history, and explicit history-conflict settings. History persistence is enabled for each model call.
- Agent, tool, and model tracing: OpenTelemetry instrumentation covers supported model adapters, including model identifiers, usage, duration, and errors, without capturing prompt contents or tool arguments/results.
Model-call tracing is now enabled by default when the OpenTelemetry middleware is installed, including for ordinary agents outside the harness. Set DisableModelTracing to retain agent/tool-only tracing. Applications remain responsible for configuring telemetry providers and exporters.
See the composite harness example. Added in #1288, #1290, and #1302.
Install or upgrade
After the v0.2.0 tag is published:
go get github.com/microsoft/agent-framework-go@v0.2.0Requires Go 1.26 or later. Microsoft Agent Framework for Go remains in public preview, and APIs may continue to evolve.