This commit is contained in:
2026-08-08 19:44:06 +07:00
parent 03e1dd7628
commit 2aa0d1e9a4
4 changed files with 86 additions and 165 deletions
+30 -19
View File
@@ -1,23 +1,34 @@
# YiemAgent
## TODO
- [WORKING] build prompt()
- [ ] build agent runLoop()
- [ ] build MCP server connector
- [ ] executeplan() to execute the plan
- [ ] add comprehensive tests
Julia framework for building agents with tool use.
## Changelog
## Getting Started
### Version 0.8.0
- Converted snake_case fields to camelCase:
- `llmModel`: `base_url``baseUrl`, `context_window``contextWindow`, `max_tokens``maxTokens`
- Converted PascalCase type references to camelCase:
- `AgentState``agentState`
- `AgentTool``agentTool`
- `AgentMessage``agentMessage`
- `PendingMessageQueue``pendingMessageQueue`
- `ActiveRun``activeRun`
- `StreamFn``streamFn`
- `ThinkingLevel``thinkingLevel`
- `ToolExecutionMode``toolExecutionMode`
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`)