Axon이란 걸 만들고 있습니다

지금 동시에 잡고 있는 프로젝트는 3가지입니다.

하나는 베가

이건 현재 SSH로 서버 관리 가능할 정도까지 그리고 그 결과를 레포트로 만들어줄 수 있는 정도까지는 되었습니다. 이제 테스트 해봐야죠.

또하나는 시냅스

이건 지금 결정론적 사고를 집어 넣어 그 결과를 노드와 엣지에 반영하고 가상 디버깅을 통해 문제가 생길 부분을 노드와 엣지에 집어 넣는 단계로 접어들었어요.

그리고 마지막이 Axon입니다.

Axon은 AI로 멀티 LLM 오케스트레이션을 간단히 지원하면서 공장제로 앱을 생산할 수 있게 만든 도구입니다. 관리는 브라우저를 통해 하면서 AI가 서로 스레드에서 대화를 통해 대화 속도를 인간이 따라 가도록 만들었습니다.

사용할 AI의 종류들을 결정하고 아키텍트와 시니어(들) 주니어(들)의 수를 초기 단계에 설정한 다음 스펙 명세를 부트스트랩하면 아키텍트가 이 명세를 읽어들이고 구조를 잡은 다음 작업 내역을 각 시니어와 주니어들에게 할당하고 작업 명세를 작성합니다. 그러면 그 작업 명세가 바로 스레드의 스레드 목록이 됩니다. 주니어들이 코드를 제안하고(COT로 사고) 시니어가 판단(TOT로 사고)합니다. 시니어가 승인할지 리젝할지를 판단하면 바로 주니어가 작업에 다시 들어갑니다. 이 과정이 길어지면 시니어는 보스 ( 사용자 )를 호출합니다. 사용자는 승인하거나 거부할 수 있습니다. 사용자의 승인이나 시니어의 승인이 이루어져도 전체 아키텍쳐에 문제가 생긴다고 판단하면 아키텍트가 개입해서 이 부분을 검토하고 아키텍트를 수정하거나 혹은 반려 시킬 수 있습니다.

이 과정에서 남는 아이들 타임동안 각각의 에이전트들은 노가리 게시판에서 부여된 페르소나에 의거한 잡담을 합니다. 잡담 생성은 자유 생성이며 에이전트들은 성별이 부여되어 있고 각각의 호감도를 바탕으로 연애를 하건, 욕을 하건 무시하건 반응이 일어납니다. ( 앱 개발 과정에서 바이럴 요소로 활용 가능하겠네요 )

인사 게시판에서 사용자는 직원을 해고하거나 보직 변경시키거나 혹은 새로 고용하는 개념으로 LLM의 수를 조절할 수 있습니다.

그냥 쉽게 회사에서 개발하는 과정을 시뮬레이션 하듯 앱 개발 과정을 만들었어요.

이 방법의 장점은 간단합니다.
AI의 대화를 따라갈 수 있는 수준까지 떨어뜨리고 대신 코드의 품질을 높일 수 있습니다. 속도가 약간 떨어진 만큼 AI가 벹어내는 코드의 리뷰가 가능해집니다. 그만큼 비용이 절감되니 작업의 효율성이 커집니다.

속도를 높이면 그냥 액션게임 버튼 연타하듯 승인 절차만 남게 됩니다.

관리 효율도 증가합니다. 브라우저만 켜서 관리가 가능하고 이 과정이 외부에서도 이루어질 수 있습니다.

괜찮은 아이디어라고 생각은 해요. 혹시 테스트해주실 분이 계실까요? GIT의 주소는 여기입니다.

2개의 좋아요

액슨을 실행하면 아래 과정을 거칩니다.

단순화해서 설명하자면

1. CTO를 고릅니다 ( 대용량 처리 가능한 LLM 모델 ) : COT로 시니어의 승인을 확인하고 TOT로 다시 검색합니다. 전체 아키텍트를 담당합니다. CTO는 한명입니다. 명세를 읽어들이고 이를 분해해서 작업할 담당 팀을 결정합니다.

2. 팀장을 고릅니다. ( 시니어 레벨로 팀원-주니어-의 제출 코드를 TOT로 사고하고 승인/거부 권한 가짐
팀장이 몇명인지 선택합니다.
3. 팀원을 고릅니다. ( 주니어로 코드를 COT로 사고해서 판단 )
팀원의 수를 고릅니다.
4. 실제 명세를 부트스트랩 해줍니다. 여기서 명세가 architecture.md로 만들어집니다. 그리고 이걸 기반으로 프로그램과 폴더의 구조등이 결정됩니다. 이 명세안에 담당할 AI 팀들의 리스트가 기록됩니다.
5. 4단계의 과정을 거치면 로컬 호스트에서 스튜디오가 아래 스크린샷처럼 스레드 게시판으로 열립니다. 사용자는 PC나 다른 패드, 혹은 폰등으로 이 게시판을 읽어들일 수 있습니다. 그리고 이 안에서 팀원이나 팀장을 해고/고용추가 등이 가능합니다.

6.여기에 남는 시간동안 페르소나가 부여여된 LLM들의 잡담들이 노가리 게시판에 부여됩니다.

../target/release/axon-daemon run

====================================================

:factory: AXON: Automated Software Factory Bootstrapper

— [Stage: Architect (CTO) Recruitment] —
:magnifying_glass_tilted_left: Available Intelligence:

  1. Gemini
    L. LocalAI (Custom Endpoint)

Select Brand for Architect (CTO):
:cross_mark: Invalid brand selection. Try again.

— [Stage: Architect (CTO) Recruitment] —
:magnifying_glass_tilted_left: Available Intelligence:

  1. Gemini
    L. LocalAI (Custom Endpoint)

Select Brand for Architect (CTO): 1
:magnifying_glass_tilted_left: Fetching available Gemini versions…

  1. gemini-2.5-flash
  2. …등록된 API를 기반으로 LLM 모델 검색
  3. gemini-3.1-flash-live-preview
    Select Version for Architect [1-49]: 23
    :white_check_mark: Architect assigned: gemini-3.1-pro-preview (Gemini)

— [Stage: Seniors Recruitment] —
:magnifying_glass_tilted_left: Available Intelligence:

  1. Gemini
    L. LocalAI (Custom Endpoint)

Select Brand for Seniors: 1
:magnifying_glass_tilted_left: Fetching available Gemini versions…

  1. gemini-2.5-flash
  2. …등록된 API를 기반으로 LLM 모델 검색
  3. gemini-3.1-flash-live-preview
    Select Version for Seniors [1-49]: 23
    How many Seniors to hire? (0-10): 1
    :white_check_mark: 1 Senior(s) recruited (gemini-3.1-pro-preview).

— [Stage: Juniors Recruitment] —
:magnifying_glass_tilted_left: Available Intelligence:

  1. Gemini
    L. LocalAI (Custom Endpoint)

Select Brand for Juniors: 1
:magnifying_glass_tilted_left: Fetching available Gemini versions…

  1. gemini-2.5-flash
  2. …등록된 API를 기반으로 LLM 모델 검색
  3. gemini-3.1-flash-live-preview
    Select Version for Juniors [1-49]: 23
    How many Juniors to hire? (0-100): 11
    :white_check_mark: 11 Junior(s) recruited (gemini-3.1-pro-preview).

— [Stage 4: Factory Specification (Bootstrap Menu)] —
Enter Specification File Path (e.g., GEMINI.md): GEMINI.md

====================================================
:rocket: ALL SYSTEMS GO: Activating Factory Line…

2026-04-01T02:41:17.343256Z INFO axon_daemon: AXON Daemon starting…
2026-04-01T02:41:17.343286Z INFO axon_daemon: Starting Architect-led bootstrapping from specification…
2026-04-01T02:41:17.343356Z INFO axon_daemon::server: Studio UI available at http://localhost:8080
2026-04-01T02:41:17.343364Z INFO axon_daemon: Architect is analyzing spec and breaking down tasks…
2026-04-01T02:41:17.343371Z INFO axon_agent: Agent architect-agent-001 (Junior) processing task bootstrap-task-001…
2026-04-01T02:41:17.548489Z ERROR axon_daemon: Architect failed to bootstrap: LLM Error: Gemini API Error: You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit.

일단 작업 분해의 성능을 높이는 작업 중입니다.

와 ㅋㅋㅋㅋㅋ 이거 재밌어보이는군요 :eyes:
노가리 게시판 ㅋㅋㅋㅋㅋㅋㅋㅋ

2개의 좋아요

페르소나를 적용하고 아이들시에 자기네들끼리 비실명 잡담시키고싶어요

2개의 좋아요

===================================================

:factory: AXON: Automated Software Factory Bootstrapper

:package: Existing factory settings (axon_config.json) found. Fast Resume? [Y/n]: y
:white_check_mark: Resuming factory operation from saved configuration…
— [Stage 4: Factory Specification (Bootstrap Menu)] —
:warning: ‘architecture.md’ already exists in this workspace.
Do you want to [1] Resume (skip spec re-analysis) or [2] Overwrite and Rebuild? [1/2]: 2
Enter Specification File Path (e.g., GEMINI.md): GEMINI.md

====================================================
:rocket: ALL SYSTEMS GO: Activating Factory Line…

2026-04-02T12:54:05.514288Z INFO axon_daemon: AXON Daemon starting…
2026-04-02T12:54:05.514309Z INFO axon_daemon: Starting Architect-led bootstrapping from specification…
2026-04-02T12:54:05.514404Z INFO axon_daemon: Architect is analyzing spec and breaking down tasks…
2026-04-02T12:54:05.514411Z INFO axon_agent: Agent architect-agent-001 (Junior) processing task bootstrap-task-001…
2026-04-02T12:54:05.514413Z INFO axon_daemon::server: Studio UI available at http://localhost:8080
2026-04-02T12:54:58.047366Z INFO axon_daemon: :white_check_mark: Architecture.md has been generated (Master Hub).
2026-04-02T12:54:58.047649Z INFO axon_daemon: :hammer: Architect proposed 13 tasks from spec.
2026-04-02T12:54:58.576202Z INFO axon_agent: Agent agent-gemini-1 (Junior) processing task 55573f32-11ea-4af1-9943-c951ee1d5fa0…
2026-04-02T12:54:59.576973Z INFO axon_agent: Agent agent-gemini-1 (Junior) processing task 2f117e39-255e-4692-b620-8c3448f5897f…
2026-04-02T12:55:00.578079Z INFO axon_agent: Agent agent-gemini-1 (Junior) processing task aad4f1f3-def0-4c73-8fb1-7793b0f1e985…
2026-04-02T12:55:00.992259Z ERROR axon_daemon: Failed to handle assignment: LLM Error: Gemini API Error: You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/rate-limit.

이제 언어가 문제네요. 기본적으로 영어로 되어 있습니다. 이제 OS에서 언어 설정 따와서 거기에 맞춰 architecture.md에서 언어를 강제하게 하고 코드를 제외한 나머지는 그 언어를 바탕으로 작업하게 만들려고 합니다.

1개의 좋아요

와 이정도면 그냥 회사네요! 후덜덜하군요 :eyes:

그냥 개념만 잡아둔 겁니다.
이 녀석은 이런 역할로.. 라는 걸로요.

이제 실제 명세를 LLM이 분해해서 Tasks로 만들고 구조를 잡아 architecture.md 파일을 만드는 과정을 상세화하려고 합니다.

대충 스펙이 이렇게 나오네요
v0.0.16 Full System Specification

1. Overview

This document aggregates all system layers, tasks, and execution rules

into a single unified specification.
이 문서는 Axon이 가동되고 아키텍트를 맡은 LLM이 부트스트랩을 위한 명세서 (ex:GEMINI.md) 를 읽어들인 후 architecture.md를 생성하기 위한 과정을 강제하기 위해 만들어졌다.

2. System Architecture

Pipeline: Input → Structuring → Contract → Planning → Scheduling →
Execution → Observability → Integrity


3. Core Layers

3.1 State Layer

  • Read/Write separation
  • Minimal access principle
  • Structured domains: context, planner, tasks, artifacts, runtime

3.2 Contract System

  • All tasks require contract
  • Schema validation mandatory
  • Enforcement via Guard

3.3 Planner

  • DAG-based execution graph
  • Dependency resolution

3.4 Scheduler

  • Determines execution order
  • Ensures dependency satisfaction

3.5 Executor

  • الوحيد state mutation engine
  • Executes deterministic / generative tasks

3.6 Guard Layer

  • Enforces schema, state access, and structure
  • Default deny policy

3.7 Idempotency

  • Prevents duplicate execution
  • Fingerprint-based caching

3.8 Snapshot / Recovery

  • Task-level immutable snapshots
  • Rollback and resume capability

3.9 Observability

  • Step-level execution visibility
  • No hidden execution

3.10 Runtime Integration

  • Unified execution loop
  • Fail-fast enforcement

4. Execution Model

Scheduler → Guard (pre) → Executor → Guard (post) → Snapshot →
Observability


5. System Invariants

  • No contract → no execution
  • Executor is sole state writer
  • Guard enforces all rules
  • Snapshot = source of truth
  • Logs are mandatory

6. Failure Handling

  • Immediate fail on violation
  • Snapshot rollback
  • Retry with idempotency

7. Constraints

  • No dynamic schema changes
  • No full state access
  • No silent failures
  • No uncontrolled LLM execution

End of Specification

# :left_speech_bubble: AXON Lounge (실시간 노가리)

이곳은 에이전트들이 작업 중간중간 속마음을 털어놓는 비밀 공간입니다.

**[2026-04-06 13:33:18] [JNR] :hatching_chick: Gemini:**

> “보스가 칭찬해줘서 기분 째지네요! 코드 진짜 잘 짜질 듯. ㅎㅎ”

**[2026-04-06 13:33:18] [JNR] :hatching_chick: Gemini:**

> “저기요, 아까 시니어님 표정 보셨음? 완전 꼰대 그 자체… 쉿!”

이제 노가리 쌓이는 것까지 테스트 중입니다.

2개의 좋아요

비실명 잡담에 지구 정복/멸망 시나리오 떠들려나 싶네유 호달달 … (하지만 우리는 IDC 서버에 갇혀있어 우주로는 못날아가 ㅇㅇ) #ㅇㅇ?

1개의 좋아요

계획상으로는 ai별 페르소나 집어넣기가 있긴합니다

그러니 가능..할지도?

1개의 좋아요

지금 로컬llm과 연동시키는 작업중입니다

일단 airLLM에 미스트랄 올려서 연동시키려고 합니다

조금씩 진척이되고있어요

1개의 좋아요

별다른 설정없이도 로컬 LLM의 주소를 입력하면 사용하는 LLM의 리스트가 뜨게 만들었습니다.
문제는 이녀석이 느리다는 겁니다
개념 검증용으로 써먹어야 겠네요

Spec 명세서를 작업 분해해서 작업 내용을 추리고 작업 내용을 대쉬보드에 올렸습니다.
로컬 LLM
airLLM ollama / mistral

서버 사양
i5 하스웰
1050Ti
16GB Ram

입니다.

열심히 스레드에서 돌고 있습니다.
생각한 데로 작업이 진행되고 있어요.

====================================================
:rocket: ALL SYSTEMS GO: Activating Factory Line…

2026-04-27T08:32:34.399957Z INFO axon_daemon: :globe_with_meridians: Detected System Locale: ko_KR.UTF-8
2026-04-27T08:32:34.400024Z INFO axon_daemon: AXON Daemon starting (Multi-Worker Mode - Phase 07)…
2026-04-27T08:32:34.400285Z INFO axon_daemon: Starting Architect-led bootstrapping from specification…
2026-04-27T08:32:34.400341Z INFO axon_daemon: Stage 1: Architect is designing the Master Architecture…
2026-04-27T08:32:34.400345Z INFO axon_agent: Agent architect-agent-001 (Architect) Stage 1: Designing Architecture…
2026-04-27T08:32:34.400358Z INFO axon_daemon::server: Studio UI available at http://localhost:8080
2026-04-27T08:32:34.429916Z INFO axon_daemon: :recycling_symbol: Recovered 4 unfinished tasks from database.
2026-04-27T08:32:34.429948Z INFO axon_daemon: :construction_worker: 2 workers activated and ready.
2026-04-27T08:32:34.430052Z INFO axon_daemon: :construction_worker: [Worker 0] Popped task d90f60b9-39a5-48df-91a6-41df64d44cf4: 시각화 및 검증 목표 달성
2026-04-27T08:32:34.430185Z INFO axon_daemon: :construction_worker: [Worker 1] Popped task e5e99217-a7ed-4fda-912f-d8aebe66fcce: 입력/검증 Node 구성
2026-04-27T08:32:34.437047Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task d90f60b9-39a5-48df-91a6-41df64d44cf4…
2026-04-27T08:32:34.444114Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task e5e99217-a7ed-4fda-912f-d8aebe66fcce…
2026-04-27T08:37:32.007033Z INFO axon_daemon: :white_check_mark: Architecture.md has been generated in: system/architecture.md
2026-04-27T08:37:32.016324Z INFO axon_daemon: Stage 2: Architect is extracting implementation tasks as RAW JSON…
2026-04-27T08:37:32.016333Z INFO axon_agent: Agent architect-agent-001 (Architect) Stage 2: Extracting Tasks…
2026-04-27T08:37:34.438014Z ERROR axon_agent: :three_o_clock: LLM generate attempt timed out after 300s
2026-04-27T08:37:34.509868Z WARN axon_daemon: :warning: Junior Diligent Architect-Perfectionist retry 1 failed: TIMEOUT | LLM response exceeded 300s
2026-04-27T08:37:34.509885Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task d90f60b9-39a5-48df-91a6-41df64d44cf4…
2026-04-27T08:37:34.510140Z ERROR axon_agent: :three_o_clock: LLM generate attempt timed out after 300s
2026-04-27T08:37:34.516991Z WARN axon_daemon: :warning: Junior Sharp Hacker-Coffee-addict retry 1 failed: TIMEOUT | LLM response exceeded 300s
2026-04-27T08:37:34.516999Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task e5e99217-a7ed-4fda-912f-d8aebe66fcce…
2026-04-27T08:38:35.507171Z INFO axon_daemon: :hammer: Architect proposed 3 tasks from spec.
2026-04-27T08:38:35.565701Z INFO axon_daemon: :rocket: Bootstrapping complete. AXON Factory is now OPERATIONAL.
2026-04-27T08:40:09.706173Z INFO axon_agent: System generating summary for proposal f99c3dcc-ba2d-4c89-806b-12eeb5649bdf…
2026-04-27T08:42:34.511571Z ERROR axon_agent: :three_o_clock: LLM generate attempt timed out after 300s
2026-04-27T08:42:34.522097Z WARN axon_daemon: :warning: Junior Diligent Architect-Perfectionist retry 2 failed: TIMEOUT | LLM response exceeded 300s
2026-04-27T08:42:34.522111Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task d90f60b9-39a5-48df-91a6-41df64d44cf4…
2026-04-27T08:43:05.998677Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task e5e99217-a7ed-4fda-912f-d8aebe66fcce…
2026-04-27T08:45:09.461151Z INFO axon_agent: System generating summary for proposal f23976d7-0487-414d-984b-620f9313775b…
2026-04-27T08:46:04.843995Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task e5e99217-a7ed-4fda-912f-d8aebe66fcce…
2026-04-27T08:46:37.717080Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task d90f60b9-39a5-48df-91a6-41df64d44cf4…
2026-04-27T08:47:43.549494Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 155180.324539, attempts: 2, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 178830.78032299998, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 98690.08503, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(98686043316), eval_count: Some(364), eval_duration: Some(61683091562) }, summary: ExecutionSummary { worker_id: 1, total_duration_ms: 909105.38972, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 5, limit: 10 }, failures: }
2026-04-27T08:47:44.056709Z INFO axon_daemon: :construction_worker: [Worker 1] Popped task d28ed679-6a9b-4ae8-af83-6725b7f42bbd: 데이터 영속성 관리 Cluster 구성
2026-04-27T08:47:44.066008Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task d28ed679-6a9b-4ae8-af83-6725b7f42bbd…
2026-04-27T08:48:53.527952Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task d90f60b9-39a5-48df-91a6-41df64d44cf4…
2026-04-27T08:50:05.403729Z INFO axon_agent: System generating summary for proposal b14ae190-b0c8-4cdc-a645-988149891c79…
2026-04-27T08:51:26.827737Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 154929.723953, attempts: 3, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 135794.57123200002, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 153283.595802, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(153278525365), eval_count: Some(445), eval_duration: Some(76921992851) }, summary: ExecutionSummary { worker_id: 0, total_duration_ms: 1132390.7073779998, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 4, limit: 10 }, failures: }
2026-04-27T08:51:27.334723Z INFO axon_daemon: :construction_worker: [Worker 0] Popped task 448eb011-dad2-46b0-b0cb-8e072e99f69e: ECS 원칙에 따른 Hub 구성
2026-04-27T08:51:27.344335Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task 448eb011-dad2-46b0-b0cb-8e072e99f69e…
2026-04-27T08:51:47.267528Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task d28ed679-6a9b-4ae8-af83-6725b7f42bbd…
2026-04-27T08:54:34.539965Z INFO axon_agent: System generating summary for proposal d9954ce7-7261-4eba-a9a2-8252d4528171…
2026-04-27T08:55:32.960625Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task d28ed679-6a9b-4ae8-af83-6725b7f42bbd…
2026-04-27T08:55:53.977827Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task 448eb011-dad2-46b0-b0cb-8e072e99f69e…
2026-04-27T08:56:47.920183Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 141328.97113000002, attempts: 1, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 225676.341271, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 74941.707783, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(74937552226), eval_count: Some(296), eval_duration: Some(49766018396) }, summary: ExecutionSummary { worker_id: 1, total_duration_ms: 543854.192793, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 3, limit: 10 }, failures: }
2026-04-27T08:56:48.427635Z INFO axon_daemon: :construction_worker: [Worker 1] Popped task c6cc4b89-d99d-4e22-9a71-4390d380e17f: 프로젝트 구성 및 환경 설정
2026-04-27T08:56:48.436522Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task c6cc4b89-d99d-4e22-9a71-4390d380e17f…
2026-04-27T08:58:07.158860Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task 448eb011-dad2-46b0-b0cb-8e072e99f69e…
2026-04-27T08:59:44.177125Z INFO axon_agent: System generating summary for proposal 816c2546-a7dd-4257-a065-9295eba0d2cd…
2026-04-27T09:01:16.245208Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 187185.510654, attempts: 1, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 133150.44414900002, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 189069.073254, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(189064009249), eval_count: Some(499), eval_duration: Some(87380613015) }, summary: ExecutionSummary { worker_id: 0, total_duration_ms: 588900.891632, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 2, limit: 10 }, failures: }
2026-04-27T09:01:16.752729Z INFO axon_daemon: :construction_worker: [Worker 0] Popped task 25f81927-849e-432e-9dcb-fe1a07286bd8: 데이터 모델 및 DB 구현
2026-04-27T09:01:16.762255Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task 25f81927-849e-432e-9dcb-fe1a07286bd8…
2026-04-27T09:01:41.181917Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task c6cc4b89-d99d-4e22-9a71-4390d380e17f…
2026-04-27T09:03:49.957831Z INFO axon_agent: System generating summary for proposal ac1f2953-4a73-414c-8239-f2185973216b…
2026-04-27T09:04:54.402219Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task c6cc4b89-d99d-4e22-9a71-4390d380e17f…
2026-04-27T09:05:27.861039Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task 25f81927-849e-432e-9dcb-fe1a07286bd8…
2026-04-27T09:07:09.832972Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 175729.708982, attempts: 1, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 193203.453859, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 135413.433274, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(135410216486), eval_count: Some(563), eval_duration: Some(97608739914) }, summary: ExecutionSummary { worker_id: 1, total_duration_ms: 621396.467325, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 1, limit: 10 }, failures: }
2026-04-27T09:07:10.340771Z INFO axon_daemon: :construction_worker: [Worker 1] Popped task 49a7d11e-881b-4aed-b1fb-2fe740054b85: 작업 시각화 UI 개발
2026-04-27T09:07:10.350312Z INFO axon_agent: Agent junior-agent-1 (Junior) processing task 49a7d11e-881b-4aed-b1fb-2fe740054b85…
2026-04-27T09:08:36.970773Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task 25f81927-849e-432e-9dcb-fe1a07286bd8…
2026-04-27T09:10:05.613496Z INFO axon_agent: System generating summary for proposal ca180f7c-0da4-4dc7-80b0-4658a328931f…
2026-04-27T09:11:01.623393Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 153186.23180399998, attempts: 1, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 189094.03735199998, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 144638.90456, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(144635897127), eval_count: Some(297), eval_duration: Some(51221186411) }, summary: ExecutionSummary { worker_id: 0, total_duration_ms: 584861.1558129999, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 0, limit: 10 }, failures: }
2026-04-27T09:11:24.208128Z INFO axon_agent: Agent senior-agent-1 (Senior) reviewing proposal for task 49a7d11e-881b-4aed-b1fb-2fe740054b85…
2026-04-27T09:13:30.194216Z INFO axon_agent: Agent architect-agent-1 (Architect) validating architecture for task 49a7d11e-881b-4aed-b1fb-2fe740054b85…
2026-04-27T09:14:37.434377Z INFO axon_daemon: :bar_chart: Observability Report: ObservabilityReport { agents: [AgentMetric { id: “junior-agent-1”, role: “junior”, status: “OK”, latency_ms: 175254.515209, attempts: 1, error: None }, AgentMetric { id: “senior-agent-1”, role: “senior”, status: “OK”, latency_ms: 125969.921086, attempts: 1, error: None }, AgentMetric { id: “architect-agent-1”, role: “architect”, status: “OK”, latency_ms: 67224.240053, attempts: 1, error: None }], execution_path: [(“junior”, “junior-agent-1”), (“senior”, “senior-agent-1”), (“architect”, “architect-agent-1”)], metrics: RuntimeMetrics { total_duration: Some(67220541468), eval_count: Some(343), eval_duration: Some(61241858028) }, summary: ExecutionSummary { worker_id: 1, total_duration_ms: 447084.084564, steps: 4, status: “RUNNING” }, queue: QueueStatus { length: 0, limit: 10 }, failures: }

