ml-agent / agent /README.md
akseljoonas's picture
akseljoonas HF Staff
readme update
9c4199b

Agent

Async agent loop with LiteLLM.

Architecture

Queue-based async system:

  • Submissions in (user input) → Agent Loop → Events output for possible UI updates
  • Session maintains state (context + tools) for possible future Context Engineering
  • Handlers operations like (USER_INPUT, INTERRUPT, COMPACT, UNDO, SHUTDOWN) for possible UI control

Components

Component Purpose Long Term Goal
agent_loop.py Core agentic loop: processes user input, calls LLM via LiteLLM, executes tool calls iteratively until completion, emits events Support parallel tool execution, streaming responses, and advanced reasoning patterns
session.py Maintains session state and interaction with potential UI (context, config, event queue), handles interrupts, assigns unique session IDs for tracing Enable plugging in different UIs (CLI, web, API, programmatic etc.)
tools.py ToolRouter manages potential built-in tools (e.g. bash, read_file, write_file which are dummy implementations rn) + MCP tools, converts specs to OpenAI format Be the place for tools that can be used by the agent. All crazy tool design happens here.
context_manager/ Manages conversation history, very rudimentary context engineering support Implement intelligent context engineering to keep the agent on track
config.py Loads JSON config for the agent Support different configs etc.
main.py Interactive CLI with async queue architecture (submission→agent, agent→events) (simple way to interact with the agent now) Serve as reference implementation for other UIs (web, API, programmatic)