ResolveAgent
2026 Agent Engineering | ้ขๅ้ฎ้ข่งฃๅณ็ AIOps ๆบ่ฝไฝ
๐ง Intelligent Selector ยท ๐ณ Hybrid Planner ยท ๐พ Hierarchical Memory ยท ๐ง ToolHub ยท ๐ Loop Engineering
๐ Overview | ๆฆ่ฟฐ
ResolveAgent ๆฏๅบไบ 2026 Agent Engineering ๆไฝณๅฎ่ทตๆๅปบ็็ไบง็บง AIOps ๆบ่ฝไฝๅนณๅฐใ
ๆ ธๅฟๆถๆ | Core Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ RESOLVEAGENT โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Client โโโโโถโ Higress โโโโโถโ Platform (Go) โ โ
โ โ CLI/UI โ โ Gateway โ โ Registry โ Auth โ Route โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Agent Runtime (Python) โ โ
โ โ โ โ
โ โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโ โ โ
โ โ โSelector โ โPlanner โ โMemory โ โ โ
โ โ โ +Audit โ โ+ReAct โ โ+Hub โ โ โ
โ โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโ โ โ
โ โ โ FTA โ โ Skills โ โ RAG โ โ โ
โ โ โ Engine โ โ +ToolHubโ โPipelineโ โ โ
โ โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ AgentMessageBus (Pub/Sub) โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅไบๅคงๆถๆ็นๆง | 12 Architecture Highlights
| # |
็นๆง |
ๆจกๅ |
่ฏดๆ |
| 1 |
Intelligent Selector |
selector/ |
ๆๅพๅๆ + ไธไธๆไธฐๅฏ + ่ทฏ็ฑๅณ็ญ |
| 2 |
Decision Audit Logger |
selector/audit.py |
ๅฎๆด่ทฏ็ฑๅณ็ญๅฎก่ฎก่ฟฝ่ธช |
| 3 |
Hierarchical Memory |
memory.py |
Working/Episodic/Long-term ไธๅฑ่ฎฐๅฟ |
| 4 |
Hybrid Planner |
planning.py |
REACTIVE + DELIBERATIVE ๅๆจกๅผ |
| 5 |
ToolHub |
toolhub.py |
ๅทฅๅ
ทๅ็ฐ + Schemaๆณจๅ + Capabilityๆ ๅฐ |
| 6 |
Resilience |
resilience.py |
CircuitBreaker + FallbackCascade |
| 7 |
AgentMessageBus |
message_bus.py |
่ฎข้
-ๅๅธๆถๆฏๆป็บฟ |
| 8 |
gRPC Server |
runtime/server.py |
ๅธฆ HTTP fallback ็ gRPC ๆๅก |
| 9 |
Resilient Selector |
selector/resilient_selector.py |
ๅ้ฆ้ฉฑๅจ่ช้ๅบ่ทฏ็ฑ๏ผๅคฑ่ดฅ้่ฏ + ไธไธๆ้ไธฐๅฏ + ๆธ่ฟ้็บง |
| 10 |
Feedback Loop |
pkg/feedback/ |
Observe-Orient-Decide-Act ๆ็ปญๅ้ฆ้ญ็ฏ๏ผไฟกๅทๆถ้ โ ่ๅ โ ๅๅ |
| 11 |
Circuit Breaker |
pkg/circuitbreaker/ |
ไธๆ็ๆญๅจ่ชๆ่ฟ็ปด๏ผClosed โ Open โ HalfOpen โ Closed |
| 12 |
Adaptive Selector |
selector/resilient_selector.py |
ๅบไบๅ้ฆ็ๆ้ๅจๆ่ฐๆด + ๆถ้ด่กฐๅ + ่ชๅจ้็บง |
๐๏ธ Architecture Deep Dive | ๆถๆๆทฑๅบฆ่งฃๆ
1. Intelligent Selector | ๆบ่ฝ้ๆฉๅจ
# selector/selector.py
class IntelligentSelector:
"""ไธๅฑ่ทฏ็ฑๆถๆ"""
async def route(input_text, agent_id, context):
# 1. Intent Analysis - ๆๅพๅ็ฑป
intent = await intent_analyzer.classify(input_text)
# 2. Context Enrichment - ไธไธๆไธฐๅฏ
enriched = await context_enricher.enrich(
input_text, agent_id, context
)
# - ่ฎฐๅฟๆฅ่ฏข (MemoryClient)
# - ๅๅฅฝๆจๆญ (_infer_user_preferences)
# - ไปฃ็ ๆฃๆต (_analyze_code_context)
# 3. Route Decision - ่ทฏ็ฑๅณ็ญ
decision = await route_decider.decide(
intent_type=intent.type,
confidence=intent.confidence,
context=enriched
)
# 4. Audit Logging - ๅฎก่ฎก่ฎฐๅฝ
await audit_logger.log(decision, enriched, latency_ms)
return decision
่ทฏ็ฑ็ญ็ฅ:
rule - ๅฟซ้็ฒพ็กฎๆจกๅผ
llm - LLM ๆบ่ฝๅ็ฑป
hybrid - ่งๅไผๅ
+ LLM ๅ้ (ๆจ่)
2. Decision Audit Logger | ๅณ็ญๅฎก่ฎก
# selector/audit.py
@dataclass
class AuditRecord:
timestamp: str
decision_type: str # fta/skill/rag/direct
confidence: float
reasoning: str
context_snapshot: dict # skills_count, code_issues, etc.
latency_ms: float
็นๆง:
- ๅผๆญฅๅๅ
ฅ๏ผไธ้ปๅกไธปๆต็จ
- ๆฏๆๆไน
ๅๅฐ Go Platform Store
- ๅฎๆด็ไธไธๆๅฟซ็
ง
3. Hierarchical Memory | ๅๅฑ่ฎฐๅฟ
# memory.py
class HierarchicalMemory:
"""ไธๅฑ่ฎฐๅฟๆถๆ"""
# Layer 1: Working Memory (in-process)
working = WorkingMemory(max_size=20) # Rolling window
# Layer 2: Episodic Memory (Redis)
episodic = EpisodicMemoryClient(redis_url="redis://...")
# Layer 3: Long-term Memory (RAG Vector DB)
long_term = LongTermMemoryClient(collection="long_term_memory")
่ฎฐๅฟๆตๅจ:
User Message โ Working Memory (ๅฎๆถ)
โ Episodic Memory (session ๅ็ผฉ)
โ Long-term Memory (importance > 0.7)
4. Hybrid Planner | ๆททๅ่งๅๅจ
# planning.py
class PlanningMode(Enum):
REACTIVE = "reactive" # ๅฟซ้ๅๅบ
DELIBERATIVE = "deliberative" # ๆทฑๆ็่
class HybridPlanner:
async def create_plan(goal, mode):
if mode == REACTIVE:
# ๅๆญฅๆง่ก
return Plan(steps=[...])
else:
# LLM ๅ่งฃไธบๅคๆญฅ้ชค
return await self._llm_decompose_plan(goal)
ๆง่กๆต็จ:
DELIBERATIVE ๆจกๅผ:
1. LLM ๅ่งฃ็ฎๆ โ ๅญๆญฅ้ชค
2. ๆง่กๆฏๆญฅ้ชค โ ็ๆง็ถๆ
3. ๅคฑ่ดฅๆถ่งฆๅ Replan
4. ๆๅค้่ฏ 3 ๆฌก
REACTIVE ๆจกๅผ:
1. ็ดๆฅ ReAct ๅพช็ฏ
2. Thought โ Action โ Observation
# toolhub.py
class ToolHub:
"""ๅทฅๅ
ท็ปไธ็ฎก็"""
registry = SchemaRegistry() # Schema ็ๆฌ็ฎก็
capability_map = CapabilityMap() # ่ฝๅ็ดขๅผ
security = SecurityPolicy() # ๆ้ๆงๅถ
async def execute(tool_name, parameters):
if not security.can_use(tool_name, user_roles):
return {"success": False, "error": "Access denied"}
handler = discovery.get_handler(tool_name)
result = await handler(**parameters)
security.audit(tool_name, user_id, "execute", success)
return result
ๅทฅๅ
ท่ฝๅ:
| ่ฝๅ |
่ฏดๆ |
WEB_SEARCH |
็ฝ้กตๆ็ดข |
CODE_EXECUTION |
ไปฃ็ ๆง่ก |
FILE_OPERATIONS |
ๆไปถๆไฝ |
CODE_ANALYSIS |
ไปฃ็ ๅๆ |
SECURITY_SCAN |
ๅฎๅ
จๆซๆ |
6. Resilience | ๅผนๆงๆจกๅผ
# resilience.py
class CircuitBreaker:
"""็ๆญๅจไฟๆคไธๆธธๆๅก"""
failure_threshold = 5
reset_timeout = 30.0
# States: CLOSED โ OPEN โ HALF_OPEN โ CLOSED
class FallbackCascade:
"""ๅค็บง้็บง็ญ็ฅ"""
async def execute(*strategies):
for strategy in strategies:
try:
return await strategy()
except Exception as e:
continue # ๅฐ่ฏไธไธไธช
return FallbackResult(success=False)
้็บง่ทฏๅพ:
MCP Tool โ Native Skill โ LLM Direct โ Cached Response
7. AgentMessageBus | ๆถๆฏๆป็บฟ
# message_bus.py
class AgentMessageBus:
"""่ฎข้
-ๅๅธๆถๆฏๆป็บฟ"""
async def subscribe(agent_id, channel, callback):
"""่ฎข้
้ข้"""
async def publish(message: AgentMessage):
"""ๅๅธๆถๆฏ"""
async def request(sender, channel, content, timeout):
"""่ฏทๆฑ-ๅๅบๆจกๅผ"""
ๆถๆฏๆจกๅผ:
- Pub/Sub - ๅๅธ่ฎข้
- Request/Response - ่ฏทๆฑๅๅบ (ๅธฆ correlation_id)
- Broadcast - ๅนฟๆญ
8. gRPC Server | gRPC ๆๅก
# runtime/server.py
class AgentExecutionServer:
async def start(self):
try:
# ไผๅ
ไฝฟ็จ gRPC + Protobuf
server = grpc.aio.server()
agent_pb2_grpc.add_AgentExecutionServiceServicer_to_server(
AgentExecutionServicer(self._engine), server
)
except ImportError:
# Fallback ๅฐ aiohttp HTTP ๆๅกๅจ
await self._start_http_fallback()
9. Resilient Selector | ๅผนๆง่ช้ๅบ่ทฏ็ฑ
# selector/resilient_selector.py
class ResilientSelector:
"""Feedback-driven adaptive routing with graceful degradation"""
MAX_RETRIES = 3
ROUTE_PRIORITY = ["skill", "rag", "fta", "code_analysis"]
async def route_and_execute(self, input_text, agent_id, executor):
tried_routes = set()
for attempt in range(self.MAX_RETRIES + 1):
# 1. Enrich context (first time: full, subsequent: incremental)
ctx = await self._enrich(input_text, agent_id, attempt, tried_routes)
# 2. Route decision (exclude tried routes)
decision = await self._selector.route(input_text, agent_id, context=ctx)
# 3. Execute
result = await executor(decision)
if result.success:
return result
# 4. Record failure for next iteration
tried_routes.add(decision.route_type)
ctx["last_failure"] = {"route": decision.route_type, "error": result.error}
# Final fallback: Code Analysis
return await self._code_analysis_fallback(input_text, agent_id)
้็บง่ทฏๅพ:
Skill (ๅฟซ้็ฒพ็กฎ) โ RAG (็ฅ่ฏๆฃ็ดข) โ Workflow (LLM ๆจ็) โ Code Analysis (ๆทฑๅบฆๅ
ๅบ)
ๆ ธๅฟๆๆณ: ๆฏไธๆฌกๅคฑ่ดฅ้ฝไธๆฏๆตช่ดน๏ผ่ๆฏไธบไธไธๆฌก่ทฏ็ฑๅณ็ญๆไพๆดไธฐๅฏ็ไธไธๆใ
10. Loop Engineering | ๅพช็ฏๅทฅ็จ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Loop Engineering ้ญ็ฏ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Observe Orient Decide Act โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ Health โ โAggregatorโ โ Alert โ โ Circuit โ โ
โ โ Retry โโโโโโถโ (ๆปๅจ โโโโโโถโ Engine โโโโโโถโ Breaker โ โ
โ โ Workflowโ โ ็ชๅฃ) โ โ (่งๅ) โ โ Adaptive โ โ
โ โ Telemetry โ โ โ โ โ Weight โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโ โ
โ โ Feedback Dispatch โ โ
โ โ Log โ Webhook โ NATS โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ไธๅคงๆฏๆฑ:
| ๆฏๆฑ |
่ฏดๆ |
ๅฎ็ฐ |
| ๆ็ปญๅ้ฆๅพช็ฏ |
ไฟกๅทๆถ้ โ ่ๅ โ ๅๅ็้ญ็ฏ |
pkg/feedback/ (Go) + fta/feedback_loop.py (Python) |
| ่ชๆ่ฟ็ปด |
ไธๆ็ๆญๅจไฟๆคไธๆธธ๏ผ่ชๅจๆขๅค |
pkg/circuitbreaker/ |
| ่ช้ๅบ่กไธบ |
ๅบไบๅ้ฆ็่ทฏ็ฑๆ้ๅจๆ่ฐๆด |
AdaptiveWeightAdjuster |
# Go: ๅๅฐๅ้ฆไฟกๅท
collector.Emit(ctx, feedback.FeedbackSignal{
Source: feedback.SourceHealth,
Event: feedback.EventHealthDegraded,
Severity: feedback.SeverityWarn,
Message: "Service health degraded",
})
# Python: FTA ๅทฅไฝๆตๅ้ฆๅพช็ฏ
loop = FeedbackLoop(history_window=100)
suggestions = loop.record(metrics)
# โ [ImprovementSuggestion(target="selector", priority="high", ...)]
๐ ่ฏฆ่ง Loop Engineering ๆๆกฃ
11. Circuit Breaker | ไธๆ็ๆญๅจ
// pkg/circuitbreaker/breaker.go
breaker := circuitbreaker.New(circuitbreaker.Config{
Name: "downstream-api",
FailureThreshold: 5,
RecoveryTimeout: 30 * time.Second,
HalfOpenMaxCalls: 3,
Observer: feedbackObserver, // ็ถๆๅๅ โ ๅ้ฆไฟกๅท
})
err := breaker.Execute(ctx, func(ctx context.Context) error {
return callDownstreamAPI(ctx, request)
})
็ถๆๆบ:
CLOSED โโ[failures >= 5]โโโถ OPEN
โฒ โ
โ [30s timeout]
โ โผ
CLOSED โโโ[probe ok]โโ HALF_OPEN
12. Adaptive Selector | ่ช้ๅบ้ๆฉๅจ
# selector/resilient_selector.py
adjuster = AdaptiveWeightAdjuster(default_weight=1.0)
# ๆฏๆฌกๆง่กๅ่ฎฐๅฝ็ปๆ
adjuster.record_outcome("skill", success=True, latency_ms=120)
adjuster.record_outcome("rag", success=False, latency_ms=3500)
# ๆถ้ด่กฐๅ๏ผๆ้ๅไธญๆงๅผ 1.0 ๅๅฝ
adjuster.apply_decay(decay_factor=0.95)
# ่ทๅๅฝๅๆ้
weights = adjuster.get_weights()
# โ {"skill": 1.15, "rag": 0.85, "fta": 1.02, "code_analysis": 0.98}
๐ Quick Start | ๅฟซ้ๅผๅง
็ฏๅข่ฆๆฑ
| Dependency |
Version |
| Go |
>= 1.22 |
| Python |
>= 3.11 |
| Docker |
>= 20.10 |
ๅฏๅจๆๅก
# ๅ
้ไปๅบ
git clone https://github.com/ai-guru-global/resolve-agent.git
cd resolve-agent
# ๅฏๅจไพ่ต
make compose-deps
# ๆๅปบ
make build
# ๅฏๅจ
make compose-up
# ่ฎฟ้ฎ
# - API: http://localhost:8080
# - WebUI: http://localhost:3000
Python Agent ็คบไพ
from resolveagent.selector.selector import IntelligentSelector
from resolveagent.memory import HierarchicalMemory
from resolveagent.planning import HybridPlanner, PlanningMode
# ๅๅงๅ
selector = IntelligentSelector(strategy="hybrid")
memory = HierarchicalMemory(session_id="session-1")
planner = HybridPlanner()
# ่ทฏ็ฑ่ฏทๆฑ
decision = await selector.route(
input_text="ๅๆไปฃ็ ไธญ็ๅฎๅ
จๆผๆด",
agent_id="my-agent"
)
# โ RouteDecision(route_type="code_analysis", confidence=0.85)
# ่งๅๆง่ก (Deliberative ๆจกๅผ)
plan = await planner.create_plan(
goal="่ฏๆญ API 500 ้่ฏฏ",
mode=PlanningMode.DELIBERATIVE
)
# โ Plan(steps=[Step(gather_info), Step(diagnose), Step(fix)])
# ่ฎฐๅฟ็ฎก็
memory.add("user", "ๆๆณ้จ็ฝฒๅฐ k8s", importance=0.8)
recent = memory.get_recent(limit=10)
๐ Feature Status | ๅ่ฝ็ถๆ
v0.4.0 | 2026-07 Loop Engineering Complete
ๆถๆ็ปไปถ
| ็ปไปถ |
็ถๆ |
ๆไปถ |
| Intelligent Selector |
๐ข Ready |
selector/selector.py |
| Decision Audit Logger |
๐ข Ready |
selector/audit.py |
| Context Enricher |
๐ข Ready |
selector/context_enricher.py |
| Route Decider |
๐ข Ready |
selector/router.py |
| Hierarchical Memory |
๐ข Ready |
memory.py |
| Hybrid Planner |
๐ข Ready |
planning.py |
| ReAct Executor |
๐ข Ready |
planning.py |
| ToolHub |
๐ข Ready |
toolhub.py |
| Schema Registry |
๐ข Ready |
toolhub.py |
| Capability Map |
๐ข Ready |
toolhub.py |
| Security Policy |
๐ข Ready |
toolhub.py |
| Circuit Breaker (Python) |
๐ข Ready |
resilience.py |
| Fallback Cascade |
๐ข Ready |
resilience.py |
| Agent Message Bus |
๐ข Ready |
message_bus.py |
| Message Bus Registry |
๐ข Ready |
message_bus.py |
| gRPC Server |
๐ข Ready |
runtime/server.py |
| Resilient Selector |
๐ข Ready |
selector/resilient_selector.py |
| Feedback Collector |
๐ข New |
pkg/feedback/collector.go |
| Feedback Ring Buffer |
๐ข New |
pkg/feedback/ring_buffer.go |
| Feedback Aggregator |
๐ข New |
pkg/feedback/aggregator.go |
| Feedback Dispatchers |
๐ข New |
pkg/feedback/dispatcher.go |
| Alert Engine |
๐ข New |
pkg/feedback/alerts.go |
| Circuit Breaker (Go) |
๐ข New |
pkg/circuitbreaker/breaker.go |
| Adaptive Weight Adjuster |
๐ข New |
selector/resilient_selector.py |
| FTA Feedback Loop |
๐ข New |
fta/feedback_loop.py |
| Regression Validator |
๐ข New |
fta/regression_validator.py |
| Hook Chain Pattern |
๐ข New |
hooks/patterns.py |
ๆ ธๅฟๅผๆ
| ๅผๆ |
็ถๆ |
่ฏดๆ |
| FTA Engine |
๐ข Ready |
ๆ
้ๆ ๅๆ |
| RAG Pipeline |
๐ข Ready |
ๆฃ็ดขๅขๅผบ็ๆ |
| Skill Executor |
๐ข Ready |
ๆ่ฝๆง่ก + ๆฒ็ฎฑ |
| LLM Providers |
๐ข Ready |
6 ไธช Provider |
| MCP Adapter |
๐ข Ready |
Model Context Protocol |
๐๏ธ Project Structure | ้กน็ฎ็ปๆ
resolve-agent/
โโโ api/
โ โโโ proto/resolveagent/v1/ # Protocol Buffers
โโโ cmd/
โ โโโ resolveagent-cli/ # CLI ๅบ็จ
โ โโโ resolveagent-server/ # Platform Server
โโโ pkg/ # Go ๅนณๅฐๆๅก
โ โโโ circuitbreaker/ # ๐ Loop Engineering: ็ๆญๅจ
โ โโโ config/
โ โโโ event/
โ โโโ feedback/ # ๐ Loop Engineering: ๅ้ฆๅพช็ฏ
โ โโโ gateway/
โ โโโ health/ # ๅฅๅบทๆฃๆฅ + ๅ้ฆ้ๆ
โ โโโ registry/
โ โโโ retry/ # ้่ฏๆบๅถ + ่งๅฏๅจ
โ โโโ server/
โ โโโ store/ # Store ๆจกๅผๆฝ่ฑก
โโโ python/src/resolveagent/
โ โโโ selector/ # ๐ง ๆบ่ฝ้ๆฉๅจ
โ โ โโโ audit.py # Decision Audit Logger
โ โ โโโ cache.py # ่ทฏ็ฑๅณ็ญ็ผๅญ
โ โ โโโ context_enricher.py # ไธไธๆไธฐๅฏ
โ โ โโโ intent.py # ๆๅพๅๆ
โ โ โโโ resilient_selector.py # ๐ ๅผนๆง่ช้ๅบ + AdaptiveWeightAdjuster
โ โ โโโ router.py # ่ทฏ็ฑๅณ็ญ
โ โ โโโ strategies/ # ่ทฏ็ฑ็ญ็ฅ
โ โโโ memory.py # ๐พ ๅๅฑ่ฎฐๅฟ
โ โโโ planning.py # ๐ณ ๆททๅ่งๅๅจ
โ โโโ toolhub.py # ๐ง ๅทฅๅ
ทไธญๅฟ
โ โโโ resilience.py # ๐ก๏ธ ๅผนๆงๆจกๅผ
โ โโโ message_bus.py # ๐ก ๆถๆฏๆป็บฟ
โ โโโ fta/ # FTA ๅผๆ + ๐ ๅ้ฆๅพช็ฏ
โ โ โโโ engine.py # ๆ
้ๆ ๅๆๅผๆ
โ โ โโโ feedback_loop.py # ๐ ๅทฅไฝๆตๅ้ฆๅพช็ฏ
โ โ โโโ regression_validator.py # ๐ ๅๅฝ้ช่ฏๅจ
โ โโโ hooks/ # ็ๅฝๅจๆ้ฉๅญ
โ โ โโโ patterns.py # ๐ Hook ้พๆจกๅผๆจกๆฟ
โ โโโ agent/ # Agent ๅฎไน
โ โโโ rag/ # RAG ็ฎก้
โ โโโ skills/ # ๆ่ฝ็ณป็ป
โ โโโ llm/ # LLM ๆไพ่
โ โโโ mcp/ # MCP ้้
ๅจ
โ โโโ runtime/ # ่ฟ่กๆถ
โโโ .github/workflows/ # ๐ CI/CD ๆตๆฐด็บฟ
โ โโโ ci.yaml # ไธป CI (lintโtestโbuildโquality-gate)
โ โโโ e2e.yaml # E2E ๆต่ฏ (PostgreSQL + Redis)
โ โโโ release.yaml # ๅๅธๆตๆฐด็บฟ (Docker + Helm)
โโโ hack/ # ๅผๅๅทฅๅ
ท่ๆฌ
โ โโโ quality-gate.sh # ๐ ่ดจ้้จ็ฆ
โ โโโ coverage-report.sh # ๐ ่ฆ็็ๆฅๅ
โโโ test/ # ๆต่ฏๅฅไปถ
โ โโโ e2e/ # E2E ๆต่ฏ + ๅ้ฆๅพช็ฏ้ช่ฏ
โ โโโ integration/ # ้ๆๆต่ฏ + API ๅฅ็บฆๆต่ฏ
โ โโโ fixtures/ # ๆต่ฏๅบ็บฟๆฐๆฎ
โโโ web/ # ๐ React WebUI
โโโ deploy/ # ้จ็ฝฒ้
็ฝฎ
โโโ docs/ # ๆๆกฃ
๐ง Configuration | ้
็ฝฎ
็ฏๅขๅ้
# LLM ้
็ฝฎ
LLM_DEFAULT_MODEL=qwen-plus
LLM_API_KEY=your-api-key
HIGRESS_URL=http://localhost:8080
# ่ฎฐๅฟ้
็ฝฎ
REDIS_URL=redis://localhost:6379
MILVUS_URL=http://localhost:19530
# MCP ้
็ฝฎ
MCP_ENABLED=true
MCP_STDIO_SERVERS=[]
# ๅฎๅ
จ้
็ฝฎ
AUTH_ENABLED=true
RATE_LIMIT_PER_MINUTE=100
# Loop Engineering ้
็ฝฎ
FEEDBACK_ENABLED=true
FEEDBACK_RING_BUFFER_SIZE=1000
CIRCUIT_BREAKER_ENABLED=true
CIRCUIT_BREAKER_FAILURE_THRESHOLD=5
๐ Documentation | ๆๆกฃ
๐งช Testing | ๆต่ฏ
# Python ๅๅ
ๆต่ฏ
cd python && .venv/bin/python -m pytest tests/unit/ -v
# Go ๆต่ฏ
go test -race -coverprofile=coverage.out ./...
# WebUI ๆต่ฏ
cd web && pnpm run test
# ๅฎๆดๆต่ฏ
make test
๐ Metrics | ๆๆ
| ๆๆ |
่ฏดๆ |
resolveagent_selector_decisions_total |
่ทฏ็ฑๅณ็ญๆปๆฐ |
resolveagent_selector_cache_hit_rate |
็ผๅญๅฝไธญ็ |
resolveagent_audit_records_total |
ๅฎก่ฎก่ฎฐๅฝๆฐ |
resolveagent_memory_promotions_total |
่ฎฐๅฟๆฒๆทๆฐ |
resolveagent_planner_replans_total |
Replan ๆฌกๆฐ |
resolveagent_toolhub_executions_total |
ๅทฅๅ
ทๆง่กๆฐ |
resolveagent_circuit_breaker_state |
็ๆญๅจ็ถๆ (0=closed, 1=open, 2=half_open) |
resolveagent_message_bus_messages_total |
ๆถๆฏๆปๆฐ |
resolveagent_feedback_signals_total |
๐ ๅ้ฆไฟกๅทๆปๆฐ (by source, event) |
resolveagent_feedback_loop_duration_seconds |
๐ ๅ้ฆๅพช็ฏๅค็่ๆถ |
resolveagent_retry_exhausted_total |
๐ ้่ฏ่ๅฐฝๆฌกๆฐ |
resolveagent_workflow_success_rate |
๐ ๅทฅไฝๆตๆๅ็ |
resolveagent_adaptive_selector_weights |
๐ ่ช้ๅบ้ๆฉๅจๆ้ (by route_type) |
๐ WebUI | Web ็้ข
่ฎฟ้ฎ http://localhost:3000 ๆฅ็ๅฏ่งๅ็้ข๏ผ
- Agent ็ฎก็ - ๅๅปบใ้
็ฝฎใ็ๆง Agent
- ๅทฅไฝๆต็ผ่พๅจ - ๅฏ่งๅ FTA ๅทฅไฝๆต
- ่ฎฐๅฟ้ขๆฟ - ๆฅ็ไธๅฑ่ฎฐๅฟ็ถๆ
- ๅฎก่ฎกๆฅๅฟ - ๅฎๆด่ทฏ็ฑๅณ็ญ่ฟฝ่ธช
- ๅทฅๅ
ทๅธๅบ - ToolHub ๅฏ่งๅ
- ๆถๆๅฏ่งๅ - ็ณป็ปๆถๆๆป่ง + Loop Engineering ้ญ็ฏๅพ
- ็ๆงๅ่ญฆ - ๅ้ฆไฟกๅทไปช่กจ็ + ็ๆญๅจ็ถๆ + ่ช้ๅบๆ้
๐ License
Apache 2.0 License - ่ง LICENSE
๐ Acknowledgments