resolve-agent

module
v0.0.0-...-44a576d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2026 License: Apache-2.0

README ยถ

ResolveAgent Logo

ResolveAgent

2026 Agent Engineering | ้ขๅ‘้—ฎ้ข˜่งฃๅ†ณ็š„ AIOps ๆ™บ่ƒฝไฝ“

๐Ÿง  Intelligent Selector ยท ๐ŸŒณ Hybrid Planner ยท ๐Ÿ’พ Hierarchical Memory ยท ๐Ÿ”ง ToolHub ยท ๐Ÿ”„ Loop Engineering

Release License CI Status Go


๐ŸŒŸ 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

5. ToolHub | ๅทฅๅ…ทไธญๅฟƒ

# 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 | ๆ–‡ๆกฃ

ๆ–‡ๆกฃ ่ฏดๆ˜Ž
Architecture ็ณป็ปŸๆžถๆž„่ฏฆ่งฃ
Loop Engineering ๐Ÿ”„ ๅพช็Žฏๅทฅ็จ‹ๆ–นๆณ•่ฎบ๏ผšๅ้ฆˆๅพช็Žฏใ€็†”ๆ–ญๅ™จใ€่‡ช้€‚ๅบ”้€‰ๆ‹ฉๅ™จ
CLI Reference ๅ‘ฝไปค่กŒๆŽฅๅฃ
Configuration ้…็ฝฎๆŒ‡ๅ—
API Reference API ๆ–‡ๆกฃ
Best Practices ็”Ÿไบงๆœ€ไฝณๅฎž่ทต

๐Ÿงช 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

Directories ยถ

Path Synopsis
cmd
internal
cli
platform
Package platform contains the core business logic for the ResolveAgent platform services.
Package platform contains the core business logic for the ResolveAgent platform services.
platform/agent
Package agent implements agent lifecycle management for the platform.
Package agent implements agent lifecycle management for the platform.
platform/skill
Package skill implements skill registry and execution coordination.
Package skill implements skill registry and execution coordination.
platform/workflow
Package workflow implements workflow orchestration and FTA engine integration.
Package workflow implements workflow orchestration and FTA engine integration.
runtime
Package runtime contains the Go-side agent runtime coordination logic.
Package runtime contains the Go-side agent runtime coordination logic.
tui
pkg
circuitbreaker
Package circuitbreaker implements the Circuit Breaker pattern for the Loop Engineering self-healing cycle.
Package circuitbreaker implements the Circuit Breaker pattern for the Loop Engineering self-healing cycle.
errors
Package errors provides unified error types, error codes, and error wrapping utilities for the ResolveAgent platform.
Package errors provides unified error types, error codes, and error wrapping utilities for the ResolveAgent platform.
feedback
Package feedback implements the Loop Engineering feedback cycle โ€” a continuous signal collection, aggregation, and dispatch subsystem that closes the observe-orient-decide-act loop across all ResolveAgent components (health, retry, workflow, telemetry).
Package feedback implements the Loop Engineering feedback cycle โ€” a continuous signal collection, aggregation, and dispatch subsystem that closes the observe-orient-decide-act loop across all ResolveAgent components (health, retry, workflow, telemetry).
health
Package health provides HTTP and gRPC health check utilities for liveness and readiness probes in Kubernetes deployments.
Package health provides HTTP and gRPC health check utilities for liveness and readiness probes in Kubernetes deployments.
logger
Package logger provides a unified structured logging abstraction for the ResolveAgent platform.
Package logger provides a unified structured logging abstraction for the ResolveAgent platform.
retry
Package retry provides configurable retry strategies with exponential backoff, jitter, and context-aware cancellation for the ResolveAgent platform.
Package retry provides configurable retry strategies with exponential backoff, jitter, and context-aware cancellation for the ResolveAgent platform.
store
Package store provides persistence abstractions for the ResolveAgent platform.
Package store provides persistence abstractions for the ResolveAgent platform.
test
integration
Package integration contains cross-service integration tests for the ResolveAgent platform.
Package integration contains cross-service integration tests for the ResolveAgent platform.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL