Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1d14107
refactor: extract embedding and experience APIs to public packages
Timwood0x10 Jul 14, 2026
ed62bae
feat: add public knowledge API, workflow API, brand assets, and core …
Timwood0x10 Jul 15, 2026
4fa46d7
fix: add cancel calls in example error paths and add agent public API
Timwood0x10 Jul 15, 2026
2225940
feat: add self-healing evolution system and DAG runtime registration
Timwood0x10 Jul 15, 2026
e1fcbf8
feat(api/evolution, examples): add public evolution API and example
Timwood0x10 Jul 15, 2026
4e650fc
docs: add 4 new Chinese and English technical docs
Timwood0x10 Jul 15, 2026
1dd08c4
feat: add yaml-driven distillation threshold and new config options
Timwood0x10 Jul 15, 2026
89def2a
docs: add memory configuration comments to example and config files
Timwood0x10 Jul 15, 2026
83f288d
chore: rebrand project from GoAgent to ARES
Timwood0x10 Jul 16, 2026
2f9e943
test(benchmark): add full suite of knowledge module benchmarks
Timwood0x10 Jul 16, 2026
147d249
docs: add capability-module map docs
Timwood0x10 Jul 16, 2026
e636f72
chore: aggregate all recent codebase changes and improvements
Timwood0x10 Jul 21, 2026
a4e4c14
feat: add LLM-backed GA scoring, service discovery, and persistent kn…
Timwood0x10 Jul 22, 2026
7bde408
feat(bootstrap,evolution): add autonomous LLM suggestion pipeline
Timwood0x10 Jul 22, 2026
8b1ce0f
feat: add persistent PG strategy store, shared knowledge runtime, and…
Timwood0x10 Jul 22, 2026
ea8bb64
feat: add memory evolution support and fix DAG reference issues
Timwood0x10 Jul 22, 2026
a4ca077
fix,build,refactor: complete evolution system fixes and cleanups
Timwood0x10 Jul 22, 2026
4c1796a
feat: add RAG support, improve error handling, and refactor concurrency
Timwood0x10 Jul 25, 2026
d2bce72
refactor: centralize score clamping and config defaults
Timwood0x10 Jul 25, 2026
aabc030
feat(sdk): add RAG support with yaml config and tooling
Timwood0x10 Jul 25, 2026
3ac1af9
feat(sdk): add full zero-friction agent SDK implementation
Timwood0x10 Jul 25, 2026
88fa152
refactor: rename MustNew to NewRuntime, update all usages
Timwood0x10 Jul 26, 2026
e3a77f1
feat: introduce unified DAG workflow runtime with Runner and IR
Timwood0x10 Jul 28, 2026
ef7b5f0
feat(workflow): unify and enhance runner implementation with core fixes
Timwood0x10 Jul 28, 2026
8a17bd3
refactor(workflow): implement compiled workflow bindings and resume e…
Timwood0x10 Jul 28, 2026
136af49
chore: migrate entire codebase to unified DAG runner
Timwood0x10 Jul 29, 2026
743a2c5
fix: stabilize workflow engine and add idempotent resume checkpointing
Timwood0x10 Jul 29, 2026
bed65cc
chore: complete round archive implementation and wiring
Timwood0x10 Jul 29, 2026
05241ba
refactor: unify event store construction, improve panic logging
Timwood0x10 Jul 29, 2026
41ce9ec
chore: cut 0.2.8 release with unified DAG runner and archive module
Timwood0x10 Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 24 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
trim_trailing_whitespace = true
indent_style = space
indent_size = 4

[*.{go,yaml,yml,json,toml,mod,sum}]
indent_style = tab
indent_size = 4

[*.md]
trim_trailing_whitespace = false
max_line_length = off

[*.{yaml,yml,json,toml}]
indent_style = space
indent_size = 2

[Makefile]
indent_style = tab
30 changes: 30 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Normalize line endings across platforms
* text=auto eol=lf

# Binary files — never diff/merge as text
*.db binary
*.db-shm binary
*.db-wal binary
*.lbug binary
*.so binary
*.dylib binary
*.dll binary
*.exe binary
*.bin binary
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.svg binary
*.pdf binary
*.zip binary
*.tar binary
*.gz binary
*.excalidraw binary

