feat: complete v0.3.1 agent workflow
This commit is contained in:
@@ -1,19 +1,24 @@
|
||||
# agentu
|
||||
|
||||
agentu is a small local agent written in Go. The current MVP is a terminal chat
|
||||
agentu is a small local coding agent written in Go. It provides a terminal chat
|
||||
UI with OpenAI-compatible providers, streaming responses, session-level
|
||||
model/provider switching, and local tools.
|
||||
model/provider switching, skills, approvals, and local tools.
|
||||
|
||||
## Current MVP
|
||||
## v0.3.1
|
||||
|
||||
- TUI-first chat experience with a light theme by default.
|
||||
- OpenAI-compatible `/v1/chat/completions` provider support.
|
||||
- OpenAI Responses API (`/v1/responses`) provider support.
|
||||
- Multiple providers from `~/.agentu/config.yaml`.
|
||||
- Session-only provider, model, and thinking-level switching.
|
||||
- Read-only project tools enabled by default.
|
||||
- Interactive approval for model-requested file writes and shell commands.
|
||||
- Atomic file writes, per-file rollback snapshots, and multi-file patches.
|
||||
- Project outlines with Go, TypeScript/JavaScript, and Rust symbols.
|
||||
- Global Codex-style skills loaded from `~/.agentu/skills`.
|
||||
- Persistent session index and in-memory task tracking.
|
||||
- Built-in web search and URL fetching.
|
||||
- `--yolo` mode for file writes and shell execution.
|
||||
- `--yolo` mode for automatic file writes and shell execution.
|
||||
- Temporary `/btw` side questions that can run while the main task continues.
|
||||
|
||||
## Quick Start
|
||||
|
||||
@@ -30,7 +35,9 @@ Use dark mode when your terminal is dark:
|
||||
go run . --theme dark
|
||||
```
|
||||
|
||||
Use `--yolo` only when you want agentu to write files or run shell commands:
|
||||
By default, the TUI asks for approval before every model-requested file change
|
||||
or shell command. Use `--yolo` only when those operations should run without
|
||||
confirmation:
|
||||
|
||||
```sh
|
||||
go run . --yolo
|
||||
@@ -114,7 +121,7 @@ go run . [flags]
|
||||
- `--config <path>` loads a YAML config file. Default: `~/.agentu/config.yaml`.
|
||||
- `--theme light|dark` selects the TUI theme. Default: `light`.
|
||||
- `--plain` uses the simple line-based REPL instead of the TUI.
|
||||
- `--yolo` enables automatic file writes and shell execution.
|
||||
- `--yolo` automatically approves model-requested file writes and shell execution.
|
||||
- `--resume <id>` resumes a saved session from `~/.agentu/sessions`.
|
||||
|
||||
## TUI Controls
|
||||
@@ -125,16 +132,23 @@ go run . [flags]
|
||||
- The input starts at one line and grows up to six lines.
|
||||
- `page up` / `page down` scrolls the transcript.
|
||||
- `esc` cancels a running response.
|
||||
- While a task is running, `/btw <question>` asks a concurrent side question.
|
||||
- Entering only `.` means “continue with the current task.”
|
||||
- At a tool approval prompt, `y` approves and `n` or `esc` denies the operation.
|
||||
- Type `/` to show available commands.
|
||||
- In `--yolo` mode, type `! <command>` to run a shell command from the configured working directory.
|
||||
|
||||
Slash commands:
|
||||
|
||||
- `/btw <question>` answers from a snapshot of the current context without adding the question or answer to conversation history. It never exposes tools and can run alongside the main task.
|
||||
- `/clear` resets conversation history.
|
||||
- `/compact` summarizes older conversation history and keeps the newest ~20% of context, with a small recent-message floor.
|
||||
- `/status` shows changed files with `git status --short`.
|
||||
- `/diff [--stat] [path...]` shows the unstaged git diff.
|
||||
- `/test [command...]` runs a project test command; defaults to `go test ./...` for Go modules or `npm test` for Node projects.
|
||||
- `/skills` lists global skills.
|
||||
- `/skills install <path-or-url>` installs a skill and activates it in the current conversation.
|
||||
- `/rollback [id]` restores a file snapshot; without an ID it restores the newest snapshot.
|
||||
- `/model` shows current provider, model, thinking, and switch usage.
|
||||
- `/model provider <name>` switches provider for the current session.
|
||||
- `/model model <name>` or `/model <name>` switches model for the current session.
|
||||
@@ -148,28 +162,37 @@ Slash commands:
|
||||
|
||||
## Local Tools
|
||||
|
||||
Read-only tools are available by default:
|
||||
These tools are always available:
|
||||
|
||||
- `file_read`
|
||||
- `file_list`
|
||||
- `file_search` with optional `context_lines` and `max_results`
|
||||
- `code_symbols` for Go packages, imports, types, functions, and methods
|
||||
- `project_outline` for a gitignore-aware tree with Go, TypeScript/JavaScript, and Rust symbols
|
||||
- `todo` for conversation-local task tracking
|
||||
- `git_status` shows changed files
|
||||
- `git_diff` shows unstaged or staged diff output
|
||||
- `git_log` shows recent commit history
|
||||
|
||||
Web tools are also available in read-only mode:
|
||||
Web tools are also available:
|
||||
|
||||
- `web_search`
|
||||
- `web_fetch`
|
||||
|
||||
`--yolo` additionally enables:
|
||||
In the TUI, these tools require approval by default and run automatically with
|
||||
`--yolo`:
|
||||
|
||||
- `file_write` for creating or replacing whole files
|
||||
- `file_edit` for surgical line-range or pattern edits to existing files
|
||||
- `apply_patch` for atomic-style multi-file V4 patches, including dry runs
|
||||
- `shell_run` for non-interactive shell commands; output streams live into the
|
||||
TUI while the command runs instead of appearing only after completion
|
||||
|
||||
Before a file mutation, agentu stores an in-memory snapshot and includes its
|
||||
`rb_...` ID in the tool result. Use `/rollback` or `/rollback <id>` to restore
|
||||
it. Snapshots last for the lifetime of the process. The plain REPL remains
|
||||
read-only unless `--yolo` is supplied because it has no interactive approval UI.
|
||||
|
||||
Use `--yolo` for prompts that ask agentu to run or inspect local commands, for
|
||||
example:
|
||||
|
||||
@@ -177,7 +200,20 @@ example:
|
||||
请帮我运行 `go test ./...` 并总结结果
|
||||
```
|
||||
|
||||
## Global Skills
|
||||
|
||||
At startup, agentu loads both Codex-style directories containing `SKILL.md`
|
||||
and legacy flat Markdown files from `~/.agentu/skills`. Skill instructions are
|
||||
added to the system prompt. Install a local directory, Markdown file, or direct
|
||||
HTTP(S) Markdown URL from the TUI:
|
||||
|
||||
```text
|
||||
/skills install ./my-skill
|
||||
/skills install https://example.com/SKILL.md
|
||||
```
|
||||
|
||||
Directory installs preserve supporting files such as `references/`; symlinks
|
||||
inside a source directory are rejected.
|
||||
|
||||
## Development
|
||||
|
||||
@@ -200,3 +236,5 @@ Local config and build outputs are intentionally ignored by git.
|
||||
API type.
|
||||
- The config schema is intentionally strict during MVP development. Deprecated
|
||||
fields such as `provider` or `active_provider` are rejected.
|
||||
- Session metadata is indexed in `~/.agentu/sessions/index.json`; complete
|
||||
conversations remain stored as one JSON file per session.
|
||||
|
||||
Reference in New Issue
Block a user