Skip to content

Jogan/Agentix

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

About

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.

You can hire me !

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

What I'm currently working on

Coing a SWE agent

Agentix

Low boilerplate functional agentic.


TL;WR

For an implementation walktrhough go here then here


Motivations

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.

Foreshadowing a future version

  • File (and by extension, lib) structures are for humans. I want my framework LLM friendly.

Limitations of Agentix

  • 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.

Python Magics and other smelly code

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'))

Theory

Agentic paradigms

Grounding is all you need

Agentix's assumptions

Agents are functions

Agent are functions


Agents are stacks of middlewares

Time to get our hands dirty

Agents are stacks of middlewares

Agentix tools

Magic import

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


Install

git clone https://github.com/valentin-dion/Agentix.git
cd Agentix
pip install -e .

create new agent

agentix create MyAgent

it 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

run agent

agentix run MyAgent

serve agent with gradio

TODO

Create your first agents

ShellGPT

an agent that handles the linux shell for you. (or a linux console you can talk to in natural language)

ShellGPT Walkthrough (Easy)

LTM (WIP)

An conversationnal agent with Long Term Memory (Intermediate)

Agentic Debugger (TODO)

Frontend component factory (TODO)

Agent that codes its own tools (TODO)

Components factory

Debug

Serve

About

Agentic, but intuitive

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 90.5%
  • Vue 5.5%
  • JavaScript 2.6%
  • Dockerfile 0.7%
  • TypeScript 0.4%
  • CSS 0.2%
  • HTML 0.1%