agentix

Agentic, but intuitive

https://github.com/valentin-dion/agentix

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary
Last synced: 9 months ago · JSON representation ·

Repository

Agentic, but intuitive

Basic Info
  • Host: GitHub
  • Owner: valentin-dion
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 2 MB
Statistics
  • Stars: 12
  • Watchers: 0
  • Forks: 3
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

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) ? : v@lentin.fr

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: ```python from agentix import tool

@tool def say_hello(name:str) -> str: return f'hello {name}' ```

Then anywhere else, you can just use it : ```python from agentix import Tool

print(Tool'say_hello') ```

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: ```python from agentix import Agent

Agent('Bob','prompthisto|bobrouter') ```

needs to be executed, not exported. If the code is ran, the agent will exist and be executable anywhere ```python from agentix import Agent

user_input = input('your input to Bob') print(Agent'Bob')

```

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

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

create new agent

bash 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

bash 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

Owner

  • Name: valentin-dion
  • Login: valentin-dion
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software in your work, please cite it using these metadata."
title: "Agentix: Framework for Building Cognitive Agents"
version: 0.1.4
date-released: 2024-03-01
authors:
  - family-names: "DION"
    given-names: "Valentin"
    email: "v@lentin.fr"
license: "MIT"
repository-code: "https://github.com/valentin-dion/Agentix"

GitHub Events

Total
  • Watch event: 8
  • Fork event: 3
Last Year
  • Watch event: 8
  • Fork event: 3

Dependencies

Dockerfile docker
  • python 3.8-slim build
docker-compose.yml docker
front/package.json npm
  • autoprefixer ^10.4.19 development
  • postcss ^8.4.38 development
  • tailwindcss ^3.4.3 development
  • nuxt ^3.11.2
  • vue ^3.4.21
  • vue-router ^4.3.0
.github/workflows/publish-to-pypi.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish master composite
requirements.txt pypi
  • fire *
  • rich *
  • toolz *
setup.py pypi