35 lines
1.1 KiB
Markdown
35 lines
1.1 KiB
Markdown
# 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 `run_agent(agent, "message")` then `take_response(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 (run_agent, take_response, 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`)
|