# Generated files — hide from GitHub linguist stats
go.sum linguist-generated=true
*.pb.go linguist-generated=true
*_gen.go linguist-generated=true
docs/**/* linguist-documentation=true
6 changes: 6 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Funding sources for ARES — https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
github: [Timwood0x10]
# Uncomment and fill if you have other funding channels:
# ko_fi: timwood0x10
# patreon: timwood0x10
# open_collective: ares
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
image: pgvector/pgvector:pg15
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: goagent_test
POSTGRES_DB: ARES_test
ports:
- 5432:5432
options: >-
Expand All @@ -89,7 +89,7 @@ jobs:

- name: Integration tests
env:
TEST_POSTGRES_DSN: "postgres://postgres:postgres@localhost:5432/goagent_test?sslmode=disable"
TEST_POSTGRES_DSN: "postgres://postgres:postgres@localhost:5432/ARES_test?sslmode=disable"
run: go test -race -tags=integration -count=1 -timeout=300s ./...

benchmark:
Expand All @@ -100,7 +100,7 @@ jobs:
image: pgvector/pgvector:pg15
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: goagent_test
POSTGRES_DB: ARES_test
ports:
- 5432:5432
options: >-
Expand All @@ -120,7 +120,7 @@ jobs:

- name: Run benchmarks
env:
TEST_POSTGRES_DSN: "postgres://postgres:postgres@localhost:5432/goagent_test?sslmode=disable"
TEST_POSTGRES_DSN: "postgres://postgres:postgres@localhost:5432/ARES_test?sslmode=disable"
run: go test -bench=. -benchmem -count=1 -timeout=300s ./... 2>&1 | tee benchmark-output.txt

- name: Upload benchmark results
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
image: pgvector/pgvector:pg16
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: goagent
POSTGRES_DB: ARES
ports:
- 5433:5432
options: >-
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
- name: Create pgvector extension
run: |
for i in {1..30}; do
if docker exec postgres psql -U postgres -d goagent -c "CREATE EXTENSION IF NOT EXISTS vector;" 2>/dev/null; then
if docker exec postgres psql -U postgres -d ARES -c "CREATE EXTENSION IF NOT EXISTS vector;" 2>/dev/null; then
echo "pgvector extension created successfully"
break
fi
Expand Down
38 changes: 38 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Pre-commit hooks for ARES — run `pre-commit install` to enable.
# Docs: https://pre-commit.com
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
exclude: '\.md$'
- id: end-of-file-fixer
exclude: '\.excalidraw$'
- id: check-yaml
args: [--allow-multiple-documents]
- id: check-json
- id: check-toml
- id: check-merge-conflict
- id: check-added-large-files
args: [--maxkb=500]
- id: detect-private-key
- id: mixed-line-ending
args: [--fix=lf]

- repo: https://github.com/dnephin/pre-commit-golang
rev: v0.5.1
hooks:
- id: go-fmt
- id: go-imports
- id: go-vet
- id: go-mod-tidy

- repo: local
hooks:
- id: golangci-lint
name: golangci-lint
description: Fast linters runner for Go.
entry: golangci-lint run --fix
types: [go]
language: system
pass_filenames: false
145 changes: 145 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
cff-version: 1.2.0
message: "If you use ARES in your research, please cite it as below."
title: "ARES: Agent Runtime & Evolution System"
type: software
authors:
- family-names: Timwood
given-names: "0x10"
orcid: "https://github.com/Timwood0x10"
repository-code: "https://github.com/Timwood0x10/ares"
url: "https://github.com/Timwood0x10/ares"
abstract: >-
ARES is a Go framework for building resilient, self-evolving AI agents.
It provides a unified SDK, DAG workflow engine, chaos engineering,
memory distillation, knowledge fabric, and MCP tool integration.
The runtime continuously evolves its DAG topology, scheduler, knowledge
planner, and recovery strategies in production without restarts.
keywords:
- agent-framework
- go
- self-evolving
- mcp
- dag-workflow
- chaos-engineering
license: Apache-2.0
version: "0.2.8"
date-released: "2026-07-16"
65 changes: 65 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in the
ARES community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes
- Focusing on what is best for the overall community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or advances of
any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
**conduct@timwood0x10.dev**.

All complaints will be reviewed and investigated promptly and fairly.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

[homepage]: https://www.contributor-covenant.org

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@ We welcome feature suggestions! Please:
```bash
docker run -d --name ares-db \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=goagent \
-e POSTGRES_DB=ARES \
-p 5433:5432 \
pgvector/pgvector:pg16

# Enable pgvector extension
docker exec -it ares-db psql -U postgres -d goagent -c "CREATE EXTENSION IF NOT EXISTS vector;"
docker exec -it ares-db psql -U postgres -d ARES -c "CREATE EXTENSION IF NOT EXISTS vector;"
```