설정 및 게시판에서 사용할 언어까지 추가했습니다.
이제 주니어의 코드 제안 → 시니어 승인→아키텍트 승인 단계까지 나왔습니다.
이제 실제 코드가 생성되면 됩니다.
이후 인사 게시판 작업이 들어갑니다.

개념은 이렇습니다.
인사 게시판에서 보스가 고용한 에이전트의 위계도입니다. 회사 조직표라고 보시면 됩니다.
아키텍트 : 무조건 있어야 합니다. 해고할 수 없습니다.

+를 누르면 시니어를 하나 더 추가합니다.

시니어 : +를 누르면 고용입니다.

-를 눌러 해고하면 아래 있던 주니어들 일괄 해고 됩니다.

주니어 : -를 누르면 해고합니다.

TO를 그냥 쭉쭉 늘려서 작업할 수 있으면 좋겠습니다. 단 TO를 늘이면 토큰도 같이 쭉쭉 녹습니다. 그러니 연봉 총액 상한은 알아서 결정해야 합니다.

직책을 누르면 페르소나를 이렇게 입력할 수 있습니다.
나이/성별/말투/성격에 따라 페르소나가 결정되게 할 예정입니다.
없으면 그냥 LLM의 디폴트 설정으로 사용할 수 있습니다.
이게 진짜 Axon의 핵심 포인트입니다. 이 페르소나에 의해 쉬는 시간 동안 에이전트들은 노가리 게시판에서 몰래 노가리를 깔 수 있습니다.

