Skip to content

Approaching-AI/auto-meta-agent

Repository files navigation

auto-meta-agent

This repository contains a reusable agent runtime plus its own method memory for a shared daily-notes -> doc -> sop promotion chain.

Each run serves one active memory_root.

  • repo-local runs default to this repository's own memory/
  • external agent-runtime.* overlays may point the runtime at another workspace memory tree

Layout

  • main.py
    • unified scheduler entrypoint and the only poller in the formal system
  • config.yaml
    • repository-default scheduler settings
  • memory/doc/
    • design docs and methodology docs for the runtime
  • memory/daily-notes/
    • ongoing evolution notes for this repository
    • filename format: YYYY-MM-DD-<index>-<title>.md
  • memory/.agents/
    • repo-local runtime artifacts when the active memory_root is this repository's own memory/
  • <agent-name>/
    • one self-contained agent workspace with agent.json and system.md
  • runners/
    • launcher adapters such as codex
  • lib/
    • shared runner-side utilities

main.py coordinates the full notes -> doc -> sop chain. Agents do not poll on their own.

Data Flow

  • note-relation reads the shared daily-notes layer and writes machine-readable work orders into <memory_root>/.agents/note-relation/work-orders/
  • doc-maintenance consumes upstream note-relation work orders and writes downstream work orders into <memory_root>/.agents/doc-maintenance/work-orders/
  • sop-promotion consumes upstream doc-maintenance work orders and writes promotion results into <memory_root>/.agents/sop-promotion/work-orders/

The scheduler handles polling, wakeup, and dependency-aware execution order. Agents exchange data through runtime work-order files instead of introducing a new long-term memory layer.

main.py only wakes agents and passes context. Each agent still inspects its own scope and decides the concrete processing set.

Launchers

Agent launch is runner-agnostic.

  • agent.json declares launcher.kind and launcher.config
  • main.py resolves the launcher adapter under runners/
  • launcher-private files live under <memory_root>/.agents/<agent-id>/launchers/<launcher-kind>/

Current implementation includes the codex launcher as one adapter, not as the system architecture itself.

Configuration

config.yaml contains repository-default runtime settings:

  • watch
  • sleep_seconds
  • memory_root
  • default_model
  • agent_models
  • shared_memory_paths
  • agent_task_overrides

The scheduler derives agent runtime state from that active memory root:

  • <memory_root>/.agents/<agent-id>/state/
  • <memory_root>/.agents/<agent-id>/work-orders/
  • <memory_root>/.agents/<agent-id>/reports/
  • <memory_root>/.agents/<agent-id>/launchers/<launcher-kind>/

When --config is omitted, main.py first looks for an external agent-runtime.yaml, agent-runtime.yml, or agent-runtime.json deployment overlay and otherwise falls back to config.yaml. The active workspace root is derived from the config file location.

Entrypoints

  • python main.py
    • auto-discovers an external agent-runtime config first
  • python main.py --config path/to/config.yaml
    • runs with an explicit JSON/YAML config file

Conventions

  • Keep long-term knowledge in memory/, not in runner-private folders.
  • Keep durable runtime coordination under the active memory root's .agents/ namespace.
  • Keep the scheduler decoupled from any one launcher implementation.
  • Keep main.py responsible for wakeup and orchestration, not domain judgment.
  • Keep the daily-notes -> doc -> sop chain explicit without adding a new long-term memory tier.
  • Keep repository-local daily notes under memory/daily-notes/ with zero-padded per-day numbering and a short kebab-case title slug.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages