Rename G3 -> g3 in docs and comments
Standardize project name to lowercase 'g3' throughout documentation, comments, and configuration files. Environment variables (G3_*) are unchanged as they follow the uppercase convention.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# AGENTS.md - Machine Instructions for G3
|
# AGENTS.md - Machine Instructions for g3
|
||||||
|
|
||||||
**Purpose**: Machine-specific instructions for AI agents working with this codebase.
|
**Purpose**: Machine-specific instructions for AI agents working with this codebase.
|
||||||
**For project overview, architecture, and usage**: See [README.md](README.md)
|
**For project overview, architecture, and usage**: See [README.md](README.md)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ uuid = { version = "1.0", features = ["v4"] }
|
|||||||
name = "g3"
|
name = "g3"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["G3 Team"]
|
authors = ["g3 Team"]
|
||||||
description = "A general purpose AI agent that helps you complete tasks by writing code"
|
description = "A general purpose AI agent that helps you complete tasks by writing code"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
||||||
|
|||||||
12
DESIGN.md
12
DESIGN.md
@@ -1,10 +1,10 @@
|
|||||||
# G3 - AI Coding Agent - Design Document
|
# g3 - AI Coding Agent - Design Document
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
G3 is a **modular, composable AI coding agent** built in Rust that helps you complete tasks by writing and executing code. It provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation, file manipulation, and task automation capabilities.
|
g3 is a **modular, composable AI coding agent** built in Rust that helps you complete tasks by writing and executing code. It provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation, file manipulation, and task automation capabilities.
|
||||||
|
|
||||||
The agent follows a **tool-first philosophy**: instead of just providing advice, G3 actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
The agent follows a **tool-first philosophy**: instead of just providing advice, g3 actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
||||||
|
|
||||||
## Core Principles
|
## Core Principles
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ The agent follows a **tool-first philosophy**: instead of just providing advice,
|
|||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
G3 is organized as a Rust workspace with the following crates:
|
g3 is organized as a Rust workspace with the following crates:
|
||||||
|
|
||||||
```
|
```
|
||||||
g3/
|
g3/
|
||||||
@@ -217,7 +217,7 @@ g3/
|
|||||||
|
|
||||||
### Context Window Management
|
### Context Window Management
|
||||||
|
|
||||||
G3 implements sophisticated context window management:
|
g3 implements sophisticated context window management:
|
||||||
|
|
||||||
- **Automatic Monitoring**: Tracks token usage with percentage-based thresholds
|
- **Automatic Monitoring**: Tracks token usage with percentage-based thresholds
|
||||||
- **Smart Summarization**: Auto-triggers at 80% capacity to prevent context overflow
|
- **Smart Summarization**: Auto-triggers at 80% capacity to prevent context overflow
|
||||||
@@ -389,7 +389,7 @@ g3 --retro --theme dracula
|
|||||||
- **Caching**: Strategic caching of expensive operations
|
- **Caching**: Strategic caching of expensive operations
|
||||||
- **Profiling**: Regular performance profiling and optimization
|
- **Profiling**: Regular performance profiling and optimization
|
||||||
|
|
||||||
This design document reflects the current state of G3 as a mature, production-ready AI coding agent with sophisticated architecture and comprehensive feature set.
|
This design document reflects the current state of g3 as a mature, production-ready AI coding agent with sophisticated architecture and comprehensive feature set.
|
||||||
|
|
||||||
## Current Implementation Status
|
## Current Implementation Status
|
||||||
|
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -1,10 +1,10 @@
|
|||||||
# G3 - AI Coding Agent
|
# g3 - AI Coding Agent
|
||||||
|
|
||||||
G3 is a coding AI agent designed to help you complete tasks by writing code and executing commands. Built in Rust, it provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation and task automation capabilities.
|
g3 is a coding AI agent designed to help you complete tasks by writing code and executing commands. Built in Rust, it provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation and task automation capabilities.
|
||||||
|
|
||||||
## Architecture Overview
|
## Architecture Overview
|
||||||
|
|
||||||
G3 follows a modular architecture organized as a Rust workspace with multiple crates, each responsible for specific functionality:
|
g3 follows a modular architecture organized as a Rust workspace with multiple crates, each responsible for specific functionality:
|
||||||
|
|
||||||
### Core Components
|
### Core Components
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ Command-line interface:
|
|||||||
|
|
||||||
### Error Handling & Resilience
|
### Error Handling & Resilience
|
||||||
|
|
||||||
G3 includes robust error handling with automatic retry logic:
|
g3 includes robust error handling with automatic retry logic:
|
||||||
- **Recoverable Error Detection**: Automatically identifies recoverable errors (rate limits, network issues, server errors, timeouts)
|
- **Recoverable Error Detection**: Automatically identifies recoverable errors (rate limits, network issues, server errors, timeouts)
|
||||||
- **Exponential Backoff with Jitter**: Implements intelligent retry delays to avoid overwhelming services
|
- **Exponential Backoff with Jitter**: Implements intelligent retry delays to avoid overwhelming services
|
||||||
- **Detailed Error Logging**: Captures comprehensive error context including stack traces, request/response data, and session information
|
- **Detailed Error Logging**: Captures comprehensive error context including stack traces, request/response data, and session information
|
||||||
@@ -65,7 +65,7 @@ G3 includes robust error handling with automatic retry logic:
|
|||||||
|
|
||||||
### Tool Call Duplicate Detection
|
### Tool Call Duplicate Detection
|
||||||
|
|
||||||
G3 includes intelligent duplicate detection to prevent the LLM from accidentally calling the same tool twice in a row:
|
g3 includes intelligent duplicate detection to prevent the LLM from accidentally calling the same tool twice in a row:
|
||||||
- **Sequential Duplicate Prevention**: Only immediately sequential identical tool calls are blocked
|
- **Sequential Duplicate Prevention**: Only immediately sequential identical tool calls are blocked
|
||||||
- **Text Separation Allowed**: If there's any text between tool calls, they're not considered duplicates
|
- **Text Separation Allowed**: If there's any text between tool calls, they're not considered duplicates
|
||||||
- **Session-Wide Reuse**: Tools can be called multiple times throughout a session - only back-to-back duplicates are prevented
|
- **Session-Wide Reuse**: Tools can be called multiple times throughout a session - only back-to-back duplicates are prevented
|
||||||
@@ -74,7 +74,7 @@ This catches cases where the LLM "stutters" and outputs the same tool call twice
|
|||||||
|
|
||||||
### Timing Footer
|
### Timing Footer
|
||||||
|
|
||||||
After each response, G3 displays a timing footer showing elapsed time, time to first token, token usage (from the LLM, not estimated), and current context window usage percentage. The token and context info is displayed dimmed for a clean interface.
|
After each response, g3 displays a timing footer showing elapsed time, time to first token, token usage (from the LLM, not estimated), and current context window usage percentage. The token and context info is displayed dimmed for a clean interface.
|
||||||
|
|
||||||
## Key Features
|
## Key Features
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ After each response, G3 displays a timing footer showing elapsed time, time to f
|
|||||||
- Dynamic token allocation for different providers (4k to 200k+ tokens)
|
- Dynamic token allocation for different providers (4k to 200k+ tokens)
|
||||||
|
|
||||||
### Interactive Control Commands
|
### Interactive Control Commands
|
||||||
G3's interactive CLI includes control commands for manual context management:
|
g3's interactive CLI includes control commands for manual context management:
|
||||||
- **`/compact`**: Manually trigger compaction to compact conversation history
|
- **`/compact`**: Manually trigger compaction to compact conversation history
|
||||||
- **`/thinnify`**: Manually trigger context thinning to replace large tool results with file references
|
- **`/thinnify`**: Manually trigger context thinning to replace large tool results with file references
|
||||||
- **`/skinnify`**: Manually trigger full context thinning (like `/thinnify` but processes the entire context window, not just the first third)
|
- **`/skinnify`**: Manually trigger full context thinning (like `/thinnify` but processes the entire context window, not just the first third)
|
||||||
@@ -134,7 +134,7 @@ These commands give you fine-grained control over context management, allowing y
|
|||||||
|
|
||||||
## Use Cases
|
## Use Cases
|
||||||
|
|
||||||
G3 is designed for:
|
g3 is designed for:
|
||||||
- Automated code generation and refactoring
|
- Automated code generation and refactoring
|
||||||
- File manipulation and project scaffolding
|
- File manipulation and project scaffolding
|
||||||
- System administration tasks
|
- System administration tasks
|
||||||
@@ -229,7 +229,7 @@ G3 uses a TOML configuration file for settings. The config file is automatically
|
|||||||
|
|
||||||
### Retry Configuration
|
### Retry Configuration
|
||||||
|
|
||||||
G3 includes configurable retry logic for handling recoverable errors (timeouts, rate limits, network issues, server errors):
|
g3 includes configurable retry logic for handling recoverable errors (timeouts, rate limits, network issues, server errors):
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[agent]
|
[agent]
|
||||||
@@ -256,7 +256,7 @@ See `config.example.toml` for a complete configuration example.
|
|||||||
|
|
||||||
## WebDriver Browser Automation
|
## WebDriver Browser Automation
|
||||||
|
|
||||||
G3 includes WebDriver support for browser automation tasks. Safari is the default, with Chrome headless available as an alternative.
|
g3 includes WebDriver support for browser automation tasks. Safari is the default, with Chrome headless available as an alternative.
|
||||||
|
|
||||||
**One-Time Setup** (macOS only):
|
**One-Time Setup** (macOS only):
|
||||||
|
|
||||||
@@ -305,7 +305,7 @@ chrome_binary = "/Users/yourname/.chrome-for-testing/chrome-mac-arm64/Google Chr
|
|||||||
|
|
||||||
## Computer Control (Experimental)
|
## Computer Control (Experimental)
|
||||||
|
|
||||||
G3 can interact with your computer's GUI for automation tasks:
|
g3 can interact with your computer's GUI for automation tasks:
|
||||||
|
|
||||||
**Available Tools**: `mouse_click`, `type_text`, `find_element`, `take_screenshot`, `list_windows`
|
**Available Tools**: `mouse_click`, `type_text`, `find_element`, `take_screenshot`, `list_windows`
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# G3 Configuration Example - Coach/Player Mode
|
# g3 Configuration Example - Coach/Player Mode
|
||||||
#
|
#
|
||||||
# This configuration demonstrates using different providers for coach and player
|
# This configuration demonstrates using different providers for coach and player
|
||||||
# roles in autonomous mode. The coach reviews code while the player implements.
|
# roles in autonomous mode. The coach reviews code while the player implements.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# G3 Configuration Example
|
# g3 Configuration Example
|
||||||
#
|
#
|
||||||
# This file demonstrates the new provider configuration format.
|
# This file demonstrates the new provider configuration format.
|
||||||
# Provider references use the format: "<provider_type>.<config_name>"
|
# Provider references use the format: "<provider_type>.<config_name>"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "studio"
|
name = "studio"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Multi-agent workspace manager for G3"
|
description = "Multi-agent workspace manager for g3"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "studio"
|
name = "studio"
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ mod session;
|
|||||||
use git::GitWorktree;
|
use git::GitWorktree;
|
||||||
use session::{Session, SessionStatus};
|
use session::{Session, SessionStatus};
|
||||||
|
|
||||||
/// Studio - Multi-agent workspace manager for G3
|
/// Studio - Multi-agent workspace manager for g3
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
#[command(name = "studio")]
|
#[command(name = "studio")]
|
||||||
#[command(about = "Manage multiple G3 agent sessions using git worktrees")]
|
#[command(about = "Manage multiple g3 agent sessions using git worktrees")]
|
||||||
struct Cli {
|
struct Cli {
|
||||||
#[command(subcommand)]
|
#[command(subcommand)]
|
||||||
command: Commands,
|
command: Commands,
|
||||||
@@ -24,7 +24,7 @@ struct Cli {
|
|||||||
|
|
||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
enum Commands {
|
enum Commands {
|
||||||
/// Run a new G3 agent session (tails output until complete)
|
/// Run a new g3 agent session (tails output until complete)
|
||||||
Run {
|
Run {
|
||||||
/// Agent name (e.g., carmack, torvalds)
|
/// Agent name (e.g., carmack, torvalds)
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
@@ -35,7 +35,7 @@ enum Commands {
|
|||||||
g3_args: Vec<String>,
|
g3_args: Vec<String>,
|
||||||
},
|
},
|
||||||
|
|
||||||
/// Execute a G3 agent session in detached mode (for future use)
|
/// Execute a g3 agent session in detached mode (for future use)
|
||||||
Exec {
|
Exec {
|
||||||
/// Agent name (e.g., carmack, torvalds)
|
/// Agent name (e.g., carmack, torvalds)
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
@@ -118,7 +118,7 @@ fn get_repo_root() -> Result<PathBuf> {
|
|||||||
Ok(PathBuf::from(path))
|
Ok(PathBuf::from(path))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Run a new G3 session (foreground, tails output)
|
/// Run a new g3 session (foreground, tails output)
|
||||||
fn cmd_run(agent: &str, g3_args: &[String]) -> Result<()> {
|
fn cmd_run(agent: &str, g3_args: &[String]) -> Result<()> {
|
||||||
let g3_binary = get_g3_binary_path()?;
|
let g3_binary = get_g3_binary_path()?;
|
||||||
let repo_root = get_repo_root()?;
|
let repo_root = get_repo_root()?;
|
||||||
@@ -200,7 +200,7 @@ fn cmd_run(agent: &str, g3_args: &[String]) -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Execute a G3 session in detached mode (placeholder for future)
|
/// Execute a g3 session in detached mode (placeholder for future)
|
||||||
fn cmd_exec(agent: &str, g3_args: &[String]) -> Result<()> {
|
fn cmd_exec(agent: &str, g3_args: &[String]) -> Result<()> {
|
||||||
// For now, just print what would happen
|
// For now, just print what would happen
|
||||||
println!("exec command not yet implemented");
|
println!("exec command not yet implemented");
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# G3 Code Search Guide
|
# g3 Code Search Guide
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: `crates/g3-core/src/code_search/`, `crates/g3-core/src/tool_definitions.rs`
|
**Source of truth**: `crates/g3-core/src/code_search/`, `crates/g3-core/src/tool_definitions.rs`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
G3 includes a syntax-aware code search tool powered by tree-sitter. Unlike text-based search (grep), it understands code structure and finds actual functions, classes, methods, and other constructs—ignoring matches in comments and strings.
|
g3 includes a syntax-aware code search tool powered by tree-sitter. Unlike text-based search (grep), it understands code structure and finds actual functions, classes, methods, and other constructs—ignoring matches in comments and strings.
|
||||||
|
|
||||||
## Why Use Code Search?
|
## Why Use Code Search?
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# G3 Control Commands
|
# g3 Control Commands
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: `crates/g3-cli/src/lib.rs`
|
**Source of truth**: `crates/g3-cli/src/lib.rs`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
Control commands are special commands you can use during an interactive G3 session to manage context, refresh documentation, and view statistics. They start with `/` and are processed by the CLI, not sent to the LLM.
|
Control commands are special commands you can use during an interactive g3 session to manage context, refresh documentation, and view statistics. They start with `/` and are processed by the CLI, not sent to the LLM.
|
||||||
|
|
||||||
## Available Commands
|
## Available Commands
|
||||||
|
|
||||||
@@ -255,7 +255,7 @@ g3> /help
|
|||||||
|
|
||||||
## Context Management Strategy
|
## Context Management Strategy
|
||||||
|
|
||||||
G3 automatically manages context, but manual intervention can help:
|
g3 automatically manages context, but manual intervention can help:
|
||||||
|
|
||||||
### Proactive Management
|
### Proactive Management
|
||||||
|
|
||||||
@@ -283,7 +283,7 @@ When context gets high:
|
|||||||
|
|
||||||
## Automatic Context Management
|
## Automatic Context Management
|
||||||
|
|
||||||
G3 performs automatic context management:
|
g3 performs automatic context management:
|
||||||
|
|
||||||
| Threshold | Action |
|
| Threshold | Action |
|
||||||
|-----------|--------|
|
|-----------|--------|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# G3 Flock Mode Guide
|
# g3 Flock Mode Guide
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: `crates/g3-ensembles/src/flock.rs`
|
**Source of truth**: `crates/g3-ensembles/src/flock.rs`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
Flock mode enables parallel multi-agent development by spawning multiple G3 agent instances that work on different parts of a project simultaneously. This is useful for large projects with modular architectures where independent components can be developed in parallel.
|
Flock mode enables parallel multi-agent development by spawning multiple g3 agent instances that work on different parts of a project simultaneously. This is useful for large projects with modular architectures where independent components can be developed in parallel.
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
# G3 Architecture
|
# g3 Architecture
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: Crate structure in `crates/`, `Cargo.toml`, `DESIGN.md`
|
**Source of truth**: Crate structure in `crates/`, `Cargo.toml`, `DESIGN.md`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
This document describes the internal architecture of G3, a modular AI coding agent built in Rust. It is intended for developers who want to understand, extend, or maintain the codebase.
|
This document describes the internal architecture of g3, a modular AI coding agent built in Rust. It is intended for developers who want to understand, extend, or maintain the codebase.
|
||||||
|
|
||||||
## High-Level Overview
|
## High-Level Overview
|
||||||
|
|
||||||
G3 follows a **tool-first philosophy**: instead of just providing advice, it actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
g3 follows a **tool-first philosophy**: instead of just providing advice, it actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||||
@@ -58,7 +58,7 @@ G3 follows a **tool-first philosophy**: instead of just providing advice, it act
|
|||||||
|
|
||||||
## Workspace Structure
|
## Workspace Structure
|
||||||
|
|
||||||
G3 is organized as a Rust workspace with 9 crates:
|
g3 is organized as a Rust workspace with 9 crates:
|
||||||
|
|
||||||
```
|
```
|
||||||
g3/
|
g3/
|
||||||
@@ -234,7 +234,7 @@ Flock mode enables parallel development by spawning multiple agent instances wor
|
|||||||
### studio (Multi-Agent Workspace Manager)
|
### studio (Multi-Agent Workspace Manager)
|
||||||
|
|
||||||
**Location**: `crates/studio/`
|
**Location**: `crates/studio/`
|
||||||
**Purpose**: Manage multiple G3 agent sessions using git worktrees
|
**Purpose**: Manage multiple g3 agent sessions using git worktrees
|
||||||
|
|
||||||
Key modules:
|
Key modules:
|
||||||
- `main.rs` - CLI commands (run, exec, list, status, accept, discard)
|
- `main.rs` - CLI commands (run, exec, list, status, accept, discard)
|
||||||
@@ -297,7 +297,7 @@ The `ContextWindow` struct manages conversation history with intelligent token t
|
|||||||
|
|
||||||
## Error Handling
|
## Error Handling
|
||||||
|
|
||||||
G3 implements comprehensive error handling:
|
g3 implements comprehensive error handling:
|
||||||
|
|
||||||
1. **Error Classification**: Distinguishes recoverable vs non-recoverable errors
|
1. **Error Classification**: Distinguishes recoverable vs non-recoverable errors
|
||||||
2. **Automatic Retry**: Exponential backoff with jitter for:
|
2. **Automatic Retry**: Exponential backoff with jitter for:
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
# G3 Configuration Guide
|
# g3 Configuration Guide
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: `crates/g3-config/src/lib.rs`, `config.example.toml`
|
**Source of truth**: `crates/g3-config/src/lib.rs`, `config.example.toml`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
This document explains how to configure G3, including provider setup, agent behavior, and optional features like WebDriver and computer control.
|
This document explains how to configure g3, including provider setup, agent behavior, and optional features like WebDriver and computer control.
|
||||||
|
|
||||||
## Configuration File Location
|
## Configuration File Location
|
||||||
|
|
||||||
G3 looks for configuration files in this order:
|
g3 looks for configuration files in this order:
|
||||||
|
|
||||||
1. Path specified via `--config` CLI argument
|
1. Path specified via `--config` CLI argument
|
||||||
2. `./g3.toml` (current directory)
|
2. `./g3.toml` (current directory)
|
||||||
@@ -20,7 +20,7 @@ If no configuration file exists, G3 creates a default one at `~/.config/g3/confi
|
|||||||
|
|
||||||
## Configuration Format
|
## Configuration Format
|
||||||
|
|
||||||
G3 uses TOML format. The configuration is organized into sections:
|
g3 uses TOML format. The configuration is organized into sections:
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[providers] # LLM provider settings
|
[providers] # LLM provider settings
|
||||||
@@ -165,7 +165,7 @@ check_todo_staleness = true # Warn about stale TODO items
|
|||||||
|
|
||||||
### Retry Behavior
|
### Retry Behavior
|
||||||
|
|
||||||
G3 automatically retries on recoverable errors:
|
g3 automatically retries on recoverable errors:
|
||||||
- Rate limits (HTTP 429)
|
- Rate limits (HTTP 429)
|
||||||
- Network errors
|
- Network errors
|
||||||
- Server errors (HTTP 5xx)
|
- Server errors (HTTP 5xx)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# G3 LLM Providers Guide
|
# g3 LLM Providers Guide
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: `crates/g3-providers/src/`
|
**Source of truth**: `crates/g3-providers/src/`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
This document describes the LLM providers supported by G3, their capabilities, and how to choose between them.
|
This document describes the LLM providers supported by g3, their capabilities, and how to choose between them.
|
||||||
|
|
||||||
## Provider Overview
|
## Provider Overview
|
||||||
|
|
||||||
@@ -269,10 +269,10 @@ threads = 8 # Use more threads
|
|||||||
|
|
||||||
### Tool Calling
|
### Tool Calling
|
||||||
|
|
||||||
Embedded models don't have native tool calling. G3 uses JSON fallback:
|
Embedded models don't have native tool calling. g3 uses JSON fallback:
|
||||||
1. System prompt includes tool definitions as JSON
|
1. System prompt includes tool definitions as JSON
|
||||||
2. Model outputs tool calls as JSON in response
|
2. Model outputs tool calls as JSON in response
|
||||||
3. G3 parses JSON and executes tools
|
3. g3 parses JSON and executes tools
|
||||||
|
|
||||||
This works but is less reliable than native tool calling.
|
This works but is less reliable than native tool calling.
|
||||||
|
|
||||||
@@ -376,7 +376,7 @@ pub trait LLMProvider: Send + Sync {
|
|||||||
|
|
||||||
### Rate Limits
|
### Rate Limits
|
||||||
|
|
||||||
G3 automatically retries on rate limits with exponential backoff.
|
g3 automatically retries on rate limits with exponential backoff.
|
||||||
|
|
||||||
To reduce rate limit issues:
|
To reduce rate limit issues:
|
||||||
- Use prompt caching (Anthropic)
|
- Use prompt caching (Anthropic)
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# G3 Tools Reference
|
# g3 Tools Reference
|
||||||
|
|
||||||
**Last updated**: January 2025
|
**Last updated**: January 2025
|
||||||
**Source of truth**: `crates/g3-core/src/tool_definitions.rs`, `crates/g3-core/src/tools/`
|
**Source of truth**: `crates/g3-core/src/tool_definitions.rs`, `crates/g3-core/src/tools/`
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
This document describes all tools available to the G3 agent. Tools are the primary mechanism by which G3 interacts with the filesystem, executes commands, and automates tasks.
|
This document describes all tools available to the g3 agent. Tools are the primary mechanism by which g3 interacts with the filesystem, executes commands, and automates tasks.
|
||||||
|
|
||||||
## Tool Categories
|
## Tool Categories
|
||||||
|
|
||||||
@@ -445,7 +445,7 @@ List all open windows with IDs and titles.
|
|||||||
|
|
||||||
### Duplicate Detection
|
### Duplicate Detection
|
||||||
|
|
||||||
G3 prevents accidental duplicate tool calls:
|
g3 prevents accidental duplicate tool calls:
|
||||||
- Only immediately sequential identical calls are blocked
|
- Only immediately sequential identical calls are blocked
|
||||||
- Text between tool calls resets detection
|
- Text between tool calls resets detection
|
||||||
- Tools can be reused throughout a session
|
- Tools can be reused throughout a session
|
||||||
|
|||||||
Reference in New Issue
Block a user