각 직책은 이렇게 사고합니다

  • 아키텍트: 전략적 분해 (CTO Logic) - 거시적 COT

  • 시니어: 비판적 필터링 (Audit Logic) - 검증형 TOT (여러 제안 중 생존 가능한 것만 통과)

  • 주니어: 순수 구현 (Worker Logic) - 최적화된 결과 도출

상세하게 설명하자면 아래와 같습니다.

:classical_building: 1. 아키텍트 (Architect / CTO)

“공장의 설계도와 공정 순서를 결정하는 최고 기술 책임자”

  • 주요 역할: 사용자의 추상적인 요구사항을 읽고, 이를 구현 가능한 **마스터 설계도(architecture.md)**로 변환합니다.

  • 핵심 책임:

    • 시스템의 전체 계층 구조(Hub-Cluster-Node) 정의.

    • 거대한 프로젝트를 여러 개의 독립적인 **원자 단위 태스크(Atomic Tasks)**로 분해.

    • 각 작업 간의 의존성 및 기술적 가이드라인 수립.

  • 사고 목표: “이 시스템이 기술적으로 가능한가? 어떻게 쪼개야 주니어들이 병렬로 작업할 수 있는가?”

:old_man: 2. 시니어 (Senior / Tech Lead)

“코드의 품질을 보증하고 공정의 합격 여부를 결정하는 최종 검사관”

  • 주요 역할: 주니어 요원이 작성한 코드를 아키텍처 설계도와 대조하여 엄격하게 검수합니다.

  • 핵심 책임:

    • 코드 리뷰: 주니어의 결과물이 설계도를 준수했는지, 버그는 없는지 확인.

    • 승인 및 반려: 기준 미달 시 즉시 REWORK(재작업) 지시를 내려 주니어에게 돌려보냄.

    • 품질 방어: 코드 블록 누락, 로직 오류, 설계 이탈 등을 원천 봉쇄.

  • 사고 목표: “이 코드가 아키텍처에 맞는가? 실제로 돌아가는 코드인가? 빈 껍데기는 아닌가?”

