# YiemAgent Julia framework for building agents with tool use. ## Getting Started 1. Install dependencies: `]add JSON, DataStructures, UUIDs, Dates, ...` 2. Create a `yiemAgent` with `loadTools("src/tools")` 3. Call `runAgent(agent, "message")` then `takeResponse(agent)` ## Architecture ``` src/ ├── YiemAgent.jl # Module entry point ├── type.jl # Core types (messages, tools, agent state) ├── utils.jl # Message formatting, validation ├── agentCore.jl # Agent loop, tool execution pipeline ├── api.jl # Public API (runAgent, takeResponse, etc.) └── tools/ ├── registry.jl # Tool registry (loadTools, registerTool, listTools) ├── getWeather.jl # Weather lookup tool ├── getTime.jl # Time lookup tool ├── writeTool.jl # Create new tool files (self-modifying) └── README.md # Tool development guide ``` ## Tool Development See `src/tools/README.md` for: - Tool anatomy (schema, execute, getTool) - Validation hooks - Agent loop lifecycle - Self-modifying tools (`writeTool`)