← Go back

agentic-cli

Agnostic conversational agent framework connecting LLMs with user-defined tools via function calling.

I started building agentic-cli because I wanted to created a AI agent framework that could be very customizable. It started with a BaseLLMProvider, a class that defines the interface for interacting with LLMs so that any LLM could be used with the framework.

It also features a BaseTool, a class that defines the interface for interacting with tools so that any tool could be implemented and used with the framework.

I also added streaming and MCP support, which falls under the BaseTool interface, so the agent does not need to be aware of the underlying implementation.

There are also other features, such as subagents, so the agent can delegate complex tasks, compaction, which offers several modes, memory, so the agent can recall previous relevant interactions, and a server mode that allows the agent to be used from an API.

All of these features can be customized from a JSON config file, allowing users to define their own customizations without modifying the code. This project can be used as a starting point for building custom AI agents with a wide range of capabilities.

The project uses the following dependencies:

  • httpx: allows async calls to LLMs and tools
  • ty: very fast type checking
  • fastapi: web framework for the server mode
  • uv: dependency management
  • ruff: very fast linting
  • pytest: testing framework
  • pydantic: data validation
  • rich: CLI output formatting
  • mcp: MCP protocol support
  • prompt_toolkit: CLI input handling

jcarlosvelasco

Software that feels like ✨

© 2025 jcarlosvelasco. All rights reserved