File size: 2,205 Bytes
02c0b36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.

"""
Data models for the Doc Quality Env Environment.

A real-world environment for technical documentation quality assessment and enhancement.
Agents evaluate documentation for clarity, completeness, and correctness.
"""

from typing import List, Literal
from openenv.core.env_server.types import Action, Observation
from pydantic import Field


class DocQualityAction(Action):
    """Action for doc quality assessment - agents identify issues or suggest improvements."""

    action_type: Literal["identify_issue", "suggest_improvement", "rate_quality"] = Field(
        ..., description="Type of action: identify an issue, suggest an improvement, or provide final quality rating"
    )
    content: str = Field(..., description="The identified issue, improvement suggestion, or reasoning for quality rating")
    issue_category: str = Field(
        default="", description="Category of issue: 'clarity', 'completeness', 'accuracy', 'structure', 'consistency'"
    )


class DocQualityObservation(Observation):
    """Observation from doc quality assessment environment."""

    task_name: str = Field(default="", description="Name of the current task")
    task_difficulty: Literal["easy", "medium", "hard"] = Field(default="easy", description="Task difficulty level")
    current_doc: str = Field(default="", description="The documentation being evaluated")
    doc_section: str = Field(default="", description="The current section being reviewed")
    issues_identified: List[str] = Field(default=[], description="Issues found so far by the agent")
    known_issues: List[str] = Field(default=[], description="Known issues in this doc for reference")
    quality_score: float = Field(default=0.0, description="Current quality assessment score (0.0-1.0)")
    step_count: int = Field(default=0, description="Number of steps taken so far")
    max_steps: int = Field(default=10, description="Maximum steps allowed")
    feedback: str = Field(default="", description="Feedback on last action")