6 releases
new 0.5.3 | Dec 12, 2024 |
---|---|
0.5.2 |
|
0.1.0 |
|
0.0.10 |
|
#89 in Command line utilities
298 downloads per month
290KB
7K
SLoC
devai - Command Agent File Runner
-
Website: https://devai.run
-
What's new:
- 2024-12-08 (v0.5.1) - Added support for xAI
Install
For now, the simplest way to install is with cargo install
.
- Install Rust: https://www.rust-lang.org/tools/install
- Run
cargo install devai
Usage
# Init (optional; will be executed on each run as well)
devai init
# Will proofread and update the direct .md file from the current directory
devai run proof-read -f "./*.md"
# Can use multiple globs or direct files -f "./*.md" -f "./doc/**/*.md"
The main devai concept is to minimize the friction of creating and running an agent while providing maximum control over how we want those agents to run and maximizing iteration speed to mature them quickly.
IMPORTANT 1: Make sure everything is committed before usage (at least while you are learning about devai).
IMPORTANT 2: Make sure to have your OPENAI_API_KEY
, ANTHROPIC_API_KEY
, or XAI_API_KEY
, or the key of your model provider (specified in the .devai/config.toml
file). more info on api keys
How it works
- One Agent == One Markdown
- An
.devai
Agent file is just a Markdown File with some sections for each stage of the agent processing. - See below for all the possible stages.
- An
devai run proof-read -f "./*.md"
will run the installed Command Agent file.devai/default/proof-read.devai
on all source files matching./src/*.md
(Here is the source file for the default proof-read.devai)- Each matching file will become an
input
of type FileMeta for the Lua and Handlebars parts of the agent file.
- Each matching file will become an
- devai agents are simple
.devai
files that can be placed anywhere on disk.- e.g.,
devai run ./my-path/to/my-agent.devai ...
- e.g.,
- Multi AI Provider / Models - devai uses the genai and therefore supports OpenAI, Anthropic, Gemini, Groq, Ollama, Cohere, and more to come.
- Lua is used for all scripting (thanks to the great mlua crate).
- Handlebars is used for all prompt templating (thanks to the great Rust native handlebars crate).
Multi Stage
A single devai file may comprise any of the following stages.
Stage | Language | Description |
---|---|---|
# Before All |
Lua | Reshape/generate inputs and add command global data to scope (the "map" of the map/reduce capability). |
# Data |
Lua | Gather additional data per input and return it for the next stages. |
# System |
Handlebars | Customize the prompt with the data and before_all data. |
# Instruction |
Handlebars | Customize the prompt with the data and before_all data. |
# Assistant |
Handlebars | Optional for special customizations, such as the "Jedi Mind Trick." |
# Output |
Lua | Processes the ai_response from the LLM. Otherwise, ai_response.content will be output to the terminal. |
# After All |
Lua | Called with inputs and outputs for post-processing after all inputs are completed. |
# Before All
/# After All
can be considered as the map/reduce of the agent, and these will be run before and after the input processing.
devai doc
See the devai doc at _init/doc/README.md (With Lua modules doc)
You can also run the ask-devai
agent.
# IMPORTANT - Make sure you have the `OPENAI_API_KEY` or the key of your model in your environment
devai run ask-devai
# and then open the `.devai/tmp/ask-devai.md`
Thanks
TOP COLLABORATOR Big thanks to Stephane Philipakis, a top devai collaborator contributing to the next-generation methodology for production coding with GenAI.
Future Plan
- More Lua functions
- Agent module
my-module
may runmy-module/main.devai
, and runningmy-module/some-other
will runmy-module/some-other.devai
- Support Lua
Require
- Full TUI/Ratatui
- Split runtime to agentic
Dependencies
~21–36MB
~577K SLoC