The agents-api
project serves as the foundation of the agent management system, defining the structure and capabilities of the API that manages agents. It includes operations such as creating, updating, listing, and deleting agents, as well as managing documents and tools associated with these agents.
The models
module encapsulates all data interactions with the CozoDB database, providing a structured way to perform CRUD operations and other specific data manipulations across various entities.
The routers
module handles HTTP routing for different parts of the application, directing incoming HTTP requests to the appropriate handler functions.
This module contains components crucial for the operation of the agents-api, including authentication, developer identification, and custom exception handling.
The utils
module offers a collection of utility functions designed to support various aspects of the application, including interactions with the Cozo API client, date and time operations, and custom JSON utilities.
The activities
module facilitates various activities related to agent interactions, such as memory management, generating insights from dialogues, and summarizing relationships.
The clients
module contains client classes and functions for interacting with various external services and APIs, providing a simplified interface for the rest of the application.
This module is responsible for handling background tasks and jobs for the Agents API application, enhancing the application's performance and scalability.
To set up the project for development:
- Clone the repository.
- Install dependencies.
- Run the application.
This guide provides a brief overview for new contributors to get started with the project development.
┌───┬────────────────────┬────────┬─────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼────────────────────┼────────┼─────────┼─────────────┤
│ 0 │ agent_id │ True │ Uuid │ False │
│ 1 │ frequency_penalty │ False │ Float │ True │
│ 2 │ presence_penalty │ False │ Float │ True │
│ 3 │ length_penalty │ False │ Float │ True │
│ 4 │ repetition_penalty │ False │ Float │ True │
│ 5 │ top_p │ False │ Float │ True │
│ 6 │ temperature │ False │ Float │ True │
│ 7 │ min_p │ False │ Float │ True │
│ 8 │ preset │ False │ String? │ True │
└───┴────────────────────┴────────┴─────────┴─────────────┘
┌───┬────────────┬────────┬───────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼────────────┼────────┼───────┼─────────────┤
│ 0 │ agent_id │ True │ Uuid │ False │
│ 1 │ doc_id │ True │ Uuid │ False │
│ 2 │ created_at │ False │ Float │ True │
│ 3 │ metadata │ False │ Json │ True │
└───┴────────────┴────────┴───────┴─────────────┘
┌───┬───────────────────┬────────┬────────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼───────────────────┼────────┼────────────┼─────────────┤
│ 0 │ agent_id │ True │ Uuid │ False │
│ 1 │ tool_id │ True │ Uuid │ False │
│ 2 │ name │ False │ String │ False │
│ 3 │ description │ False │ String │ False │
│ 4 │ parameters │ False │ Json │ False │
│ 5 │ embed_instruction │ False │ String │ True │
│ 6 │ embedding │ False │ <F32;768>? │ True │
│ 7 │ updated_at │ False │ Float │ True │
│ 8 │ created_at │ False │ Float │ True │
└───┴───────────────────┴────────┴────────────┴─────────────┘
┌───┬──────────────┬────────┬──────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼──────────────┼────────┼──────────┼─────────────┤
│ 0 │ developer_id │ True │ Uuid │ False │
│ 1 │ agent_id │ True │ Uuid │ False │
│ 2 │ name │ False │ String │ False │
│ 3 │ about │ False │ String │ False │
│ 4 │ instructions │ False │ [String] │ True │
│ 5 │ model │ False │ String │ True │
│ 6 │ created_at │ False │ Float │ True │
│ 7 │ updated_at │ False │ Float │ True │
│ 8 │ metadata │ False │ Json │ True │
└───┴──────────────┴────────┴──────────┴─────────────┘
┌───┬─────────────┬────────┬─────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼─────────────┼────────┼─────────┼─────────────┤
│ 0 │ session_id │ True │ Uuid │ False │
│ 1 │ entry_id │ True │ Uuid │ True │
│ 2 │ source │ True │ String │ False │
│ 3 │ role │ True │ String │ False │
│ 4 │ name │ True │ String? │ True │
│ 5 │ content │ False │ String │ False │
│ 6 │ token_count │ False │ Int │ False │
│ 7 │ tokenizer │ False │ String │ False │
│ 8 │ created_at │ False │ Float │ True │
│ 9 │ timestamp │ False │ Float │ True │
└───┴─────────────┴────────┴─────────┴─────────────┘
┌───┬───────────────────┬────────┬────────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼───────────────────┼────────┼────────────┼─────────────┤
│ 0 │ doc_id │ True │ Uuid │ False │
│ 1 │ snippet_idx │ True │ Int │ False │
│ 2 │ title │ False │ String │ False │
│ 3 │ snippet │ False │ String │ False │
│ 4 │ embed_instruction │ False │ String │ True │
│ 5 │ embedding │ False │ <F32;768>? │ True │
└───┴───────────────────┴────────┴────────────┴─────────────┘
┌───┬──────────────────┬────────┬────────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼──────────────────┼────────┼────────────┼─────────────┤
│ 0 │ memory_id │ True │ Uuid │ False │
│ 1 │ content │ False │ String │ False │
│ 2 │ last_accessed_at │ False │ Float? │ True │
│ 3 │ timestamp │ False │ Float │ True │
│ 4 │ sentiment │ False │ Int │ True │
│ 5 │ entities │ False │ [Json] │ True │
│ 6 │ created_at │ False │ Float │ True │
│ 7 │ embedding │ False │ <F32;768>? │ True │
└───┴──────────────────┴────────┴────────────┴─────────────┘
┌───┬───────────┬────────┬───────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼───────────┼────────┼───────┼─────────────┤
│ 0 │ agent_id │ True │ Uuid │ False │
│ 1 │ user_id │ True │ Uuid? │ True │
│ 2 │ memory_id │ True │ Uuid │ False │
└───┴───────────┴────────┴───────┴─────────────┘
┌───┬──────────┬────────┬────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼──────────┼────────┼────────┼─────────────┤
│ 0 │ head │ True │ Uuid │ False │
│ 1 │ relation │ True │ String │ False │
│ 2 │ tail │ True │ Uuid │ False │
└───┴──────────┴────────┴────────┴─────────────┘
┌───┬────────────┬────────┬───────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼────────────┼────────┼───────┼─────────────┤
│ 0 │ agent_id │ True │ Uuid │ False │
│ 1 │ user_id │ True │ Uuid? │ True │
│ 2 │ session_id │ True │ Uuid │ False │
└───┴────────────┴────────┴───────┴─────────────┘
┌───┬──────────────┬────────┬──────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼──────────────┼────────┼──────────┼─────────────┤
│ 0 │ developer_id │ True │ Uuid │ False │
│ 1 │ session_id │ True │ Uuid │ False │
│ 2 │ updated_at │ True │ Validity │ True │
│ 3 │ situation │ False │ String │ False │
│ 4 │ summary │ False │ String? │ True │
│ 5 │ created_at │ False │ Float │ True │
│ 6 │ metadata │ False │ Json │ True │
└───┴──────────────┴────────┴──────────┴─────────────┘
┌───┬────────────┬────────┬───────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼────────────┼────────┼───────┼─────────────┤
│ 0 │ user_id │ True │ Uuid │ False │
│ 1 │ doc_id │ True │ Uuid │ False │
│ 2 │ created_at │ False │ Float │ True │
│ 3 │ metadata │ False │ Json │ True │
└───┴────────────┴────────┴───────┴─────────────┘
┌───┬──────────────┬────────┬────────┬─────────────┐
│ │ column │ is_key │ type │ has_default │
├───┼──────────────┼────────┼────────┼─────────────┤
│ 0 │ developer_id │ True │ Uuid │ False │
│ 1 │ user_id │ True │ Uuid │ False │
│ 2 │ name │ False │ String │ False │
│ 3 │ about │ False │ String │ False │
│ 4 │ created_at │ False │ Float │ True │
│ 5 │ updated_at │ False │ Float │ True │
│ 6 │ metadata │ False │ Json │ True │
└───┴──────────────┴────────┴────────┴─────────────┘