Hi, I'm Valentin, I tinker with agentic.
I want to automate myself as a senior software engineer.
This repo is about my Framework Agentix and what I'll build with it.
My current full time job is to work on this repo until I'm hired as an agentic engineer/researcher.
Want to hire me (or just chat) ? : [email protected]
Cite me (for some reason): CITATION.cff
Low boilerplate functional agentic.
For an implementation walktrhough go here then here
My approach has some inspiration from Nuxt. If you don't know Nuxt, it's low code, It's an extreme example of "hiding the complexity". You can implement anything and the learning curve is sharp.
What motivates me coding my own framework ?
-
I want to hide myself as much complexity as possible when I implement agents.
-
I want to be able to write arbitrary agentic pipelines with the minimum amount of code.
-
I want an intuitive formalism to implement agentic pipelines with clear control flow.
- File (and by extension, lib) structures are for humans. I want my framework LLM friendly.
- The approach is not made for speed. We want the smartest agents, not the most performant
- Everything runs sequentially
- If your project involves RAG more than Agentic, DSPy might be a better fit.
- As of right now, Agentix only handles text (though embeddings and other modalities will be considered in a future version)
- If you're looking for a mature project for prod environments, we're not there yet.
I use python magics to auto-import my agents, middlewares, tools. If, somewhere within rightly name directories, a .py file exists and contains:
from agentix import tool
@tool
def say_hello(name:str) -> str:
return f'hello {name}'Then anywhere else, you can just use it :
from agentix import Tool
print(Tool['say_hello']('world'))Time to get our hands dirty
Agents are stacks of middlewares
In agentix, agent initialization:
from agentix import Agent
Agent('Bob','prompt_histo|bob_router')needs to be executed, not exported. If the code is ran, the agent will exist and be executable anywhere
from agentix import Agent
user_input = input('your input to Bob')
print(Agent['Bob'](user_input))To be imported, a .py file only has to exist somewhere under the directories: agents, tools or middlewares
πMyProject
βπagents
β βπfooBar.py
βπtools
β βπany
β ββπdepth
β βββπBarFOO.py
βπmiddlewares
β βπBazBah.py
git clone https://github.com/valentin-dion/Agentix.git
cd Agentix
pip install -e .agentix create MyAgentit will create all the boilerplate you need to create an agent.
AKA this file structure:
π agents
π MyAgent
β π agents
β β π MyAgent.py
β π middlewares
β β π MyAgent_loop.py
β π prompts
β β π MyAgent.conv
β π tests
β π tools
agentix run MyAgentTODO
an agent that handles the linux shell for you. (or a linux console you can talk to in natural language)
ShellGPT Walkthrough (Easy)
An conversationnal agent with Long Term Memory (Intermediate)