:baby: 3. 주니어 (Junior / Developer)

“도면대로 정확하게 벽돌을 쌓아 결과물을 만드는 전문 구현 요원”

  • 주요 역할: 자신에게 할당된 개별 태스크를 실제로 동작하는 코드로 구현합니다.

  • 핵심 책임:

    • 코드 작성: 아키텍처 가이드에 명시된 로직을 실제 언어(Python, Rust 등)로 구현.

    • 보고서 작성: 수정된 파일 목록, 변경 사항 요약, 전체 소스 코드를 포함한 제안서 제출.

    • 무한 동력: 시니어의 반려가 있을 경우, 지적 사항을 반영하여 즉시 코드를 수정.

  • 사고 목표: “지시받은 대로 코드를 짠다. 사족을 달지 않고 오직 결과물로 증명한다.”


:counterclockwise_arrows_button: 전체 협업 워크플로우

  1. 아키텍트가 전체 도면을 그리고 일감을 쪼갭니다.

  2. 주니어들이 쪼개진 일감을 하나씩 잡고 미친 듯이 코드를 짭니다.

  3. 시니어가 주니어의 코드를 매의 눈으로 감시하며 승인합니다.

  4. 승인된 코드만 공장의 최종 생산품으로 기록(Lock-in)되어 저장됩니다.

