factor_agent.researcher.Researcher#

class Researcher(roles, prompts, groups=1, events=None)[source]#

Bases: object

The LLM roles of a campaign.

Parameters:
rolesdict

Maps each role (planner, proposer, reviewer, distiller) to its (backend, model).

promptsPrompts

The templates and what fills them; its mechanism types are the plan’s, in order.

groupsint, default 1

The proposal groups a round’s directions are split into (at most one per direction).

eventsEvents, optional

The run’s events file, which every call, every check of a version and every verdict is written to (factor_agent.events).

Methods#

Researcher.distill

The memory the distiller folds from the previous memory, history (the trials since it) and accepted, every factor accepted so far (_feedback.accepted).

Researcher.plan

Return round number's directions, quota[type] of each type in type order, and the plan's issues.

Researcher.propose

Ask for one candidate per direction and return one Proposal per direction, in order.

Researcher.renew

Send each new direction's candidate that measures what an earlier trial measured back to be rewritten once.

Researcher.review

Judge the consistency of each gated proposal's candidate, one call per proposal group, all sent at once.

Researcher.revise

Send each candidate the reviewer found inconsistent back to be rewritten once; return the rewrites, in order.