Skip to main content

AgenArc

Directed-Graph Agent Orchestration Engine

PyPI - Version Python License Tests Coverage


Philosophy

"Mechanism and Strategy Separation"

Layer Role
Kernel Ultra-stable scheduler — secure execution, resource validation, VFS sandbox
Self-repair Built by users within the graph flow — evolve agents without touching the engine
Asset boundary agrc:// virtual protocol — files, scripts, and prompts live in isolated bundles

Architecture

 ┌──────────────────────────────────────────────────────────┐
 │                      AgenArc v0.7                        │
 ├──────────────────────────────────────────────────────────┤
 │                                                           │
 │  ┌──────────┐    ┌──────────┐    ┌──────────────────┐    │
 │  │ Protocol │───▶│  Engine  │───▶│  Visualization   │    │
 │  │   (DSL)  │    │ (Runtime)│    │   (Web IDE)      │    │
 │  └──────────┘    └──────────┘    └──────────────────┘    │
 │        │               │                  │               │
 │  ┌─────▼─────┐  ┌──────▼──────┐  ┌───────▼────────┐     │
 │  │JSON Schema│  │  Scheduler  │  │  Graph Editor   │     │
 │  │+ Templates│  │  + Router   │  │  + Live Preview │     │
 │  │+ Conditions│ │  + Join     │  │  + Context Panel│     │
 │  └───────────┘  │  + Checkpoint│ │  + Status LEDs  │     │
 │                 │  + Plugins   │  └────────────────┘     │
 │                 └─────────────┘                          │
 └──────────────────────────────────────────────────────────┘

Features

Category Highlights
Execution Linear & parallel & async modes, Router (conditional branching), Join (branch sync), CheckpointManager
LLM Streaming responses, multi-provider fallback, structured error classification
Scripting Script_Node with AST-safe evaluator (3 trust levels), gas & memory limits
Packaging .agrc self-contained bundles — JSON protocol + prompts + scripts + plugins in one ZIP
VFS agrc:// virtual filesystem with rwx permissions, path-traversal protection
Plugins Python / C++ / External loaders, hot-reload (file watching), event plugins
Visualization Web IDE — graph editor, file tree editor, syntax highlighting, context panel, trace waterfall
SubGraph Embed .agrc bundles as nodes — isolated context, auto port resolution, pack embedding
CLI run / shell / serve / validate / info / pack / visualize / init

Node Types

Node Description Input → Output
SubGraph Embed and execute a nested .agrc bundle as a sub-graph with isolated context auto-resolved from child bundle: trigger outputs → inputs, terminal node outputs → outputs
Trigger Entry point payload → graph
Trigger Entry point payload → graph
LLM_Task LLM inference (streaming + fallback) messagesresponse, usage, error
Router Conditional branching (all matches execute in parallel) input → dynamic output ports
Join Synchronize parallel branches (merge / concat / first) dynamic → output
Memory_I/O Persistent key-value storage (transactional + checkpoint) key, valuevalue, success
Script_Node Inline Python with AST safety (3 trust levels) arbitrary → result
Prompt_Builder Multi-turn conversation history management user / assistantmessages
Log Log and pass-through messagemessage
Context_Set Set global context values key, valuesuccess
Context_Get Read global context values keyvalue
Asset_Reader Read files from bundle via VFS pathcontent, success
Asset_Writer Write files with atomic operations path, contentsuccess
Runtime_Reload Hot reload scripts and plugins at runtime targetsuccess

Quick Start

pip install agenarc
# Run a chat agent
agenarc run examples/my_first_agent.agrc --input '{"payload":"Hello!"}'

# Interactive REPL
agenarc shell examples/my_first_agent.agrc

# Background service with plugins
agenarc serve examples/euchea.agrc

# Web-based graph editor
agenarc visualize examples/my_first_agent.agrc

Examples

Agent Description
my_first_agent.agrc Multi-turn chat — Trigger → Prompt_Builder → LLM_Task
qq_bot_agent.agrc QQ bot with event plugin (serve mode)
euchea.agrc PDF → C++ code generation via Alt+A hotkey (serve mode)

.agrc Bundle