3. **Run database migrations**:
Expand Down
42 changes: 42 additions & 0 deletions DISCLAIMER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Disclaimer

## Software Status

ARES is provided "as is" and "as available", without warranty of any kind,
express or implied. The software is under active development and should be
considered **beta quality**.

## No Financial Advice

ARES includes a quantitative trading module (`internal/ares_quant/`) intended
**for research and educational purposes only**. It is **not** financial advice,
investment advice, trading advice, or any other sort of advice.

You are solely responsible for any decisions you make based on information
obtained from this software. Always conduct your own due diligence and consult
with a qualified financial advisor before making investment decisions.

Past performance is not indicative of future results. Trading involves
substantial risk of loss and is not suitable for every investor.

## No Warranty

Under the terms of the Apache License, Version 2.0:

> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
> WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

The authors and copyright holders of ARES assume no liability for any damages
arising from the use or inability to use this software.

## Experimental Components

Several modules are explicitly marked as experimental:

- **Quant Trading Module** (`internal/ares_quant/`) — 9,768 lines of
domain-specific trading code; see
[the quant deep dive](docs/articles/en/00-quant-trading.md) for the honest
assessment.

These modules may be refactored, reorganized, or extracted without notice.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

Copyright 2024 GoAgent Contributors
Copyright 2026 Timwood0x10

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
14 changes: 7 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ benchmark-profile:
benchmark-save:
@echo "Running benchmarks and saving results..."
@mkdir -p benchmarks
@echo "# GoAgent Performance Benchmark Report" > benchmarks/benchmark_report.md
@echo "# ARES Performance Benchmark Report" > benchmarks/benchmark_report.md
@echo "" >> benchmarks/benchmark_report.md
@echo "**Date:** $(date +%Y-%m-%d)" >> benchmarks/benchmark_report.md
@echo "**Platform:** $(uname -s)/$(uname -m)" >> benchmarks/benchmark_report.md
Expand Down Expand Up @@ -248,15 +248,15 @@ demo-mcp:
# ──────────────────────────────────────────────
# Start all demo services (pgvector + optional embedding)
demo-up:
@echo "Starting GoAgent demo services..."
@echo "Starting ARES demo services..."
@docker compose up -d
@echo "Waiting for PostgreSQL to be ready..."
@until docker compose exec -T postgres pg_isready -U postgres >/dev/null 2>&1; do \
sleep 1; \
done
@echo ""
@echo "✅ PostgreSQL is ready!"
@echo " DSN: postgres://postgres:postgres@localhost:5433/goagent_test?sslmode=disable"
@echo " DSN: postgres://postgres:postgres@localhost:5433/ARES_test?sslmode=disable"
@echo ""
@echo "Run tests: make demo-test"
@echo "View logs: make demo-logs"
Expand All @@ -265,14 +265,14 @@ demo-up:

# Stop and clean up demo services
demo-down:
@echo "Stopping GoAgent demo services..."
@echo "Stopping ARES demo services..."
@docker compose down -v
@echo "✅ Demo services stopped"

# Run integration tests against demo services
demo-test:
@echo "Running integration tests against demo services..."
@TEST_POSTGRES_DSN="postgres://postgres:postgres@localhost:5433/goagent_test?sslmode=disable" \
@TEST_POSTGRES_DSN="postgres://postgres:postgres@localhost:5433/ARES_test?sslmode=disable" \
go test -v -count=1 -timeout=180s ./internal/integration/... ./internal/events/... 2>&1 | \
grep -E "^(=== RUN|--- |ok |FAIL|--- FAIL|PASS|SKIP)"
@echo ""
Expand All @@ -285,10 +285,10 @@ demo-logs:
# Quick smoke test — just verify the database connection
demo-smoke:
@echo "Checking PostgreSQL connection..."
@docker compose exec postgres psql -U postgres -d goagent_test -c "SELECT '✅ pgvector OK' AS status, extname, extversion FROM pg_extension WHERE extname='vector';"
@docker compose exec postgres psql -U postgres -d ARES_test -c "SELECT '✅ pgvector OK' AS status, extname, extversion FROM pg_extension WHERE extname='vector';"
@echo ""
@echo "Checking test databases..."
@docker compose exec postgres psql -U postgres -c "\l goagent_test"
@docker compose exec postgres psql -U postgres -c "\l ARES_test"
@docker compose exec postgres psql -U postgres -c "\l testdb"

# ──────────────────────────────────────────────
Expand Down
Loading
Loading