-
Awesome! I essentially started with the same premise when coding "wcgw" [1]. Give a single shell tool to chatgpt (later claude).
Chronology that followed:
1. Some processes take long time: add status checking.
2. Need to kill long running process or interact with tools add option to send control characters; BashInteraction tool.
3. File editing using sed and echo is not reliable, add FileEdit tool.
4. Large output; add truncation based on tokens.
5. But wait I need command output to get truncated at the beginning but file reading `cat $file` to truncate at the end. Add special ReadFile tool.
6. File writing using 'echo "content" >file' needs unncessary quotes escaping leading to degraded quality, add special WriteFile tool.
7. Reading one file at a time is slow, change ReadFile to ReadFiles tool.
8. Directly writing files is not as good as first planning things. Prevent writing using architect mode.
And so on.
[1] https://github.com/rusiaaman/wcgw
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
cline
Autonomous coding agent right in your IDE, capable of creating/editing files, executing commands, using the browser, and more with your permission every step of the way.
-
In RA.Aid (https://github.com/ai-christianson/RA.Aid) we support normal tool calling, but we also have a our own agent backend called Code Is All You Need.
The way it works is we prompt the LLM to generate code to call the tools directly. We then parse the AST to validate it and restrict it to a very small/safe subset (whitelisted function calls.)
HF smolagents does something similar and there are a few papers out there validating the approach.
-
pyautoaidev
Console based python script to repeatedly call an LLM to develop, debug, and test console based python scripts to achieve a given project description.
Okay, finally got home and finished enough errands for now, here you go:
https://github.com/aricblunk/pyautoaidev
The python script with the short name is the entire script.
The text file with the medium length name is a log of a full run, which was successful on the iteration and I gave it no additional feedback.
The python and text files with fdbk and iter are created for each time the LLM makes a new code attempt, the text file is the log of the output of running the matching named python script. Iter is incremented for each time LLM self-retried, Fdbk is incremented each time the human gives additional input when the LLM thought it accomplished all goals.