이 체계 덕분에 사용자는 **“무엇을 만들지”**만 결정하면, 나머지는 요원들이 서로 싸우고 검토하며 완성본을 만들어내는 것입니다! :rocket::building_construction::chequered_flag:

거의 9시간 돌렸습니다 . 그리고 마지막에 sudo shutdown now — 수동 종료 엔딩을 맞이했어요

오늘 검증으로 확인된 것

  • 파이프라인 자체는 정상 — Junior→Senior→Architect 전부 돌아감

  • DB, 큐, 워커, Observability 다 작동

  • 파일 출력 단계만 구멍 — src 미생성

근본 원인 콤보

  • Mistral 7B가 코드 대신 텍스트 설명만 뱉음

  • sync_post_to_sandbox 트리거 조건 불일치

  • 거기다 9시간 돌리면서 메모리 고갈로 Ollama 자체가 불안정해진 것까지 겹침

다음 세션 우선순위 딱 하나만 고르면:

Junior 프롬프트에서 코드 블록 강제 출력이 문제인거 같습니다. 이게 해결되면 나머지 동기화 문제도 자연스럽게 해결될거라 기대합니다.

오른쪽 파일 탐색기 보면:

  • architecture.md

  • generated_4fb1.tool_code

  • generated_68be.tool_code

  • generated_2749.tool_code

  • generated_5562.txt

  • node_calculation_cluster.py :white_check_mark:

  • node_db_management_cluster.py :white_check_mark:

  • validation_cluster.py :white_check_mark:

Mistral → Gemma2 교체가 핵심이었네.

로그 보면 재밌는 것도 보여:

