Jump to content

Agent-oriented software engineering

From Wikipedia, the free encyclopedia

Agent-oriented software engineering (AOSE) is a new software engineering paradigm that arose to apply best practice in the development of complex Multi-Agent Systems (MAS) by focusing on the use of agents, and organizations (communities) of agents as the main abstractions. The field of Software Product Lines (SPL) covers all the software development lifecycle necessary to develop a family of products where the derivation of concrete products is made systematically and rapidly.

Commentary

[edit]

With the advent of biologically inspired, pervasive, and autonomic computing, the advantages of, and necessity of, agent-based technologies and MASs has become obvious[citation needed]. Unfortunately, current AOSE methodologies are dedicated to developing single MASs. Clearly, many MASs will make use of significantly the same techniques, adaptations, and approaches. The field is thus ripe for exploiting the benefits of SPL: reduced costs, improved time-to-market, etc. and enhancing agent technology in such a way that it is more industrially applicable.

Multiagent Systems Product Lines (MAS-PL) is a research field devoted to combining the two approaches: applying the SPL philosophy for building a MAS. This will afford all of the advantages of SPLs and make MAS development more practical.

Benchmarks

[edit]

Several benchmarks have been developed to evaluate the capabilities of AI coding agents and large language models in software engineering tasks. Here are some of the key benchmarks:

Agentic software engineering benchmarks
Benchmark Description
SWE-bench Assesses the ability of AI models to solve real-world software engineering issues sourced from GitHub repositories. The benchmark involves:
  • Providing agents with a code repository and issue description
  • Challenging them to generate a patch that resolves the described problem
  • Evaluating the generated patch against unit tests
ML-Agent-Bench Designed to evaluate AI agent performance on machine learning tasks
τ-Bench τ-Bench is a benchmark developed by Sierra AI to evaluate AI agent performance and reliability in real-world settings. It focuses on:
  • Testing agents on complex tasks with dynamic user and tool interactions
  • Assessing the ability to follow domain-specific policies
  • Measuring consistency and reliability at scale
WebArena Evaluates AI agents in a simulated web environment. The benchmark tasks include:
  • Navigating complex websites to complete user-driven tasks
  • Extracting relevant information from the web
  • Testing the adaptability of agents to diverse web-based challenges
AgentBench A benchmark designed to assess the capabilities of AI agents in handling multi-agent coordination tasks. The key areas of evaluation include:
  • Communication and cooperation between agents
  • Task efficiency and resource management
  • Adaptability in dynamic environments
MMLU-Redux An enhanced version of the MMLU benchmark, focusing on evaluating AI models across a broad range of academic subjects and domains. It measures:
  • Subject matter expertise across multiple disciplines
  • Ability to handle complex problem-solving tasks
  • Consistency in providing accurate answers across topics
McEval A coding benchmark designed to test AI models' ability to solve coding challenges. The benchmark evaluates:
  • Code correctness and efficiency
  • Ability to handle diverse programming languages
  • Performance across different coding paradigms and tasks
CS-Bench A specialized benchmark for evaluating AI performance in computer science-related tasks. The key focus areas include:
  • Algorithms and data structures
  • Computational complexity and optimization
  • Theoretical and applied computer science concepts
WildBench Tests AI models in understanding and reasoning about real-world wild environments. It emphasizes:
  • Handling noisy and unstructured data
  • Adapting to unpredictable changes in the environment
  • Performing well in multi-modal scenarios with real-world relevance
Test of Time A benchmark that focuses on evaluating AI models' ability to reason about temporal sequences and events over time. It assesses:
  • Understanding of temporal logic and sequence prediction
  • Ability to make decisions based on time-dependent data
  • Performance in tasks requiring long-term planning and foresight

Software engineering agent systems

[edit]

There are several software engineering (SWE) agent systems in development. Here are some examples:

List of SWE Agent Systems
SWE Agent System Backend LLM
Salesforce Research DEIBASE-1 gpt4o
Cosine Genie Fine-tuned OpenAI GPT
CodeStory Aide gpt4o + Claude 3.5 Sonnet
AbenteAI MentatBot gpt4o
Salesforce Research DEIBASE-2 gpt4o
Salesforce Research DEI-Open gpt4o
Bytedance MarsCode gpt4o
Alibaba Lingma gpt-4-1106-preview
Factory Code Droid Anthropic + OpenAI
AutoCodeRover gpt4o
Amazon Q Developer (unknown)
CodeR gpt-4-1106-preview
MASAI (unknown)
SIMA gpt4o
Agentless gpt4o
Moatless Tools Claude 3.5 Sonnet
IBM Research Agent (unknown)
Aider gpt4o + Claude 3 Opus
OpenDevin + CodeAct gpt4o
AgileCoder (various)
ChatDev (unknown)
MetaGPT gpt4o
[edit]
  • Agent-Oriented Software Engineering: Reflections on Architectures, Methodologies, Languages, and Frameworks ISBN 978-3642544316

References

[edit]