Agent KB Documentation

repository·master·Indexed 19 days ago

https://github.com/oppo-personalai/agent-kb

A framework for leveraging cross-domain experience to improve agentic problem-solving using a hierarchical memory structure (working, episodic, and semantic). The repository includes smolagents (v1.10.0.dev0), a barebones library where agents write Python code to call tools or orchestrate other agents, featuring CodeAgent for efficient tool calling and a specialized webagent for vision-based interaction.

Tokens
91K
Snippets
248
Records
433
Agent score
65%

What's inside Agent KB

  1. Overview of DiscoveryBench Evaluation Utils

    master
    The discoverybench/eval_utils module provides the core logic and helper utilities required to evaluate agent-generated hypotheses within the DiscoveryBench framework. It includes specialized scripts for hypothesis generation evaluation, language model utilities, OpenAI integration helpers, semantic generation prompts, and response parsing logic.
  2. Overview of OpenHands Memory Monitor

    master

    OpenHands Memory Monitor is a VSCode extension designed for real-time monitoring of system and process memory usage. It provides high-level visibility via the status bar and deep-dive analytics through a dedicated graphical interface.

    Key capabilities include:

    • Real-time Monitoring: Current system memory usage is visible in the status bar.
    • Detailed Statistics: Access to total, used, and free memory metrics.
    • Process Tracking: Identification of top processes by memory consumption.
    • Historical Data: Interactive charts to track memory usage trends over time.
    • Cross-Platform: Compatible with Windows, macOS, and Linux.
  3. Interact with the AI Chat interface

    master

    The Chat interface provides an AI-powered conversational experience designed for development tasks. Features include:

    • Interactive AI Assistant: Engage in natural language conversations.
    • Context-Aware Responses: The AI understands and responds to development-related queries.
    • Action Suggestions: Receive actionable recommendations for specific tasks.
    • Conversation Management: Create, delete, and manage different conversation threads.
  4. Navigate OpenHands documentation resources

    master

    The OpenHands repository is organized into several documentation domains. Use the following guide to locate the specific information you need based on your development focus:

    Project Fundamentals

    • Main Project Overview: See /README.md for features and basic setup.
    • Development Guide: See /Development.md for setup, requirements, and workflows.
    • Contributing Guidelines: See /CONTRIBUTING.md for code style and PR processes.

    Component-Specific Documentation

    • Frontend: See /frontend/README.md for the React-based frontend application.
    • Backend: See /openhands/README.md for Python implementation and architecture.
    • Server: See /openhands/server/README.md for API documentation and service architecture.
    • Runtime: See /openhands/runtime/README.md for execution models and configurations.
    • Infrastructure: See /containers/README.md for Docker and deployment strategies.

    Testing, Evaluation, and Advanced Features

    • Unit Testing: See /tests/unit/README.md for writing and running tests.
    • Evaluation: See /evaluation/README.md for benchmarks and performance testing.
    • Microagents: See /microagents/README.md for the microagents architecture and usage.
  5. Understand the SWE-bench evaluation report structure

    master

    The SWE-bench evaluation results in this directory are generated using the official SWE-bench docker containerization. The report categorizes evaluation instances into several states to help developers debug agent performance:

    • Resolved Instances: Instances where the agent successfully provided a patch that resolved the issue.
    • Unresolved Instances: Instances where the agent attempted a solution but failed to resolve the issue.
    • Error Instances: Instances that encountered runtime or execution errors during the evaluation process.
    • Empty Patch Instances: Instances where the agent produced no code changes (an empty patch).

    Detailed logs for each specific instance can be found in the ./eval_outputs/{instance_name}/run_instance.log file.

  6. Use Jupyter Notebook for interactive coding

    master

    The Jupyter Notebook feature allows for interactive Python coding and data analysis within the application. It supports:

    • Interactive Code Cells: Execute Python code in a cell-based interface.
    • Input/Output Tracking: Maintains a history of code inputs and their corresponding outputs.
    • Persistent Sessions: Preserves code execution context between cells for continuous data analysis tasks.
  7. Overview of the Browsing Agent Framework

    master

    The Browsing Agent Framework implements a generic agent based on AgentLab that enables full-featured web browsing. The agent operates by receiving specific observations to navigate and understand web pages, including:

    • Set-of-marks annotated web-page screenshots: Visual representations of the page with markers for interactive elements.
    • Accessibility tree: A structured representation of the web page's accessibility layer.
    • Historical context: All thoughts and actions from previous steps in the browsing session.

    Note: This agent is distinct from the CodeAct agent. While this framework provides a specialized VisualBrowsingAgent, the CodeAct agent uses built-in browsing support via tools like browse_url and the browser tool.

  8. What is the CodeAct Agent Framework?

    master

    The CodeAct Agent is OpenHands's primary agent implementation. It consolidates LLM actions into a unified code action space to improve simplicity and performance. The agent operates via a function calling interface and can perform two main types of actions:

    1. Converse: Communicate with humans in natural language for clarification or confirmation.
    2. CodeAct: Execute actions using a set of specialized tools for bash, Python, web browsing, and file editing.
  9. How the Memory Condenser summarizes events

    master

    The Memory Condenser is responsible for summarizing chunks of events to maintain an efficient context. It follows a specific priority order for summarization:

    1. Agent Events: It first summarizes the earliest agent actions and observations occurring between two user messages.
    2. Sequential Chunks: It then processes subsequent chunks of events between user messages.
    3. User Messages: If no agent events remain, it summarizes user messages individually.
      • Conditions for User Message Summarization: User messages are only summarized if they are large enough and are not immediately following an AgentFinishAction event (as those are treated as important tasks).

    Technical Implementation: Summaries are retrieved from the LLM as AgentSummarizeAction and are persisted in the State.