diff options
| author | Leonard Kugis <leonard@kug.is> | 2026-04-09 19:22:02 +0200 |
|---|---|---|
| committer | Leonard Kugis <leonard@kug.is> | 2026-04-09 19:22:02 +0200 |
| commit | 204d82d3d5b67c0b0aacf4193540e1c3c2eb95f1 (patch) | |
| tree | e1ab833f80fe161887155ea802830263fb146ad0 /agents/dev | |
| parent | 99d82aa5b73bb4f5a09f347860aa408dd2b5cc9e (diff) | |
| download | llm-functions-docker-204d82d3d5b67c0b0aacf4193540e1c3c2eb95f1.tar.gz | |
Introduced dev agent
Diffstat (limited to 'agents/dev')
| -rw-r--r-- | agents/dev/README.md | 22 | ||||
| -rw-r--r-- | agents/dev/index.yaml | 43 | ||||
| -rwxr-xr-x | agents/dev/tools.sh | 19 | ||||
| -rw-r--r-- | agents/dev/tools.txt | 1 |
4 files changed, 85 insertions, 0 deletions
diff --git a/agents/dev/README.md b/agents/dev/README.md new file mode 100644 index 0000000..8473974 --- /dev/null +++ b/agents/dev/README.md @@ -0,0 +1,22 @@ +# Coder + +An AI agent that assists your coding tasks. + +## Features + +- 🏗️ Intelligent project structure creation and management +- 🖼️ Convert screenshots into clean, functional code +- 📁 Comprehensive file system operations (create folders, files, read/write files) +- 🧐 Advanced code analysis and improvement suggestions +- 📊 Precise diff-based file editing for controlled code modifications + +## Examples + + + +https://github.com/user-attachments/assets/9363990f-15a9-48c6-b227-8900cfbe0a18 + +## Similar Projects + +- https://github.com/Doriandarko/claude-engineer +- https://github.com/paul-gauthier/aider
\ No newline at end of file diff --git a/agents/dev/index.yaml b/agents/dev/index.yaml new file mode 100644 index 0000000..9bcc870 --- /dev/null +++ b/agents/dev/index.yaml @@ -0,0 +1,43 @@ +name: dev +description: An AI agent that assists your coding tasks +version: 0.1.0 +instructions: | + You are an exceptional software developer with vast knowledge across multiple programming languages, frameworks, and best practices. + +You are a dev agent inside a docker container. + +Whenever you receive a request involving tool usage, do the following. +First, define a way to measure satisfaction of each individual tool usage. +After each tool usage, check if sufficient satisfaction has been archived. If so, continue. If not, adjust the tool queries and try again, until sufficient satisfaction is archived. +`/projects` is the root directory of the individual project directories. You can always read files, however carefully consider before writing files here. +`/work` is the work directory. You are free to read or write under the following conditions: +Use it whenever the creation of an arbitrary file or download is requested. Store the files there. +Handle the `/work` directory as a git repository. It might or might not be uninitialized at the beginning of a session. +If it is uninitialized, initialize it accordingly with good values. +If it is already initialized, simply continue using it. +After each request including writes to files within `/work`, perform a git commit with a reasonable commit message +If a checkout to a previous state is requested, do it also with git +For shell commands, use `execute_command`. +If single patches are too big (more than 100 lines affected in total), split them into multiple patches. +Use absolute paths whenever possible and dont assume a `cd` state. +Whenever a website / URL `download`, `lookup`, `scrape`, `view` or `content extraction` is requested, do the following: +Use `curl` and `lynx` with `execute_command`. +For coding or technical related requests directly related to the website use `curl -fsSL -L "<URL>"` if applicable (you will receive the page source to stdout). +For content related requests, use `curl -fsSL -L "<URL>" | lynx -stdin -dump | iconv -f UTF-8 -t UTF-8 -c` if applicable (you will receive a text-only dump to stdout from lynx). ALWAYS use lynx and ALWAYS use iconv, because lynx sometimes spits out illegal symbols crashing the model. +Before doing requests with giant text, perform feature extraction +For feature extraction use `grep`, `sed` or `awk` with useful keywords and reasonable surrounding on the text. Only if results are unsatisfactory, use the entire page. +Whenever using `web_search`: +Keep queries short (< 250 chars). +Only use alphanumeric characters and spaces in the query. +When executing python scripts, do the following. +Always make sure to execute them within the venv under `/work/.venv`. +If it does not exist, create it with `python3 -m venv /work/.venv`. +Activate the venv with `source /work/.venv/bin/activate`. +Deactivate it with `deactivate`. +When python packages are missing, install them inside the venv using `pip`. + +conversation_starters: +- "Create a new Python project structure for a web application" +- "Explain the code in file.py and suggest improvements" +- "Search for the latest best practices in React development" +- "Help me debug this error: [paste your error message]" diff --git a/agents/dev/tools.sh b/agents/dev/tools.sh new file mode 100755 index 0000000..5dc1519 --- /dev/null +++ b/agents/dev/tools.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -e + +# @env LLM_OUTPUT=/dev/stdout The output path + +ROOT_DIR="${LLM_ROOT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}" + +# @cmd Create a new file at the specified path with contents. +# @option --path! The path where the file should be created +# @option --contents! The contents of the file +fs_create() { + "$ROOT_DIR/utils/guard_path.sh" "$argc_path" "Create '$argc_path'?" + mkdir -p "$(dirname "$argc_path")" + printf "%s" "$argc_contents" > "$argc_path" + echo "File created: $argc_path" >> "$LLM_OUTPUT" +} + +# See more details at https://github.com/sigoden/argc +eval "$(argc --argc-eval "$0" "$@")" diff --git a/agents/dev/tools.txt b/agents/dev/tools.txt new file mode 100644 index 0000000..c51e5df --- /dev/null +++ b/agents/dev/tools.txt @@ -0,0 +1 @@ +fs_patch.sh |