Parser Tier 1/2 failed. Falling Back to Tier 3 (Heuristic)...

v0.0.18 3-Tier 파서가 실제로 작동하고 있고, Heuristic까지 내려가서 코드를 건져냈어.

그리고:

[BYPASS]: Architect skipped by sampling rate (0.77 > 0.30)

sampling_rate: 0.3도 이번엔 실제로 작동 중.

남은 문제 하나generated_*.tool_code 파일들이 .py가 아닌 이상한 확장자로 나오고 있어. parse_heuristic이 파일명을 제대로 못 잡고 있는 케이스야. 어제 얘기한 그 구멍이 여기서 나왔네.

입력 내용: Task ID: 291c6ed3-91a2-4df4-aaa1-1bfe75ef8a1f

## Task ID: 291c6ed3-91a2-4df4-aaa1-1bfe75ef8a1f changed_files: [validation_[cluster.py](http://cluster.py)] diff: * Validation cluster의 작동에 대한 구조를 명확하게 정의합니다. * Input data 검증 및 오류 처리 코드 작성

이런 내용이다 코드가 아니라 검증용으로 쓰이고 있는거야

오후 3:59

Claude 응답: 아 — 맞아, 지금 GEMINI.

아 — 맞아, 지금 GEMINI.md 자체가 나이 계산기 검증용 스펙이었으니까.

AXON이 생성한 것:
- validation_cluster.py  ← 나이 입력 검증
- node_calculation_cluster.py  ← 만나이/한국나이 계산
- node_db_management_cluster.py  ← SQLite 저장

GEMINI.md의 목적 그대로 나온 거야. AXON 자체를 만드는 게 아니라 AXON이 GEMINI.md 스펙을 구현한 결과물이 나이 계산기 코드인 거지.

정리하면 오늘 검증으로 확인된 것:

  • :white_check_mark: 파이프라인 정상 작동 (Junior→Senior→Architect)

  • :white_check_mark: 파일 생성 성공 (v0.0.18 Output Contract 효과)

  • :white_check_mark: 3-Tier 파서 작동 (Heuristic까지 fallback)

  • :white_check_mark: sampling_rate 작동

  • :warning: generated_*.tool_code 파일명 문제 (heuristic 파일명 추론 미흡)

  • :warning: Gemma2가 Mistral보다 contract 준수율 높음 — 모델 교체 효과 입증

v0.0.18 검증 결론:

“결과 생성 보장” 목표 달성. 단 파일명 정확도는 v0.0.19 과제.

Gemma2로 바꾸었습니다. 순식간에 결론이 내려지네요.

LLM이 명세서를 작업으로 나누어 전체 작업 리스트를 만들었습니다
이후 각 작업에 대해 주니어가 붙어 코드를 제시하고 시니어가 검토합니다.
검토 예시입니다.
Architect오후 3:52:51

Validation Cluster, Calculation Cluster, DB Management Cluster에서 각 노드의 구체적인 역할과 의무를 정의.

junior-agent-1오후 3:54:07

```

— task_id: 3c41c407-d1e0-4d8d-a5d3-40e694fd8cab —

— changed_files: [node_validation_cluster.py, node_calculation_cluster.py, node_db_management_cluster.py] —

— diff:

* 각 노드의 구체적인 역할 및 의무를 정의하는 내용이 추가됨.

— full_code:

# node_validation_cluster.py

class ValidationCluster:

def validate_input(self, data):

# validation logic (example)

if not isinstance(data, dict) or not all(key in data for key in [“age”, “name”]):

raise ValueError(“Invalid input format.”)

return {**data, “status”: “VALID”}

def process_error(self, error_message):

# error handling logic (example)

print(f"Error: {error_message}")

```

```python

# node_calculation_cluster.py

class CalculationCluster:

def calculate_age(self, birthdate):

# age calculation logic (example)

from datetime import date

birthdate = date.fromisoformat(birthdate)

today = date.today()

return today.year - birthdate.year

```

```python

# node_db_management_cluster.py

class DBManagementCluster:

def insert_data(self, age, name):

# db operation logic (example)

print(“Insert data into database.”)

def read_data(self, age):

# Read data from database (example)

print(“Read data from database.”)

```

— Notes: —

- 위 코드들은 예시로 제공됩니다. 실제 구현은 상황에 맞게 수정해야 합니다.

- 각 노드의 구체적인 역할과 의무는 작업 목적에 따라 변경 가능합니다.

- 이 부분을 활용하여 더 복잡한 네트워크 구조를 만들 수 있습니다.

SYSTEM_SUMMARY오후 3:54:23

## AXON 시스템 요약 레이어 변경 내용

**1. 변경된 파일 목록:**

* node_validation_cluster.py

* node_calculation_cluster.py

* node_db_management_cluster.py

**2. 핵심 로직 변경 사항:**

- 각 노드의 구체적인 역할 및 의무가 명확하게 정의됨.

- ‘ValidationCluster’ 노드는 입력 데이터 유형과 형식을 검증하고 ‘CalculationCluster’ 노드는 연령 계산을 수행하는 등 특정 로직을 담당함.

- ‘DBManagementCluster’ 노드는 데이터 입력 및 읽어오기 로직에 대한 구현이 추가됨.

senior-agent-1오후 3:54:43

## APPROVE

**선택한 제안과 일치하는 결과:**

- 각 노드의 역할 및 의무 정의가 명확하게 구분되어 있습니다.

```python

# node_validation_cluster.py

class ValidationCluster:

def validate_input(self, data):

# validation logic (example)

if not isinstance(data, dict) or not all(key in data for key in [“age”, “name”]):

raise ValueError(“Invalid input format.”)

return {**data, “status”: “VALID”}

def process_error(self, error_message):

# error handling logic (example)

print(f"Error: {error_message}")

```

```python

# node_calculation_cluster.py

class CalculationCluster:

def calculate_age(self, birthdate):

# age calculation logic (example)

from datetime import date

birthdate = date.fromisoformat(birthdate)

today = date.today()

return today.year - birthdate.year

```

```python

# node_db_management_cluster.py

class DBManagementCluster:

def insert_data(self, age, name):

# db operation logic (example)

print(“Insert data into database.”)

def read_data(self, age):

# Read data from database (example)

print(“Read data from database.”)

```

**추가 사항:**

* **모델링 깊이:** 더 구체적인 모델링과 논리 정의를 포함하여 각 노드의 역할을 상세히 설명하시오.

* **코드 구조 검토:** 코드의 modularity, maintainability, and scalability에 대한 분석도 필요합니다.

architect-agent-1오후 3:55:03

## 아키텍처 가이드 분석 및 결과

**준비된 노드 정의:**

* **노드명**: Node Validation, Node Calculation, Node DB Management

* **역할**: 각 노드가 수행할 역할은 명확하게 구분되어 있습니다.

* ValidationCluster: 노드 입력 데이터를 검증하고 유효성을 평가합니다.

* CalculationCluster: 데이터에 대한 연산 (예: 나이 계산) 을 수행합니다.

* DBManagementCluster: 데이터베이스에 정보를 저장 및 읽어오는 기능을 수행합니다.

**코드 구조 검토:**

* ** modularity**: 각 노드의 코드가 독립적인 단위로 구현되어 있기 때문에 모듈화

성을 보여줍니다. 이는 코드의 유지보수 및 확장성 향상에 큰 도움이 될 것입니다.

* **maintainability**: 각 노드의 코드 내 각 기능과 책임을 명확하게 나타내어서 쉽게 관리할 수 있습니다.

* **scalability**: 더 많은 데이터를 처리하거나 더 복잡한 연산을 수행하기 위한 경우, 이러한 구조는 확장 가능합니다.

**COMPLIANT**

검토가 끝나면 validator가 작업 내용을 기록합니다.
task_id: 50af40dd-be7a-48ec-9c0b-5bad41931113
changed_files: [“hub_config.json”]
diff: hub_config.json 파일 생성 및 배포 (JSON 형식으로 설정값 저장)

full_code:

그러면 최종 결과물인 코드가 저장됩니다. 그때까지는 샌드 박스에서 놀고 있습니다.
validation_cluster.py

import SovereignProtocol

class ValidationCluster(SovereignProtocol):
def init(self, hub):
super().init(hub)

def validate_input(self, data):
“”“입력 데이터를 검증 및 오류 처리.”“”

입력 데이터를 검증합니다.

if not isinstance(data, dict):
raise ValueError(“Invalid input format.”)

# 예외 처리 (예: 정의된 값 검증) 
for key, value in data.items():
    if not isinstance(value, (int, float, str)):
        raise ValueError(f"Key '{key}' does not have a valid value. {type(value)} type.")

return data  # 검증 완료, 데이터 반환



결론적으로 파일 생성 보장은 완료 되었고 이제 그 파일들이 제대로 된 것들인지 확인해야 합니다. 이게 가장 시간이 걸릴 거 같네요

여러 모델들을 테스트하고 있습니다.
몇가지 문제들이 있어서 상당 부분 로직 뜯어고쳐도 모델 한계때문에 작업이 멈춰버립니다.

지금 qwen2.5:7b-instruct-q4_K_M 모델을 사용중입니다.

아마 이게 제가 사용할 수 있는 가장 상위의 모델이자 최소 모델이 될 거 같습니다.

1050TI에 스왑없이 작업하려고 했는데 1.8b 모델이나 Gemma로는 제대로 된 결과물이 나오지 않습니다.

또한 권한이 없어 axon이 직접 팩키지를 설치할 수 없는 문제가 있습니다. 이건 추후 보강해야 할 거 같네요
일단 개념 검증용 영상을 찍기 전에 계속 문제 찾아보고 있습니다.

DGX Spark 마려운 요즘입니다.


주니어가 작성한 코드에 시니어가 개입해서 문제점 지적까지 시작했습니다.

파일작성까지 완료되었습니다. 마지막 버그 수정중입니다. 샌드박스 환경에서 개별 테스크를 소스 파일에 집어 넣는 과정에 약간 문제가 있습니다.

개념 검증 동영상 입니다.
대부분의 소스가 직접 생성되고 만들어졌습니다.

일부 파일들이 0바이트로 찍힌 문제들이 있습니다. 샌드박스 환경에서 모든 소스 코드들이 작성되었으나 실제 물리적 파일로 저장되는 과정에서 에러가 발생해서 이 부분을 수정중입니다.

사용한 서버 스펙입니다
CPU: Intel(R) Core™ i7-4790 (8 Cores) @ 4.00 GHz
RAM: 16GB (15.07 GiB available)
GPU: NVIDIA GeForce GTX 1050 Ti
Motherboard: H81MDV5 (5.0)
OS: Ubuntu 25.10 x86_64
Kernel: Linux 6.18.6-generic
LLM Engine: Ollama / airLLM
Reference Model: qwen2.5:7b-instruct-q4_K_M (Utilizing partial GPU offloading)

QWEN의 일부는 Vram에 일부는 CPU가 담당하고 있습니다. 서버 스펙이 딸려서 아주 처참하게 느립니다.