my_agent.agrc/
├── manifest.json          # Metadata, permissions, hot_reload
├── flow.json              # Graph definition (nodes + edges)
├── prompts/
│   └── system.pt          # {{template}} prompt files
├── scripts/
│   └── tool.py            # Custom scripts (optional)
├── sub/                    # Embedded SubGraph bundles (auto-packed)
│   └── translator.agrc/
│       ├── flow.json
│       └── prompts/
├── plugins/                # Embedded plugins (auto-discovered)
│   └── my_plugin/
│       ├── agenarc.json
│       └── plugin.py
└── assets/                 # Static assets (optional)
Example flow.json
{
  "version": "1.0.0",
  "nodes": [
    { "id": "trigger_1", "type": "Trigger", "label": "Start" },
    {
      "id": "llm_1",
      "type": "LLM_Task",
      "label": "Chat",
      "config": {
        "model": "deepseek-chat",
        "system_prompt": "agrc://prompts/system.pt",
        "stream": true,
        "providers": ["deepseek", "openrouter"]
      }
    },
    { "id": "log_1", "type": "Log", "label": "Output" }
  ],
  "edges": [
    { "source": "trigger_1", "sourcePort": "payload", "target": "llm_1", "targetPort": "messages" },
    { "source": "llm_1", "sourcePort": "response", "target": "log_1", "targetPort": "message" }
  ]
}

SubGraph

An .agrc bundle can be embedded as a node in another graph:

{
  "id": "translator",
  "type": "SubGraph",
  "label": "翻译 Agent",
  "config": { "bundle": "translator.agrc" }
}

SubGraph 端口自动从子图 bundle 解析:

  • 输入端口 = 子图 Trigger 节点的输出端口
  • 输出端口 = 子图终端节点(无出边)的输出端口

Bundle 嵌入

引用 sub/ 目录下的子图会在 agenarc pack 时自动嵌入:

my_agent.agrc/
├── flow.json              # 引用 sub/translator.agrc
├── sub/
│   └── translator.agrc/   # 运行时打包时自动嵌入
│       ├── flow.json
│       └── prompts/

上下文隔离

子图拥有独立的 StateManager,不污染父图上下文。父图可以通过 config.inputs 注入值,通过边连接子图的输出端口获取结果。


Configuration

# ~/.agenarc/config.yaml

providers:
  deepseek:
    api_key: sk-your-key
    base_url: https://api.deepseek.com
    default_model: deepseek-chat
    temperature: 0.7

  openrouter:
    api_key: sk-your-key
    base_url: https://openrouter.ai/api/v1
    default_model: openrouter/free

agent:
  checkpoint_dir: ~/.agenarc
Provider base_url
DeepSeek https://api.deepseek.com
OpenAI https://api.openai.com/v1
OpenRouter https://openrouter.ai/api/v1
Ollama http://localhost:11434/v1

Environment variables override config: AGENARC_OPENAI_API_KEY, AGENARC_OPENAI_BASE_URL, AGENARC_OPENAI_MODEL, AGENARC_ANTHROPIC_API_KEY, AGENARC_ANTHROPIC_MODEL, AGENARC_CHECKPOINT_DIR


Development

agenarc/
├── protocol/           # JSON Schema + protocol loader
├── engine/             # Executor, state manager, AST evaluator
├── operators/          # 13 built-in operators
├── vfs/                # agrc:// virtual filesystem
├── plugins/            # Plugin loader (Python/C++/External)
├── graph/              # Graph data structures + traversal
├── visualization/      # Web IDE server + static frontend
└── cli/                # Command-line interface
# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/                          # All (742 passed)
pytest tests/ --cov=agenarc            # With coverage (~62%)
pytest tests/unit/test_builtin_operators.py -v  # Single file

# Lint & type check
ruff check agenarc/
ruff format --check agenarc/
mypy agenarc/

Documentation

Document Description
CHANGELOG.md Release history and change log
CONTRIBUTING.md Development setup, PR process, commit style
docs/agents.md User-facing agent creation guide (Chinese)
docs/plugins/README.md Plugin development guide

License

MIT © Rycbartbad

Release files for agenarc 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agenarc 0.7.1
File Size Uploaded
agenarc-0.7.1.tar.gz 226.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agenarc 0.7.1
File Interpreter ABI Platform
agenarc-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 384.6 kB

Release files / agenarc-0.7.1.tar.gz

Download URL agenarc-0.7.1.tar.gz
Size 226.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d8879cc399af40ee59fc4cc3c2797764727e4eba24a39790798be93eb0984381
BLAKE2b-256 checksum
How to use checksums
f3272dcd2b8e5e99f7a59db096edfe9d61af27e267b80f1c8fd33da9a9875a0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 10, 2026.

Transparency log

Release files / agenarc-0.7.1-py3-none-any.whl

Download URL agenarc-0.7.1-py3-none-any.whl
Size 158.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f61ca7e517562a5d518161d9a2b18386164a6815c9e49bb5d2e9bd1732ddd1c
BLAKE2b-256 checksum
How to use checksums
61f29dbae9036ca03fc0104a0e39ab514307e49ea8c28113e79136b360123aed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page