# sgr-agent-core
Core types for the sgr-agent ecosystem.
Provides the minimal shared interface that both `sgr-agent` (framework) and `sgr-agent-tools` (file-system tools) depend on — no heavy dependencies.
## What's inside
| `agent_tool` | `Tool`, `ToolOutput`, `ToolError`, `ContextModifier`, `parse_args` | Tool trait and execution types |
| `context` | `AgentContext`, `AgentState` | Shared state passed to tools |
| `schema` | `json_schema_for`, `response_schema_for`, `make_openai_strict` | JSON Schema generation from Rust types |
| `tool` | `ToolDef`, `tool()` | Tool definitions for LLM APIs |
## Usage
Most users should depend on `sgr-agent` (which re-exports everything from core). Use `sgr-agent-core` directly only when building a tools crate that must avoid circular dependencies.
```rust
use sgr_agent_core::{Tool, ToolOutput, ToolError, parse_args, AgentContext, json_schema_for};
```
## Dependencies
Only 5 lightweight crates: `async-trait`, `serde`, `serde_json`, `schemars`, `thiserror`.