How can I set the SNMPv3 context
How can I configure the SNMPv3 contextEngineID or the contextName?
In the Clients
The clients can use the -N switch to specify the contextName they wish to use, or the -E switch to specify the contextEngineID they wish to use.
The snmp.conf configuration token defaultContext can also be used to specify the contextName that should be used by default.
In the Agent
The contextName used inside the agent (which is what I assume you're talking about) is always the default context name, which is an empty string. The default contextEngineID is the same as the security engine ID for USM.
You can have modules coded to register under different contextNames, but there isn't a configuration method to change the context of the entire agent.
Contexts were really designed to allow talking through an agent to a remote device. You can also use them to distinguish overlapping data. For example, the snmptrapd application registers itself as a subagent using the AgentX protocol underneath the main agent. Because the snmptrapd program also has a user table, it would conflict with the main agent's usmUserTable. So, the snmptrapd subagent registers its own usmUserTable under the context "snmptrapd" instead.
In MIB code
Please see the FAQ entry How can I register a MIB module in a different (SNMPv3) context?