Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
ABI-Core 1.11.5 documentation
ABI-Core 1.11.5 documentation

1. Fundamentals

  • Installation
  • What is ABI-Core?
  • Basic Concepts
  • Your First Project

2. Single Agents

  • Your First Agent
  • Simple Chatbot
  • Agents with Tools
  • Agents with Memory
  • Testing Agents

3. Multi-Agent Basics

  • Why Multiple Agents?
  • Agent Cards
  • Agent Communication (A2A)
  • Your First Multi-Agent System

4. Semantic Layer

  • What is the Semantic Layer?
  • Agent Discovery
  • Semantic Search
  • Extending the Semantic Layer
  • MCPToolkit

5. Advanced Orchestration

  • Planner & Orchestrator
  • Multi-Agent Workflows
  • Dependency Management
  • Result Synthesis

6. RAG & Knowledge

  • What is RAG?
  • Vector Databases
  • Embeddings & Search
  • Agents with RAG

7. Security & Policies

  • Guardian Service
  • OPA Policies
  • Policy Development
  • User Validation
  • Audit & Compliance
  • A2A Validation

8. Production

  • Model Serving
  • Monitoring & Logs
  • Troubleshooting
  • Deployment
  • Artifact Store (MinIO)

9. Reference

  • CLI Reference
  • API Reference
  • Environment Variables
  • Architecture

Additional Resources

  • Migrating to a2a-sdk 1.0
  • Changelog
  • Changelog
  • FAQ
  • Roadmap
Back to top
View this page

Embeddings & Search¶

Embeddings turn text into numbers. Similar text → similar numbers → found by search.

How embeddings work¶

"analyze revenue data"  → [0.82, 0.15, 0.91, ...]
"examine sales figures" → [0.79, 0.18, 0.88, ...]  ← similar!
"cook a pizza"          → [0.12, 0.95, 0.03, ...]  ← very different

When you search for “analyze revenue”, the database finds documents with similar vectors — even if they use different words.

The embedding model¶

ABI-Core uses nomic-embed-text:v1.5 running on Ollama. It’s pulled automatically during setup:

docker exec <ollama-container> ollama pull nomic-embed-text:v1.5

The Semantic Layer’s embedding mesh uses it to:

  • Embed agent card descriptions at startup

  • Embed tool card descriptions at startup

  • Embed search queries at runtime

Search in practice¶

When you call tool_find_agent("analyze revenue"):

  1. Your query is embedded → [0.82, 0.15, 0.91, ...]

  2. Weaviate compares against all stored agent card embeddings

  3. Returns the closest match (cosine similarity)

  4. That’s your agent

Same for tool_search_tools("store documents") — searches tool card embeddings.

Make your cards searchable¶

The more descriptive your text, the better the search:

{
  "description": "Analyzes financial data including quarterly revenue, profit margins, and growth trends",
  "skills": [
    {
      "description": "Performs deep analysis of revenue patterns across time periods",
      "tags": ["finance", "revenue", "analysis", "quarterly", "trends"]
    }
  ]
}

The embedding is generated from the combined text of description + skills + tags.

Next step¶

👉 Agents with RAG

Next
Agents with RAG
Previous
Vector Databases
Copyright © 2025, José Luis Martínez
Made with Sphinx and @pradyunsg's Furo
On this page
  • Embeddings & Search
    • How embeddings work
    • The embedding model
    • Search in practice
    • Make your cards searchable
    • Next step