backend: http
thread_pool_max_workers: 64

mcp:
  transport: sse
  host: "0.0.0.0"
  port: 8002

http:
  host: "0.0.0.0"
  port: 8002
  timeout_keep_alive: 600
  limit_concurrency: 64

flow:
  retrieve_task_memory:
    flow_content: BuildQueryOp() >> RecallVectorStoreOp() >> RerankMemoryOp(enable_llm_rerank=True, enable_score_filter=False, top_k=5) >> RewriteMemoryOp(enable_llm_rewrite=True)
    description: "Retrieves the most relevant top-k memory experiences from historical data based on the current query to enhance task-solving capabilities"
    input_schema:
      query:
        type: string
        description: "user query"
        required: true

  summary_task_memory:
    flow_content: TrajectoryPreprocessOp(success_threshold=1.0) >> (SuccessExtractionOp()|FailureExtractionOp()|ComparativeExtractionOp(enable_soft_comparison=True)) >> MemoryValidationOp(validation_threshold=0.5) >> UpdateVectorStoreOp()
    description: "Summarizes conversation trajectories or messages into structured memory representations for long-term storage"
    input_schema:
      trajectories:
        type: array
        description: "A list of conversation trajectory information, including message content and score. This field does not need to be filled in, the system will complete it automatically."
        required: false

  retrieve_task_memory_simple:
    flow_content: BuildQueryOp() >> RecallVectorStoreOp() >> MergeMemoryOp()
    description: "Retrieves the most relevant top-k memory experiences from historical data based on the current query to enhance task-solving capabilities"
    input_schema:
      query:
        type: string
        description: "user query"
        required: true

  summary_task_memory_simple:
    flow_content: SimpleSummaryOp() >> UpdateVectorStoreOp()
    description: "Summarizes conversation trajectories or messages into structured memory representations for long-term storage"
    input_schema:
      trajectories:
        type: array
        description: "A list of conversation trajectory information, including message content and score. This field does not need to be filled in, the system will complete it automatically."
        required: false

  retrieve_personal_memory:
    flow_content: SetQueryOp() >> (ExtractTimeOp() | (RetrieveMemoryOp() >> SemanticRankOp())) >> FuseRerankOp()
    description: "Retrieves the most relevant personal memories from historical data based on the query to enhance response quality"
    input_schema:
      query:
        type: string
        description: "user query"
        required: true

  summary_personal_memory:
    flow_content: InfoFilterOp() >> (GetObservationOp() | GetObservationWithTimeOp() | LoadTodayMemoryOp()) >> ContraRepeatOp() >> UpdateVectorStoreOp()
    description: "Consolidates user observations and memories by filtering information and removing redundancies for efficient storage"
    input_schema:
      trajectories:
        type: array
        description: "A list of conversation trajectory information, including message content and score. This field does not need to be filled in, the system will complete it automatically."
        required: false

  retrieve_tool_memory:
    flow_content: RetrieveToolMemoryOp()
    description: "Retrieves tool memories from the vector database based on tool names to provide tool usage patterns and best practices"
    input_schema:
      tool_names:
        type: string
        description: "Comma-separated tool names (e.g., 'tool_name1,tool_name2')"
        required: true

  add_tool_call_result:
    flow_content: ParseToolCallResultOp(max_history_tool_call_cnt=100, evaluation_sleep_interval=1.0) >> UpdateVectorStoreOp()
    description: "Evaluates and adds tool call results to the tool memory database, creating new memory or updating existing memory for the specified tool"
    input_schema:
      tool_call_results:
        type: array
        description: "List of tool call result objects, each containing: tool_name, input, output, success, time_cost, token_cost, create_time"
        required: true

  summary_tool_memory:
    flow_content: SummaryToolMemoryOp(recent_call_count=20, summary_sleep_interval=1.0) >> UpdateVectorStoreOp()
    description: "Analyzes tool call history and generates comprehensive usage patterns, best practices, and recommendations for the specified tools"
    input_schema:
      tool_names:
        type: string
        description: "Comma-separated tool names to summarize (e.g., 'tool_name1,tool_name2')"
        required: true

  use_mock_search:
    flow_content: UseMockSearchOp()
    description: "Simulates intelligent search tool selection and execution based on query complexity, with automatic tool memory recording"
    input_schema:
      query:
        type: string
        description: "User search query to process"
        required: true

  vector_store:
    flow_content: VectorStoreActionOp()
    description: "Directly operates on the vector store with various management actions"
    input_schema:
      action:
        type: string
        description: "vector store operations"
        required: true
        enum: [ copy, delete, delete_ids, dump, load, list]

  record_task_memory:
    flow_content: UpdateMemoryFreqOp() >> UpdateMemoryUtilityOp() >> UpdateVectorStoreOp()
    description: "Update the freq & utility attributes of retrieved task memories"
    input_schema:
      workspace_id:
        type: string
        description: "workspace id"
        required: true
      memory_dicts:
        type: array
        description: "A list of retrieved task memory corresponding to the current task."
        required: true
      update_utility:
        type: boolean
        description: "Whether to update the utility attribute of the retrieved task memory."
        required: true

  delete_task_memory:
    flow_content: DeleteMemoryOp() >> UpdateVectorStoreOp()
    description: "Delete task memories when utility/freq < utility_threshold and freq >= freq_threshold"
    input_schema:
      workspace_id:
        type: string
        description: "workspace id"
        required: true
      freq_threshold:
        type: integer
        description: "The retrieved frequency threshold for deleting task memory."
        required: true
      utility_threshold:
        type: number
        description: "The utility/freq threshold for deleting task memory."
        required: true

  react:
    flow_content: SimpleReactOp()
    description: "React to the current task with an agent"
    input_schema:
      query:
        type: string
        description: "user query"
        required: true

llm:
  default:
    backend: openai_compatible
    model_name: qwen3-30b-a3b-instruct-2507
    params:
      temperature: 0.6

  qwen3_30b_instruct:
    backend: openai_compatible
    model_name: qwen3-30b-a3b-instruct-2507

  qwen3_30b_thinking:
    backend: openai_compatible
    model_name: qwen3-30b-a3b-thinking-2507

  qwen3_235b_instruct:
    backend: openai_compatible
    model_name: qwen3-235b-a22b-instruct-2507

  qwen3_235b_thinking:
    backend: openai_compatible
    model_name: qwen3-235b-a22b-thinking-2507

  qwen3_80b_instruct:
    backend: openai_compatible
    model_name: qwen3-next-80b-a3b-instruct

  qwen3_80b_thinking:
    backend: openai_compatible
    model_name: qwen3-next-80b-a3b-thinking

  qwen3_max_instruct:
    backend: openai_compatible
    model_name: qwen3-max

  qwen25_max_instruct:
    backend: openai_compatible
    model_name: qwen-max-2025-01-25

embedding_model:
  default:
    backend: openai_compatible
    model_name: text-embedding-v4
    params:
      dimensions: 1024

vector_store:
  default:
    backend: memory
    embedding_model: default
#    params:
#      hosts: "http://localhost:9200"
